1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
#include "inputController.hpp"
#include "frame.hpp"
#include "input.hpp"
#include "status.hpp"
#include <vector>
namespace VideoStitch {
namespace Input {
class ReaderFactory;
}
namespace Output {
class VideoWriter;
}
namespace Core {
class PanoDefinition;
class AudioPipeDefinition;
class ExtractOutput;
class ReaderController;
class SourceSurface;
class InputPipeline;
class OverrideOutputDefinition;
class VS_EXPORT UndistortController : public virtual InputController {
public:
virtual ~UndistortController() {}
virtual ControllerStatus undistort(std::vector<ExtractOutput*> extracts) = 0;
virtual Potential<ExtractOutput> createAsyncExtractOutput(int sourceID, std::shared_ptr<SourceSurface> surf,
std::shared_ptr<Output::VideoWriter> writer) = 0;
virtual Potential<PanoDefinition> createPanoDefWithoutDistortion() = 0;
};
Potential<UndistortController> VS_EXPORT createUndistortController(const PanoDefinition& pano,
const AudioPipeDefinition& audioPipeDef,
Input::ReaderFactory* readerFactory,
const OverrideOutputDefinition& outputDef);
} // namespace Core
} // namespace VideoStitch