// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include "inputController.hpp" #include "frame.hpp" #include "input.hpp" #include "status.hpp" #include <vector> // TODODEPTH: does mostly the same as UndistortController // --> merge implementations, put into InputControllerImpl? // differenes: UndistortController has additional method createPanoDefWithoutDistortion // UndistortController uses UndistortPipeline, this uses DepthPipeline // --> solve with factory or templating namespace VideoStitch { namespace Input { class ReaderFactory; } namespace Output { class VideoWriter; } namespace Core { class AudioPipeDefinition; class DepthDefinition; class ExtractOutput; class PanoDefinition; class SourceSurface; class VS_EXPORT DepthController : public virtual InputController { public: virtual ~DepthController() {} virtual ControllerStatus estimateDepth(std::vector<ExtractOutput*> extracts) = 0; virtual Potential<ExtractOutput> createAsyncExtractOutput(int sourceID, std::shared_ptr<SourceSurface> surf, std::shared_ptr<Output::VideoWriter> writer) = 0; }; Potential<DepthController> VS_EXPORT createDepthController(const PanoDefinition& pano, const DepthDefinition& depthDef, const AudioPipeDefinition& audioPipeDef, Input::ReaderFactory* readerFactory); } // namespace Core } // namespace VideoStitch