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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
#include "libvideostitch/inputDefinitionUpdater.hpp"
#include "libvideostitch/ptv.hpp"
namespace VideoStitch {
namespace Core {
InputDefinitionUpdater::InputDefinitionUpdater(const InputDefinition& inputDefinition)
: inputDefinition(inputDefinition.clone()) {}
InputDefinitionUpdater::InputDefinitionUpdater(InputDefinition* inputDefinition) : inputDefinition(inputDefinition) {}
InputDefinition* InputDefinitionUpdater::clone() const { return inputDefinition->clone(); }
Ptv::Value* InputDefinitionUpdater::serialize() const { return inputDefinition->serialize(); }
bool InputDefinitionUpdater::operator==(const InputDefinition& other) const {
return inputDefinition->operator==(other);
}
bool InputDefinitionUpdater::validate(std::ostream& os) const { return inputDefinition->validate(os); }
std::string InputDefinitionUpdater::getDisplayName() const { return inputDefinition->getDisplayName(); }
const Ptv::Value& InputDefinitionUpdater::getReaderConfig() const { return inputDefinition->getReaderConfig(); }
const std::string& InputDefinitionUpdater::getMaskData() const { return inputDefinition->getMaskData(); }
bool InputDefinitionUpdater::deletesMaskedPixels() const { return inputDefinition->deletesMaskedPixels(); }
const InputDefinition::MaskPixelData& InputDefinitionUpdater::getMaskPixelData() const {
return inputDefinition->getMaskPixelData();
}
const unsigned char* InputDefinitionUpdater::getMaskPixelDataIfValid() const {
return inputDefinition->getMaskPixelDataIfValid();
}
bool InputDefinitionUpdater::validateMask() const { return inputDefinition->validateMask(); }
InputDefinition::group_t InputDefinitionUpdater::getGroup() const { return inputDefinition->getGroup(); }
void InputDefinitionUpdater::setGroup(InputDefinition::group_t group) {
PRESERVE_ACTION(setGroup, inputDefinition, group);
}
int64_t InputDefinitionUpdater::getWidth() const { return inputDefinition->getWidth(); }
int64_t InputDefinitionUpdater::getHeight() const { return inputDefinition->getHeight(); }
void InputDefinitionUpdater::setWidth(int64_t int64) { PRESERVE_ACTION(setWidth, inputDefinition, int64); }
void InputDefinitionUpdater::setHeight(int64_t int64) { PRESERVE_ACTION(setHeight, inputDefinition, int64); }
int64_t InputDefinitionUpdater::getCroppedWidth() const { return inputDefinition->getCroppedWidth(); }
int64_t InputDefinitionUpdater::getCroppedHeight() const { return inputDefinition->getCroppedHeight(); }
bool InputDefinitionUpdater::getUseMeterDistortion() const { return inputDefinition->getUseMeterDistortion(); }
InputDefinition::Format InputDefinitionUpdater::getFormat() const { return inputDefinition->getFormat(); }
void InputDefinitionUpdater::setFormat(InputDefinition::Format format) {
PRESERVE_ACTION(setFormat, inputDefinition, format);
}
InputDefinition::LensModelCategory InputDefinitionUpdater::getLensModelCategory() const {
return inputDefinition->getLensModelCategory();
}
bool InputDefinitionUpdater::hasCroppedArea() const { return inputDefinition->hasCroppedArea(); }
frameid_t InputDefinitionUpdater::getFrameOffset() const { return inputDefinition->getFrameOffset(); }
double InputDefinitionUpdater::getSynchroCost() const { return inputDefinition->getSynchroCost(); }
int InputDefinitionUpdater::getStack() const { return inputDefinition->getStack(); }
void InputDefinitionUpdater::setStack(int value) { PRESERVE_ACTION(setStack, inputDefinition, value); }
void InputDefinitionUpdater::setFilename(const std::string& fileName) {
PRESERVE_ACTION(setFilename, inputDefinition, fileName);
}
void InputDefinitionUpdater::setReaderConfig(Ptv::Value* config) {
PRESERVE_ACTION_CLONEABLE(setReaderConfig, inputDefinition, , , Ptv::Value, config);
}
void InputDefinitionUpdater::setMaskData(const std::string& maskData) {
PRESERVE_ACTION(setMaskData, inputDefinition, maskData);
}
void InputDefinitionUpdater::setDeletesMaskedPixels(bool value) {
PRESERVE_ACTION(setDeletesMaskedPixels, inputDefinition, value);
}
bool InputDefinitionUpdater::setMaskPixelData(const char* buffer, uint64_t maskWidth, uint64_t maskHeight) {
return inputDefinition->setMaskPixelData(buffer, maskWidth, maskHeight);
}
void InputDefinitionUpdater::setFrameOffset(int fo) { PRESERVE_ACTION(setFrameOffset, inputDefinition, fo); }
void InputDefinitionUpdater::setSynchroCost(double cost) { PRESERVE_ACTION(setSynchroCost, inputDefinition, cost); }
void InputDefinitionUpdater::resetRedCB() { PRESERVE_ACTION(resetRedCB, inputDefinition); }
CurveTemplate<double>* InputDefinitionUpdater::displaceRedCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(displaceRedCB, inputDefinition, delete, return, double, newCurve);
}
const CurveTemplate<double>& InputDefinitionUpdater::getRedCB() const { return inputDefinition->getRedCB(); }
void InputDefinitionUpdater::replaceRedCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(replaceRedCB, inputDefinition, , , double, newCurve);
}
CurveTemplate<double>* InputDefinitionUpdater::displaceGreenCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(displaceGreenCB, inputDefinition, delete, return, double, newCurve);
}
void InputDefinitionUpdater::resetGreenCB() { PRESERVE_ACTION(resetGreenCB, inputDefinition); }
const CurveTemplate<double>& InputDefinitionUpdater::getGreenCB() const { return inputDefinition->getGreenCB(); }
void InputDefinitionUpdater::replaceGreenCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(replaceGreenCB, inputDefinition, , , double, newCurve);
}
void InputDefinitionUpdater::resetBlueCB() { PRESERVE_ACTION(resetBlueCB, inputDefinition); }
void InputDefinitionUpdater::replaceBlueCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(replaceBlueCB, inputDefinition, , , double, newCurve);
}
CurveTemplate<double>* InputDefinitionUpdater::displaceBlueCB(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(displaceBlueCB, inputDefinition, delete, return, double, newCurve);
}
const CurveTemplate<double>& InputDefinitionUpdater::getBlueCB() const { return inputDefinition->getBlueCB(); }
void InputDefinitionUpdater::resetExposureValue() { PRESERVE_ACTION(resetExposureValue, inputDefinition); }
void InputDefinitionUpdater::replaceExposureValue(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(replaceExposureValue, inputDefinition, , , double, newCurve);
}
CurveTemplate<double>* InputDefinitionUpdater::displaceExposureValue(CurveTemplate<double>* newCurve) {
PRESERVE_ACTION_CURVE(displaceExposureValue, inputDefinition, delete, return, double, newCurve);
}
const CurveTemplate<double>& InputDefinitionUpdater::getExposureValue() const {
return inputDefinition->getExposureValue();
}
CurveTemplate<GeometryDefinition>* InputDefinitionUpdater::displaceGeometries(
CurveTemplate<GeometryDefinition>* newCurve) {
PRESERVE_ACTION_CURVE(displaceGeometries, inputDefinition, delete, return, GeometryDefinition, newCurve);
}
void InputDefinitionUpdater::replaceGeometries(CurveTemplate<GeometryDefinition>* newCurve) {
PRESERVE_ACTION_CURVE(replaceGeometries, inputDefinition, , , GeometryDefinition, newCurve);
}
const CurveTemplate<GeometryDefinition>& InputDefinitionUpdater::getGeometries() const {
return inputDefinition->getGeometries();
}
void InputDefinitionUpdater::resetGeometries(const double HFOV) {
PRESERVE_ACTION(resetGeometries, inputDefinition, HFOV);
}
const Ptv::Value* InputDefinitionUpdater::getPreprocessors() const { return inputDefinition->getPreprocessors(); }
void InputDefinitionUpdater::setIsEnabled(bool state) { PRESERVE_ACTION(setIsEnabled, inputDefinition, state); }
bool InputDefinitionUpdater::getIsEnabled() const { return inputDefinition->getIsEnabled(); }
bool InputDefinitionUpdater::getIsVideoEnabled() const { return inputDefinition->getIsVideoEnabled(); }
bool InputDefinitionUpdater::getIsAudioEnabled() const { return inputDefinition->getIsAudioEnabled(); }
void InputDefinitionUpdater::setUseMeterDistortion(bool meter) {
PRESERVE_ACTION(setUseMeterDistortion, inputDefinition, meter);
}
InputDefinition::PhotoResponse InputDefinitionUpdater::getPhotoResponse() const {
return inputDefinition->getPhotoResponse();
}
double InputDefinitionUpdater::getEmorA() const { return inputDefinition->getEmorA(); }
double InputDefinitionUpdater::getEmorB() const { return inputDefinition->getEmorB(); }
double InputDefinitionUpdater::getEmorC() const { return inputDefinition->getEmorC(); }
double InputDefinitionUpdater::getEmorD() const { return inputDefinition->getEmorD(); }
double InputDefinitionUpdater::getEmorE() const { return inputDefinition->getEmorE(); }
double InputDefinitionUpdater::getGamma() const { return inputDefinition->getGamma(); }
void InputDefinitionUpdater::setEmorA(double emorA) { PRESERVE_ACTION(setEmorA, inputDefinition, emorA); }
void InputDefinitionUpdater::setEmorB(double emorB) { PRESERVE_ACTION(setEmorB, inputDefinition, emorB); }
void InputDefinitionUpdater::setEmorC(double emorC) { PRESERVE_ACTION(setEmorC, inputDefinition, emorC); }
void InputDefinitionUpdater::setEmorD(double emorD) { PRESERVE_ACTION(setEmorD, inputDefinition, emorD); }
void InputDefinitionUpdater::setEmorE(double emorE) { PRESERVE_ACTION(setEmorE, inputDefinition, emorE); }
void InputDefinitionUpdater::setEmorPhotoResponse(double emorA, double emorB, double emorC, double emorD,
double emorE) {
PRESERVE_ACTION(setEmorPhotoResponse, inputDefinition, emorA, emorB, emorC, emorD, emorE);
}
void InputDefinitionUpdater::resetPhotoResponse() { PRESERVE_ACTION(resetPhotoResponse, inputDefinition); }
void InputDefinitionUpdater::setGamma(double gamma) { PRESERVE_ACTION(setGamma, inputDefinition, gamma); }
double InputDefinitionUpdater::getVignettingCoeff0() const { return inputDefinition->getVignettingCoeff0(); }
double InputDefinitionUpdater::getVignettingCoeff1() const { return inputDefinition->getVignettingCoeff1(); }
double InputDefinitionUpdater::getVignettingCoeff2() const { return inputDefinition->getVignettingCoeff2(); }
double InputDefinitionUpdater::getVignettingCoeff3() const { return inputDefinition->getVignettingCoeff3(); }
double InputDefinitionUpdater::getVignettingCenterX() const { return inputDefinition->getVignettingCenterX(); }
double InputDefinitionUpdater::getVignettingCenterY() const { return inputDefinition->getVignettingCenterY(); }
void InputDefinitionUpdater::setVignettingCoeff0(double vignettingCoeff0) {
PRESERVE_ACTION(setVignettingCoeff0, inputDefinition, vignettingCoeff0);
}
void InputDefinitionUpdater::setVignettingCoeff1(double vignettingCoeff1) {
PRESERVE_ACTION(setVignettingCoeff1, inputDefinition, vignettingCoeff1);
}
void InputDefinitionUpdater::setVignettingCoeff2(double vignettingCoeff2) {
PRESERVE_ACTION(setVignettingCoeff2, inputDefinition, vignettingCoeff2);
}
void InputDefinitionUpdater::setVignettingCoeff3(double vignettingCoeff3) {
PRESERVE_ACTION(setVignettingCoeff3, inputDefinition, vignettingCoeff3);
}
void InputDefinitionUpdater::setVignettingCenterX(double vignettingCenterX) {
PRESERVE_ACTION(setVignettingCenterX, inputDefinition, vignettingCenterX);
}
void InputDefinitionUpdater::setVignettingCenterY(double vignettingCenterY) {
PRESERVE_ACTION(setVignettingCenterY, inputDefinition, vignettingCenterY);
}
void InputDefinitionUpdater::setRadialVignetting(double vignettingCoeff0, double vignettingCoeff1,
double vignettingCoeff2, double vignettingCoeff3,
double vignettingCenterX, double vignettingCenterY) {
PRESERVE_ACTION(setRadialVignetting, inputDefinition, vignettingCoeff0, vignettingCoeff1, vignettingCoeff2,
vignettingCoeff3, vignettingCenterX, vignettingCenterY);
}
void InputDefinitionUpdater::resetVignetting() { PRESERVE_ACTION(resetVignetting, inputDefinition); }
double InputDefinitionUpdater::getInputCenterX() const { return inputDefinition->getInputCenterX(); }
double InputDefinitionUpdater::getInputCenterY() const { return inputDefinition->getInputCenterY(); }
double InputDefinitionUpdater::getCenterX(const GeometryDefinition& geometry) const {
return inputDefinition->getCenterX(geometry);
}
double InputDefinitionUpdater::getCenterY(const GeometryDefinition& geometry) const {
return inputDefinition->getCenterY(geometry);
}
int64_t InputDefinitionUpdater::getCropLeft() const { return inputDefinition->getCropLeft(); }
int64_t InputDefinitionUpdater::getCropRight() const { return inputDefinition->getCropRight(); }
int64_t InputDefinitionUpdater::getCropTop() const { return inputDefinition->getCropTop(); }
int64_t InputDefinitionUpdater::getCropBottom() const { return inputDefinition->getCropBottom(); }
void InputDefinitionUpdater::setCropLeft(int64_t left) { PRESERVE_ACTION(setCropLeft, inputDefinition, left); }
void InputDefinitionUpdater::setCropRight(int64_t right) { PRESERVE_ACTION(setCropRight, inputDefinition, right); }
void InputDefinitionUpdater::setCropTop(int64_t top) { PRESERVE_ACTION(setCropTop, inputDefinition, top); }
void InputDefinitionUpdater::setCropBottom(int64_t bottom) { PRESERVE_ACTION(setCropBottom, inputDefinition, bottom); }
void InputDefinitionUpdater::setCrop(int64_t left, int64_t right, int64_t top, int64_t bottom) {
PRESERVE_ACTION(setCrop, inputDefinition, left, right, top, bottom);
}
} // namespace Core
} // namespace VideoStitch