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
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
#include "testing_common.hpp"
#include "../include/metadataParser.hpp"
#include "libvideostitch/imuData.hpp"
#include "libvideostitch/logging.hpp"
#include "libvideostitch/orah/exposureData.hpp"
#include <vector>
namespace VideoStitch {
namespace Testing {
bool parseAndCompare(int cameraID, std::string input, std::pair<bool, IMU::Measure> imu,
std::map<videoreaderid_t, Metadata::Exposure> exposure,
std::map<videoreaderid_t, Metadata::WhiteBalance> whiteBalance,
std::map<videoreaderid_t, Metadata::ToneCurve> toneCurve) {
std::map<videoreaderid_t, Metadata::Exposure> exposureParsed;
std::map<videoreaderid_t, Metadata::WhiteBalance> whiteBalanceParsed;
std::map<videoreaderid_t, Metadata::ToneCurve> toneCurveParsed;
std::pair<bool, IMU::Measure> imuParsed;
std::map<videoreaderid_t, Metadata::Exposure> exposureTest;
std::map<videoreaderid_t, Metadata::WhiteBalance> whiteBalanceTest;
std::map<videoreaderid_t, Metadata::ToneCurve> toneCurveTest;
for (auto& kv : exposure) {
exposureTest[kv.first + cameraID] = kv.second;
}
for (auto& kv : whiteBalance) {
whiteBalanceTest[kv.first + cameraID] = kv.second;
}
for (auto& kv : toneCurve) {
toneCurveTest[kv.first + cameraID] = kv.second;
}
bool success = MetadataParser::parse(input, cameraID, imuParsed, exposureParsed, whiteBalanceParsed, toneCurveParsed);
ENSURE_EQ(imu, imuParsed);
ENSURE_EQ(exposureTest, exposureParsed);
ENSURE_EQ(whiteBalanceTest, whiteBalanceParsed);
ENSURE_EQ(toneCurveTest, toneCurveParsed);
return success;
}
bool parseAndCompare(std::string input, const std::pair<bool, IMU::Measure>& imu,
const std::map<videoreaderid_t, Metadata::Exposure>& exposure,
const std::map<videoreaderid_t, Metadata::WhiteBalance>& whiteBalance,
const std::map<videoreaderid_t, Metadata::ToneCurve>& toneCurve) {
return parseAndCompare(0, input, imu, exposure, whiteBalance, toneCurve) &&
parseAndCompare(2, input, imu, exposure, whiteBalance, toneCurve);
}
void testSyntheticData() {
// incomplete parsing, but don't crash
// start marker missing
ENSURE(
!parseAndCompare("idx=6175,ts=205832,"
"xgy=-368,ygy=19,zgy=1885,xac=-536,yac=736,zac=-16932,xma=-1805,yma=-1095,zma=5234,"
"temp=27,"
"sen=0,iso=357,sht=0.02000000,sht_mx=0.00000000,"
"r=5966,g=4096,b=9863,"
"sen=1,iso=322,sht=0.02000000,sht_mx=0.00000000,"
"r=5967,g=4096,b=9861",
{false, {}}, {}, {}, {}));
// sensor missing
ENSURE(
!parseAndCompare("MetaStartMarker,idx=6175,ts=205832,"
"xgy=-368,ygy=19,zgy=1885,xac=-536,yac=736,zac=-16932,xma=-1805,yma=-1095,zma=5234,"
"temp=27,"
"iso=357,sht=0.02000000,sht_mx=0.00000000,"
"r=5966,g=4096,b=9863,",
{true, {205832000, -536, 736, -16932, -368, 19, 1885, -1805, -1095, 5234, 27}}, {}, {}, {}));
// invalid sensor ID
ENSURE(
!parseAndCompare("MetaStartMarker,idx=6175,ts=205832,"
"xgy=-368,ygy=19,zgy=1885,xac=-536,yac=736,zac=-16932,xma=-1805,yma=-1095,zma=5234,"
"temp=27,"
"sen=2,iso=357,sht=0.02000000,sht_mx=0.00000000,"
"r=5966,g=4096,b=9863,",
{true, {205832000, -536, 736, -16932, -368, 19, 1885, -1805, -1095, 5234, 27}}, {}, {}, {}));
// truncated tone curve
ENSURE(!parseAndCompare(
"MetaStartMarker,idx=5521,ts=184032,"
"xgy=-344,ygy=-15,zgy=77,xac=-720,yac=132,zac=-16912,xma=-2616,yma=-1363,zma=6010,"
"temp=30,"
"sen=0,"
"tcStart,0,4,8,13,17,22,26,31,35,40,45,49,54,58,63,67,72,76,81,86,90,95,99,104,108,113,118,122,127,131,136,140,"
"145,150,154,159,164,168,173,177,182,187,192,197,202,206,211,215,220,225,230,234,239,244,248,253,258,262,267,272,"
"276,281,286,290,295,300,304,309,314,319,323,328,332,337,342,347,351,356,360,365,370,374,379,384,389,393,398,402,"
"407,412,416,421,426,430,435,439,444,449,454,458,463,468,472,477,482,487,491,496,500,505,510,515,519,524,528,533,"
"538,542,547,552,556,561,566,570,575,580,585,589,594,599,603,608,612,617,621,626,630,634,639,643,647,651,656,660,"
"664,668,673,677,681,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,745,749,753,756,760,764",
{true, {184032000, -720, 132, -16912, -344, -15, 77, -2616, -1363, 6010, 30}}, {}, {}, {}));
// empty values
ENSURE(
!parseAndCompare("MetaStartMarker,idx=5488,ts=182932,"
"xgy=,ygy=,zgy=,xac=,yac=,zac=,xma=,yma=,zma=,"
"temp=,"
"sen=0,iso=,sht=,sht_mx=,"
"sen=1",
{false, {}}, {}, {}, {}));
// empty sensor
ENSURE(
!parseAndCompare("MetaStartMarker,idx=5488,ts=182932,"
"xgy=-355,ygy=-21,zgy=48,xac=-620,yac=128,zac=-17004,xma=-2554,yma=-1365,zma=5998,"
"temp=30,"
"sen=,iso=434,sht=0.02000000,sht_mx=0.00000000,"
"sen=",
{true, {182932000, -620, 128, -17004, -355, -21, 48, -2554, -1365, 5998, 30}}, {}, {}, {}));
// out of range?
ENSURE(
!parseAndCompare("MetaStartMarker,idx=5488,ts=182932,"
"xgy=-355,ygy=-21,zgy=48,xac=-620,yac=128,zac=-17004,xma=-2554,yma=-1365,zma=5998,"
"temp=30,"
"sen=,iso=18446744073709551617,sht=0.02000000,sht_mx=0.00000000,"
"sen=",
{true, {182932000, -620, 128, -17004, -355, -21, 48, -2554, -1365, 5998, 30}}, {}, {}, {}));
}
void testRecordedDataFw0177() {
// MetaStartMarker,idx=5055,ts=168499,xgy=-347,ygy=-40,zgy=25,xac=-688,yac=88,zac=-16932,xma=-2672,yma=-1428,zma=5876,temp=30,sen=0,sen=1
ENSURE(
parseAndCompare("MetaStartMarker,idx=5488,ts=182932,"
"xgy=-355,ygy=-21,zgy=48,xac=-620,yac=128,zac=-17004,xma=-2554,yma=-1365,zma=5998,"
"temp=30,"
"sen=0,iso=434,sht=0.02000000,sht_mx=0.00000000,"
"sen=1",
// IMU
{true, {182932000, -620, 128, -17004, -355, -21, 48, -2554, -1365, 5998, 30}},
// exposure
{{0, {182932000, 434, 0.02f, 0.0f}}},
// white balance
{},
// tone curve
{}));
ENSURE(
parseAndCompare("MetaStartMarker,idx=5054,ts=168466,"
"xgy=-298,ygy=-46,zgy=48,xac=-680,yac=176,zac=-16852,xma=-2672,yma=-1428,zma=5876,"
"temp=30,"
"sen=0,r=5935,g=4096,b=9899,"
"sen=1,r=5935,g=4096,b=9899",
// IMU
{true, {168466000, -680, 176, -16852, -298, -46, 48, -2672, -1428, 5876, 30}},
// exposure
{},
// white balance
{{0, {168466000, 5935, 4096, 9899}}, {1, {168466000, 5935, 4096, 9899}}},
// tone curve
{}));
ENSURE(
parseAndCompare("MetaStartMarker,idx=5057,ts=168566,"
"xgy=-322,ygy=-13,zgy=6,xac=-644,yac=40,zac=-16844,xma=-2672,yma=-1428,zma=5876,"
"temp=30,"
"sen=0,r=5936,g=4096,b=9899,sen=1",
// IMU
{true, {168566000, -644, 40, -16844, -322, -13, 6, -2672, -1428, 5876, 30}},
// exposure
{},
// white balance
{{0, {168566000, 5936, 4096, 9899}}},
// tone curve
{}));
ENSURE(
parseAndCompare("MetaStartMarker,idx=5494,ts=183132,"
"xgy=-275,ygy=-5,zgy=60,xac=-632,yac=40,zac=-16844,xma=-2592,yma=-1522,zma=5659,"
"temp=30,"
"sen=0,iso=436,sht=0.02000000,sht_mx=0.00000000,"
"r=5926,g=4096,b=9903,"
"sen=1,r=5926,g=4096,b=9903",
// IMU
{true, {183132000, -632, 40, -16844, -275, -5, 60, -2592, -1522, 5659, 30}},
// exposure
{{0, {183132000, 436, 0.02f, 0.0f}}},
// white balance
{{0, {183132000, 5926, 4096, 9903}}, {1, {183132000, 5926, 4096, 9903}}},
// tone curve
{}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=5521,ts=184032,"
"xgy=-344,ygy=-15,zgy=77,xac=-720,yac=132,zac=-16912,xma=-2616,yma=-1363,zma=6010,"
"temp=30,"
"sen=0,"
"tcStart,0,4,8,13,17,22,26,31,35,40,45,49,54,58,63,67,72,76,81,86,90,95,99,104,108,113,118,122,127,131,136,140,"
"145,150,154,159,164,168,173,177,182,187,192,197,202,206,211,215,220,225,230,234,239,244,248,253,258,262,267,272,"
"276,281,286,290,295,300,304,309,314,319,323,328,332,337,342,347,351,356,360,365,370,374,379,384,389,393,398,402,"
"407,412,416,421,426,430,435,439,444,449,454,458,463,468,472,477,482,487,491,496,500,505,510,515,519,524,528,533,"
"538,542,547,552,556,561,566,570,575,580,585,589,594,599,603,608,612,617,621,626,630,634,639,643,647,651,656,660,"
"664,668,673,677,681,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,745,749,753,756,760,764,768,771,"
"775,779,782,786,790,793,797,800,803,807,810,814,817,820,823,826,830,833,836,839,842,845,848,851,855,857,860,863,"
"866,869,872,875,878,881,884,887,890,892,895,898,901,904,907,910,913,916,919,921,924,927,930,933,936,938,941,944,"
"947,949,952,955,958,961,963,966,969,972,975,978,980,983,986,989,991,994,997,1000,1003,1005,1008,1011,1014,1017,"
"1020,1023,"
"sen=1",
// IMU
{true, {184032000, -720, 132, -16912, -344, -15, 77, -2616, -1363, 6010, 30}},
// exposure
{},
// white balance
{},
// tone curve
{{0,
{184032000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 45, 49, 54, 58, 63, 67, 72, 76, 81, 86,
90, 95, 99, 104, 108, 113, 118, 122, 127, 131, 136, 140, 145, 150, 154, 159, 164, 168, 173, 177,
182, 187, 192, 197, 202, 206, 211, 215, 220, 225, 230, 234, 239, 244, 248, 253, 258, 262, 267, 272,
276, 281, 286, 290, 295, 300, 304, 309, 314, 319, 323, 328, 332, 337, 342, 347, 351, 356, 360, 365,
370, 374, 379, 384, 389, 393, 398, 402, 407, 412, 416, 421, 426, 430, 435, 439, 444, 449, 454, 458,
463, 468, 472, 477, 482, 487, 491, 496, 500, 505, 510, 515, 519, 524, 528, 533, 538, 542, 547, 552,
556, 561, 566, 570, 575, 580, 585, 589, 594, 599, 603, 608, 612, 617, 621, 626, 630, 634, 639, 643,
647, 651, 656, 660, 664, 668, 673, 677, 681, 686, 690, 694, 698, 702, 706, 710, 714, 718, 722, 726,
730, 734, 738, 742, 745, 749, 753, 756, 760, 764, 768, 771, 775, 779, 782, 786, 790, 793, 797, 800,
803, 807, 810, 814, 817, 820, 823, 826, 830, 833, 836, 839, 842, 845, 848, 851, 855, 857, 860, 863,
866, 869, 872, 875, 878, 881, 884, 887, 890, 892, 895, 898, 901, 904, 907, 910, 913, 916, 919, 921,
924, 927, 930, 933, 936, 938, 941, 944, 947, 949, 952, 955, 958, 961, 963, 966, 969, 972, 975, 978,
980, 983, 986, 989, 991, 994, 997, 1000, 1003, 1005, 1008, 1011, 1014, 1017, 1020, 1023}}}}}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=5993,ts=199766,"
"xgy=-368,ygy=64,zgy=1565,xac=-592,yac=-88,zac=-17012,xma=-2190,yma=-1448,zma=5079,temp=29,"
"sen=0,r=5880,g=4096,b=9949,"
"sen=1,r=5881,g=4096,b=9948,"
"tcStart,0,4,8,13,17,22,26,31,35,40,44,49,53,58,62,67,71,76,80,84,89,93,98,102,107,111,116,121,125,130,134,139,"
"143,148,152,157,161,166,170,175,180,185,189,194,199,204,208,213,217,222,227,231,236,240,245,250,254,259,263,268,"
"273,277,282,286,291,295,300,305,309,314,318,323,328,332,337,342,346,351,355,360,364,369,374,378,383,388,392,397,"
"401,406,410,415,419,424,429,433,438,442,447,452,456,461,466,470,475,479,484,488,493,498,502,507,511,516,521,525,"
"530,534,539,543,548,553,557,562,567,571,576,580,586,590,595,599,603,608,612,616,621,625,629,633,638,642,646,651,"
"655,659,663,667,672,676,680,684,688,692,697,701,705,709,713,717,720,724,728,732,736,740,743,747,751,755,758,762,"
"766,769,773,777,780,784,787,791,795,798,801,805,808,811,815,818,821,825,828,831,834,838,841,844,847,850,853,856,"
"859,862,865,868,871,874,877,880,883,887,889,892,895,899,902,905,908,911,914,917,920,923,925,928,931,935,937,940,"
"943,946,949,952,955,958,961,964,967,969,972,975,978,981,984,987,990,993,996,999,1002,1005,1008,1011,1013,1016,"
"1019,1023",
// IMU
{true, {199766000, -592, -88, -17012, -368, 64, 1565, -2190, -1448, 5079, 29}},
// exposure
{},
// white balance
{{0, {199766000, 5880, 4096, 9949}}, {1, {199766000, 5881, 4096, 9948}}},
// tone curve
{{1,
{199766000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 44, 49, 53, 58, 62, 67, 71, 76, 80, 84,
89, 93, 98, 102, 107, 111, 116, 121, 125, 130, 134, 139, 143, 148, 152, 157, 161, 166, 170, 175,
180, 185, 189, 194, 199, 204, 208, 213, 217, 222, 227, 231, 236, 240, 245, 250, 254, 259, 263, 268,
273, 277, 282, 286, 291, 295, 300, 305, 309, 314, 318, 323, 328, 332, 337, 342, 346, 351, 355, 360,
364, 369, 374, 378, 383, 388, 392, 397, 401, 406, 410, 415, 419, 424, 429, 433, 438, 442, 447, 452,
456, 461, 466, 470, 475, 479, 484, 488, 493, 498, 502, 507, 511, 516, 521, 525, 530, 534, 539, 543,
548, 553, 557, 562, 567, 571, 576, 580, 586, 590, 595, 599, 603, 608, 612, 616, 621, 625, 629, 633,
638, 642, 646, 651, 655, 659, 663, 667, 672, 676, 680, 684, 688, 692, 697, 701, 705, 709, 713, 717,
720, 724, 728, 732, 736, 740, 743, 747, 751, 755, 758, 762, 766, 769, 773, 777, 780, 784, 787, 791,
795, 798, 801, 805, 808, 811, 815, 818, 821, 825, 828, 831, 834, 838, 841, 844, 847, 850, 853, 856,
859, 862, 865, 868, 871, 874, 877, 880, 883, 887, 889, 892, 895, 899, 902, 905, 908, 911, 914, 917,
920, 923, 925, 928, 931, 935, 937, 940, 943, 946, 949, 952, 955, 958, 961, 964, 967, 969, 972, 975,
978, 981, 984, 987, 990, 993, 996, 999, 1002, 1005, 1008, 1011, 1013, 1016, 1019, 1023}}}}}));
ENSURE(
parseAndCompare("MetaStartMarker,idx=6175,ts=205832,"
"xgy=-368,ygy=19,zgy=1885,xac=-536,yac=736,zac=-16932,xma=-1805,yma=-1095,zma=5234,"
"temp=27,"
"sen=0,iso=357,sht=0.02000000,sht_mx=0.00000000,"
"r=5966,g=4096,b=9863,"
"sen=1,iso=322,sht=0.02000000,sht_mx=0.00000000,"
"r=5967,g=4096,b=9861",
// IMU
{true, {205832000, -536, 736, -16932, -368, 19, 1885, -1805, -1095, 5234, 27}},
// exposure
{{0, {205832000, 357, 0.02f, 0.0f}}, {1, {205832000, 322, 0.02f, 0.0f}}},
// white balance
{{0, {205832000, 5966, 4096, 9863}}, {1, {205832000, 5967, 4096, 9861}}},
// tone curve
{}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=6426,ts=214199,"
"xgy=-325,ygy=-1,zgy=1128,xac=-476,yac=608,zac=-16988,xma=-2501,yma=-1485,zma=6000,temp=29,"
"sen=0,iso=359,sht=0.02000000,sht_mx=0.00000000,r=5933,g=4096,b=9950,"
"sen=1,"
"tcStart,0,4,8,13,17,22,26,31,35,40,44,49,53,58,62,67,71,76,81,85,90,94,99,103,108,112,117,122,126,131,135,140,"
"144,149,153,158,163,167,172,176,181,186,191,196,201,205,210,214,219,224,229,233,238,242,247,252,256,261,266,270,"
"275,280,284,289,293,298,303,307,312,317,321,326,330,335,340,345,349,354,358,363,368,372,377,382,386,391,395,400,"
"405,409,414,418,423,428,433,437,442,446,451,456,460,465,470,474,479,484,488,493,497,502,507,512,516,521,525,530,"
"535,539,544,548,553,558,562,567,572,576,581,586,591,596,600,604,609,613,618,622,626,631,635,639,643,648,652,656,"
"660,665,669,673,677,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,741,745,749,753,756,760,764,768,"
"771,775,779,782,786,790,793,797,800,803,807,810,813,816,820,823,826,830,833,836,839,842,845,848,852,854,857,860,"
"863,866,869,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,919,922,925,928,931,934,937,940,942,"
"945,948,951,954,957,960,962,965,968,971,974,977,979,982,985,988,991,994,996,999,1002,1005,1008,1011,1014,1017,"
"1020,1023",
// IMU
{true, {214199000, -476, 608, -16988, -325, -1, 1128, -2501, -1485, 6000, 29}},
// exposure
{{0, {214199000, 359, 0.02f, 0.0f}}},
// white balance
{{0, {214199000, 5933, 4096, 9950}}},
// tone curve
{{1,
{214199000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 44, 49, 53, 58, 62, 67, 71, 76, 81, 85,
90, 94, 99, 103, 108, 112, 117, 122, 126, 131, 135, 140, 144, 149, 153, 158, 163, 167, 172, 176,
181, 186, 191, 196, 201, 205, 210, 214, 219, 224, 229, 233, 238, 242, 247, 252, 256, 261, 266, 270,
275, 280, 284, 289, 293, 298, 303, 307, 312, 317, 321, 326, 330, 335, 340, 345, 349, 354, 358, 363,
368, 372, 377, 382, 386, 391, 395, 400, 405, 409, 414, 418, 423, 428, 433, 437, 442, 446, 451, 456,
460, 465, 470, 474, 479, 484, 488, 493, 497, 502, 507, 512, 516, 521, 525, 530, 535, 539, 544, 548,
553, 558, 562, 567, 572, 576, 581, 586, 591, 596, 600, 604, 609, 613, 618, 622, 626, 631, 635, 639,
643, 648, 652, 656, 660, 665, 669, 673, 677, 682, 686, 690, 694, 698, 702, 706, 710, 714, 718, 722,
726, 730, 734, 738, 741, 745, 749, 753, 756, 760, 764, 768, 771, 775, 779, 782, 786, 790, 793, 797,
800, 803, 807, 810, 813, 816, 820, 823, 826, 830, 833, 836, 839, 842, 845, 848, 852, 854, 857, 860,
863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, 905, 908, 911, 914, 917, 919,
922, 925, 928, 931, 934, 937, 940, 942, 945, 948, 951, 954, 957, 960, 962, 965, 968, 971, 974, 977,
979, 982, 985, 988, 991, 994, 996, 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023}}}}}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=7040,ts=234666,"
"xgy=-430,ygy=-16,zgy=22,xac=-640,yac=104,zac=-16944,xma=-2255,yma=-1428,zma=5843,temp=29,"
"sen=0,"
"tcStart,0,4,8,13,18,23,27,32,37,42,46,51,55,60,65,70,74,79,84,89,94,98,103,107,112,117,122,127,131,136,141,146,"
"150,155,160,165,170,175,179,184,189,194,199,204,209,214,219,224,229,234,239,243,248,253,258,263,268,273,278,282,"
"287,292,297,302,307,312,317,321,326,331,336,341,346,351,356,361,365,370,375,380,385,390,395,400,404,409,414,419,"
"424,429,433,438,443,448,453,457,462,467,472,477,482,487,492,497,502,507,511,516,521,526,531,536,540,545,550,555,"
"560,565,570,574,579,584,589,594,599,604,609,614,619,624,628,633,637,642,647,651,656,660,665,669,673,678,682,686,"
"690,695,699,703,708,712,716,721,725,729,733,737,741,745,749,753,757,761,764,768,772,776,779,783,786,790,794,798,"
"801,805,808,812,815,819,822,825,828,831,835,838,841,844,847,850,853,856,859,862,864,867,870,872,876,878,881,883,"
"886,888,891,894,896,899,901,904,907,909,911,914,917,920,922,924,927,930,932,934,937,939,942,944,947,949,952,954,"
"957,959,961,964,966,969,971,973,976,978,981,983,985,988,991,993,995,998,1000,1003,1005,1007,1010,1013,1015,1017,"
"1020,1023,"
"sen=1,"
"tcStart,0,4,8,13,18,23,27,32,36,41,46,51,55,60,64,69,74,78,83,88,93,97,102,106,111,116,121,125,130,135,140,144,"
"149,154,158,163,168,173,177,182,187,192,197,202,207,212,216,221,226,231,236,241,246,251,255,260,265,270,275,279,"
"284,289,294,298,303,308,313,318,323,328,332,337,342,347,352,357,361,366,371,376,380,385,390,395,400,405,409,414,"
"419,424,428,433,438,443,448,452,457,462,467,472,477,482,486,491,496,501,505,510,515,520,525,530,534,539,544,549,"
"554,558,563,568,573,578,583,587,592,597,602,607,612,617,621,626,630,635,639,644,648,653,657,661,666,670,675,679,"
"683,687,692,696,700,705,709,713,717,721,726,730,734,738,742,746,749,753,757,761,764,768,772,775,779,783,787,790,"
"794,797,801,804,808,811,815,818,821,824,828,831,834,837,840,843,846,849,852,855,858,861,864,866,870,872,875,878,"
"880,883,886,888,891,894,896,899,902,904,907,909,912,915,918,920,923,926,928,931,933,936,938,941,944,946,949,951,"
"954,956,959,961,964,966,969,971,974,976,979,982,984,987,989,992,994,997,999,1002,1005,1007,1010,1012,1014,1017,"
"1020,1023",
// IMU
{true, {234666000, -640, 104, -16944, -430, -16, 22, -2255, -1428, 5843, 29}},
// exposure
{},
// white balance
{},
// tone curve
{{0,
{234666000,
{{0, 4, 8, 13, 18, 23, 27, 32, 37, 42, 46, 51, 55, 60, 65, 70, 74, 79, 84, 89,
94, 98, 103, 107, 112, 117, 122, 127, 131, 136, 141, 146, 150, 155, 160, 165, 170, 175, 179, 184,
189, 194, 199, 204, 209, 214, 219, 224, 229, 234, 239, 243, 248, 253, 258, 263, 268, 273, 278, 282,
287, 292, 297, 302, 307, 312, 317, 321, 326, 331, 336, 341, 346, 351, 356, 361, 365, 370, 375, 380,
385, 390, 395, 400, 404, 409, 414, 419, 424, 429, 433, 438, 443, 448, 453, 457, 462, 467, 472, 477,
482, 487, 492, 497, 502, 507, 511, 516, 521, 526, 531, 536, 540, 545, 550, 555, 560, 565, 570, 574,
579, 584, 589, 594, 599, 604, 609, 614, 619, 624, 628, 633, 637, 642, 647, 651, 656, 660, 665, 669,
673, 678, 682, 686, 690, 695, 699, 703, 708, 712, 716, 721, 725, 729, 733, 737, 741, 745, 749, 753,
757, 761, 764, 768, 772, 776, 779, 783, 786, 790, 794, 798, 801, 805, 808, 812, 815, 819, 822, 825,
828, 831, 835, 838, 841, 844, 847, 850, 853, 856, 859, 862, 864, 867, 870, 872, 876, 878, 881, 883,
886, 888, 891, 894, 896, 899, 901, 904, 907, 909, 911, 914, 917, 920, 922, 924, 927, 930, 932, 934,
937, 939, 942, 944, 947, 949, 952, 954, 957, 959, 961, 964, 966, 969, 971, 973, 976, 978, 981, 983,
985, 988, 991, 993, 995, 998, 1000, 1003, 1005, 1007, 1010, 1013, 1015, 1017, 1020, 1023}}}},
{1,
{234666000,
{{0, 4, 8, 13, 18, 23, 27, 32, 36, 41, 46, 51, 55, 60, 64, 69, 74, 78, 83, 88,
93, 97, 102, 106, 111, 116, 121, 125, 130, 135, 140, 144, 149, 154, 158, 163, 168, 173, 177, 182,
187, 192, 197, 202, 207, 212, 216, 221, 226, 231, 236, 241, 246, 251, 255, 260, 265, 270, 275, 279,
284, 289, 294, 298, 303, 308, 313, 318, 323, 328, 332, 337, 342, 347, 352, 357, 361, 366, 371, 376,
380, 385, 390, 395, 400, 405, 409, 414, 419, 424, 428, 433, 438, 443, 448, 452, 457, 462, 467, 472,
477, 482, 486, 491, 496, 501, 505, 510, 515, 520, 525, 530, 534, 539, 544, 549, 554, 558, 563, 568,
573, 578, 583, 587, 592, 597, 602, 607, 612, 617, 621, 626, 630, 635, 639, 644, 648, 653, 657, 661,
666, 670, 675, 679, 683, 687, 692, 696, 700, 705, 709, 713, 717, 721, 726, 730, 734, 738, 742, 746,
749, 753, 757, 761, 764, 768, 772, 775, 779, 783, 787, 790, 794, 797, 801, 804, 808, 811, 815, 818,
821, 824, 828, 831, 834, 837, 840, 843, 846, 849, 852, 855, 858, 861, 864, 866, 870, 872, 875, 878,
880, 883, 886, 888, 891, 894, 896, 899, 902, 904, 907, 909, 912, 915, 918, 920, 923, 926, 928, 931,
933, 936, 938, 941, 944, 946, 949, 951, 954, 956, 959, 961, 964, 966, 969, 971, 974, 976, 979, 982,
984, 987, 989, 992, 994, 997, 999, 1002, 1005, 1007, 1010, 1012, 1014, 1017, 1020, 1023}}}}}));
}
void testNewToneCurve() {
ENSURE(parseAndCompare(
"MetaStartMarker,idx=5521,ts=184032,"
"xgy=-344,ygy=-15,zgy=77,xac=-720,yac=132,zac=-16912,xma=-2616,yma=-1363,zma=6010,"
"temp=30,"
"sen=0,"
"tcStart=0;4;8;13;17;22;26;31;35;40;45;49;54;58;63;67;72;76;81;86;90;95;99;104;108;113;118;122;127;131;136;140;"
"145;150;154;159;164;168;173;177;182;187;192;197;202;206;211;215;220;225;230;234;239;244;248;253;258;262;267;272;"
"276;281;286;290;295;300;304;309;314;319;323;328;332;337;342;347;351;356;360;365;370;374;379;384;389;393;398;402;"
"407;412;416;421;426;430;435;439;444;449;454;458;463;468;472;477;482;487;491;496;500;505;510;515;519;524;528;533;"
"538;542;547;552;556;561;566;570;575;580;585;589;594;599;603;608;612;617;621;626;630;634;639;643;647;651;656;660;"
"664;668;673;677;681;686;690;694;698;702;706;710;714;718;722;726;730;734;738;742;745;749;753;756;760;764;768;771;"
"775;779;782;786;790;793;797;800;803;807;810;814;817;820;823;826;830;833;836;839;842;845;848;851;855;857;860;863;"
"866;869;872;875;878;881;884;887;890;892;895;898;901;904;907;910;913;916;919;921;924;927;930;933;936;938;941;944;"
"947;949;952;955;958;961;963;966;969;972;975;978;980;983;986;989;991;994;997;1000;1003;1005;1008;1011;1014;1017;"
"1020;1023,"
"sen=1",
// IMU
{true, {184032000, -720, 132, -16912, -344, -15, 77, -2616, -1363, 6010, 30}},
// exposure
{},
// white balance
{},
// tone curve
{{0,
{184032000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 45, 49, 54, 58, 63, 67, 72, 76, 81, 86,
90, 95, 99, 104, 108, 113, 118, 122, 127, 131, 136, 140, 145, 150, 154, 159, 164, 168, 173, 177,
182, 187, 192, 197, 202, 206, 211, 215, 220, 225, 230, 234, 239, 244, 248, 253, 258, 262, 267, 272,
276, 281, 286, 290, 295, 300, 304, 309, 314, 319, 323, 328, 332, 337, 342, 347, 351, 356, 360, 365,
370, 374, 379, 384, 389, 393, 398, 402, 407, 412, 416, 421, 426, 430, 435, 439, 444, 449, 454, 458,
463, 468, 472, 477, 482, 487, 491, 496, 500, 505, 510, 515, 519, 524, 528, 533, 538, 542, 547, 552,
556, 561, 566, 570, 575, 580, 585, 589, 594, 599, 603, 608, 612, 617, 621, 626, 630, 634, 639, 643,
647, 651, 656, 660, 664, 668, 673, 677, 681, 686, 690, 694, 698, 702, 706, 710, 714, 718, 722, 726,
730, 734, 738, 742, 745, 749, 753, 756, 760, 764, 768, 771, 775, 779, 782, 786, 790, 793, 797, 800,
803, 807, 810, 814, 817, 820, 823, 826, 830, 833, 836, 839, 842, 845, 848, 851, 855, 857, 860, 863,
866, 869, 872, 875, 878, 881, 884, 887, 890, 892, 895, 898, 901, 904, 907, 910, 913, 916, 919, 921,
924, 927, 930, 933, 936, 938, 941, 944, 947, 949, 952, 955, 958, 961, 963, 966, 969, 972, 975, 978,
980, 983, 986, 989, 991, 994, 997, 1000, 1003, 1005, 1008, 1011, 1014, 1017, 1020, 1023}}}}}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=5993,ts=199766,"
"xgy=-368,ygy=64,zgy=1565,xac=-592,yac=-88,zac=-17012,xma=-2190,yma=-1448,zma=5079,temp=29,"
"sen=0,r=5880,g=4096,b=9949,"
"sen=1,r=5881,g=4096,b=9948,"
"tcStart=0;4;8;13;17;22;26;31;35;40;44;49;53;58;62;67;71;76;80;84;89;93;98;102;107;111;116;121;125;130;134;139;"
"143;148;152;157;161;166;170;175;180;185;189;194;199;204;208;213;217;222;227;231;236;240;245;250;254;259;263;268;"
"273;277;282;286;291;295;300;305;309;314;318;323;328;332;337;342;346;351;355;360;364;369;374;378;383;388;392;397;"
"401;406;410;415;419;424;429;433;438;442;447;452;456;461;466;470;475;479;484;488;493;498;502;507;511;516;521;525;"
"530;534;539;543;548;553;557;562;567;571;576;580;586;590;595;599;603;608;612;616;621;625;629;633;638;642;646;651;"
"655;659;663;667;672;676;680;684;688;692;697;701;705;709;713;717;720;724;728;732;736;740;743;747;751;755;758;762;"
"766;769;773;777;780;784;787;791;795;798;801;805;808;811;815;818;821;825;828;831;834;838;841;844;847;850;853;856;"
"859;862;865;868;871;874;877;880;883;887;889;892;895;899;902;905;908;911;914;917;920;923;925;928;931;935;937;940;"
"943;946;949;952;955;958;961;964;967;969;972;975;978;981;984;987;990;993;996;999;1002;1005;1008;1011;1013;1016;"
"1019;1023",
// IMU
{true, {199766000, -592, -88, -17012, -368, 64, 1565, -2190, -1448, 5079, 29}},
// exposure
{},
// white balance
{{0, {199766000, 5880, 4096, 9949}}, {1, {199766000, 5881, 4096, 9948}}},
// tone curve
{{1,
{199766000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 44, 49, 53, 58, 62, 67, 71, 76, 80, 84,
89, 93, 98, 102, 107, 111, 116, 121, 125, 130, 134, 139, 143, 148, 152, 157, 161, 166, 170, 175,
180, 185, 189, 194, 199, 204, 208, 213, 217, 222, 227, 231, 236, 240, 245, 250, 254, 259, 263, 268,
273, 277, 282, 286, 291, 295, 300, 305, 309, 314, 318, 323, 328, 332, 337, 342, 346, 351, 355, 360,
364, 369, 374, 378, 383, 388, 392, 397, 401, 406, 410, 415, 419, 424, 429, 433, 438, 442, 447, 452,
456, 461, 466, 470, 475, 479, 484, 488, 493, 498, 502, 507, 511, 516, 521, 525, 530, 534, 539, 543,
548, 553, 557, 562, 567, 571, 576, 580, 586, 590, 595, 599, 603, 608, 612, 616, 621, 625, 629, 633,
638, 642, 646, 651, 655, 659, 663, 667, 672, 676, 680, 684, 688, 692, 697, 701, 705, 709, 713, 717,
720, 724, 728, 732, 736, 740, 743, 747, 751, 755, 758, 762, 766, 769, 773, 777, 780, 784, 787, 791,
795, 798, 801, 805, 808, 811, 815, 818, 821, 825, 828, 831, 834, 838, 841, 844, 847, 850, 853, 856,
859, 862, 865, 868, 871, 874, 877, 880, 883, 887, 889, 892, 895, 899, 902, 905, 908, 911, 914, 917,
920, 923, 925, 928, 931, 935, 937, 940, 943, 946, 949, 952, 955, 958, 961, 964, 967, 969, 972, 975,
978, 981, 984, 987, 990, 993, 996, 999, 1002, 1005, 1008, 1011, 1013, 1016, 1019, 1023}}}}}));
ENSURE(
parseAndCompare("MetaStartMarker,idx=6175,ts=205832,"
"xgy=-368,ygy=19,zgy=1885,xac=-536,yac=736,zac=-16932,xma=-1805,yma=-1095,zma=5234,"
"temp=27,"
"sen=0,iso=357,sht=0.02000000,sht_mx=0.00000000,"
"r=5966,g=4096,b=9863,"
"sen=1,iso=322,sht=0.02000000,sht_mx=0.00000000,"
"r=5967,g=4096,b=9861",
// IMU
{true, {205832000, -536, 736, -16932, -368, 19, 1885, -1805, -1095, 5234, 27}},
// exposure
{{0, {205832000, 357, 0.02f, 0.0f}}, {1, {205832000, 322, 0.02f, 0.0f}}},
// white balance
{{0, {205832000, 5966, 4096, 9863}}, {1, {205832000, 5967, 4096, 9861}}},
// tone curve
{}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=6426,ts=214199,"
"xgy=-325,ygy=-1,zgy=1128,xac=-476,yac=608,zac=-16988,xma=-2501,yma=-1485,zma=6000,temp=29,"
"sen=0,iso=359,sht=0.02000000,sht_mx=0.00000000,r=5933,g=4096,b=9950,"
"sen=1,"
"tcStart=0;4;8;13;17;22;26;31;35;40;44;49;53;58;62;67;71;76;81;85;90;94;99;103;108;112;117;122;126;131;135;140;"
"144;149;153;158;163;167;172;176;181;186;191;196;201;205;210;214;219;224;229;233;238;242;247;252;256;261;266;270;"
"275;280;284;289;293;298;303;307;312;317;321;326;330;335;340;345;349;354;358;363;368;372;377;382;386;391;395;400;"
"405;409;414;418;423;428;433;437;442;446;451;456;460;465;470;474;479;484;488;493;497;502;507;512;516;521;525;530;"
"535;539;544;548;553;558;562;567;572;576;581;586;591;596;600;604;609;613;618;622;626;631;635;639;643;648;652;656;"
"660;665;669;673;677;682;686;690;694;698;702;706;710;714;718;722;726;730;734;738;741;745;749;753;756;760;764;768;"
"771;775;779;782;786;790;793;797;800;803;807;810;813;816;820;823;826;830;833;836;839;842;845;848;852;854;857;860;"
"863;866;869;872;875;878;881;884;887;890;893;896;899;902;905;908;911;914;917;919;922;925;928;931;934;937;940;942;"
"945;948;951;954;957;960;962;965;968;971;974;977;979;982;985;988;991;994;996;999;1002;1005;1008;1011;1014;1017;"
"1020;1023",
// IMU
{true, {214199000, -476, 608, -16988, -325, -1, 1128, -2501, -1485, 6000, 29}},
// exposure
{{0, {214199000, 359, 0.02f, 0.0f}}},
// white balance
{{0, {214199000, 5933, 4096, 9950}}},
// tone curve
{{1,
{214199000,
{{0, 4, 8, 13, 17, 22, 26, 31, 35, 40, 44, 49, 53, 58, 62, 67, 71, 76, 81, 85,
90, 94, 99, 103, 108, 112, 117, 122, 126, 131, 135, 140, 144, 149, 153, 158, 163, 167, 172, 176,
181, 186, 191, 196, 201, 205, 210, 214, 219, 224, 229, 233, 238, 242, 247, 252, 256, 261, 266, 270,
275, 280, 284, 289, 293, 298, 303, 307, 312, 317, 321, 326, 330, 335, 340, 345, 349, 354, 358, 363,
368, 372, 377, 382, 386, 391, 395, 400, 405, 409, 414, 418, 423, 428, 433, 437, 442, 446, 451, 456,
460, 465, 470, 474, 479, 484, 488, 493, 497, 502, 507, 512, 516, 521, 525, 530, 535, 539, 544, 548,
553, 558, 562, 567, 572, 576, 581, 586, 591, 596, 600, 604, 609, 613, 618, 622, 626, 631, 635, 639,
643, 648, 652, 656, 660, 665, 669, 673, 677, 682, 686, 690, 694, 698, 702, 706, 710, 714, 718, 722,
726, 730, 734, 738, 741, 745, 749, 753, 756, 760, 764, 768, 771, 775, 779, 782, 786, 790, 793, 797,
800, 803, 807, 810, 813, 816, 820, 823, 826, 830, 833, 836, 839, 842, 845, 848, 852, 854, 857, 860,
863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, 905, 908, 911, 914, 917, 919,
922, 925, 928, 931, 934, 937, 940, 942, 945, 948, 951, 954, 957, 960, 962, 965, 968, 971, 974, 977,
979, 982, 985, 988, 991, 994, 996, 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023}}}}}));
ENSURE(parseAndCompare(
"MetaStartMarker,idx=7040,ts=234666,"
"xgy=-430,ygy=-16,zgy=22,xac=-640,yac=104,zac=-16944,xma=-2255,yma=-1428,zma=5843,temp=29,"
"sen=0,"
"tcStart=0;4;8;13;18;23;27;32;37;42;46;51;55;60;65;70;74;79;84;89;94;98;103;107;112;117;122;127;131;136;141;146;"
"150;155;160;165;170;175;179;184;189;194;199;204;209;214;219;224;229;234;239;243;248;253;258;263;268;273;278;282;"
"287;292;297;302;307;312;317;321;326;331;336;341;346;351;356;361;365;370;375;380;385;390;395;400;404;409;414;419;"
"424;429;433;438;443;448;453;457;462;467;472;477;482;487;492;497;502;507;511;516;521;526;531;536;540;545;550;555;"
"560;565;570;574;579;584;589;594;599;604;609;614;619;624;628;633;637;642;647;651;656;660;665;669;673;678;682;686;"
"690;695;699;703;708;712;716;721;725;729;733;737;741;745;749;753;757;761;764;768;772;776;779;783;786;790;794;798;"
"801;805;808;812;815;819;822;825;828;831;835;838;841;844;847;850;853;856;859;862;864;867;870;872;876;878;881;883;"
"886;888;891;894;896;899;901;904;907;909;911;914;917;920;922;924;927;930;932;934;937;939;942;944;947;949;952;954;"
"957;959;961;964;966;969;971;973;976;978;981;983;985;988;991;993;995;998;1000;1003;1005;1007;1010;1013;1015;1017;"
"1020;1023,"
"sen=1,"
"tcStart=0;4;8;13;18;23;27;32;36;41;46;51;55;60;64;69;74;78;83;88;93;97;102;106;111;116;121;125;130;135;140;144;"
"149;154;158;163;168;173;177;182;187;192;197;202;207;212;216;221;226;231;236;241;246;251;255;260;265;270;275;279;"
"284;289;294;298;303;308;313;318;323;328;332;337;342;347;352;357;361;366;371;376;380;385;390;395;400;405;409;414;"
"419;424;428;433;438;443;448;452;457;462;467;472;477;482;486;491;496;501;505;510;515;520;525;530;534;539;544;549;"
"554;558;563;568;573;578;583;587;592;597;602;607;612;617;621;626;630;635;639;644;648;653;657;661;666;670;675;679;"
"683;687;692;696;700;705;709;713;717;721;726;730;734;738;742;746;749;753;757;761;764;768;772;775;779;783;787;790;"
"794;797;801;804;808;811;815;818;821;824;828;831;834;837;840;843;846;849;852;855;858;861;864;866;870;872;875;878;"
"880;883;886;888;891;894;896;899;902;904;907;909;912;915;918;920;923;926;928;931;933;936;938;941;944;946;949;951;"
"954;956;959;961;964;966;969;971;974;976;979;982;984;987;989;992;994;997;999;1002;1005;1007;1010;1012;1014;1017;"
"1020;1023",
// IMU
{true, {234666000, -640, 104, -16944, -430, -16, 22, -2255, -1428, 5843, 29}},
// exposure
{},
// white balance
{},
// tone curve
{{0,
{234666000,
{{0, 4, 8, 13, 18, 23, 27, 32, 37, 42, 46, 51, 55, 60, 65, 70, 74, 79, 84, 89,
94, 98, 103, 107, 112, 117, 122, 127, 131, 136, 141, 146, 150, 155, 160, 165, 170, 175, 179, 184,
189, 194, 199, 204, 209, 214, 219, 224, 229, 234, 239, 243, 248, 253, 258, 263, 268, 273, 278, 282,
287, 292, 297, 302, 307, 312, 317, 321, 326, 331, 336, 341, 346, 351, 356, 361, 365, 370, 375, 380,
385, 390, 395, 400, 404, 409, 414, 419, 424, 429, 433, 438, 443, 448, 453, 457, 462, 467, 472, 477,
482, 487, 492, 497, 502, 507, 511, 516, 521, 526, 531, 536, 540, 545, 550, 555, 560, 565, 570, 574,
579, 584, 589, 594, 599, 604, 609, 614, 619, 624, 628, 633, 637, 642, 647, 651, 656, 660, 665, 669,
673, 678, 682, 686, 690, 695, 699, 703, 708, 712, 716, 721, 725, 729, 733, 737, 741, 745, 749, 753,
757, 761, 764, 768, 772, 776, 779, 783, 786, 790, 794, 798, 801, 805, 808, 812, 815, 819, 822, 825,
828, 831, 835, 838, 841, 844, 847, 850, 853, 856, 859, 862, 864, 867, 870, 872, 876, 878, 881, 883,
886, 888, 891, 894, 896, 899, 901, 904, 907, 909, 911, 914, 917, 920, 922, 924, 927, 930, 932, 934,
937, 939, 942, 944, 947, 949, 952, 954, 957, 959, 961, 964, 966, 969, 971, 973, 976, 978, 981, 983,
985, 988, 991, 993, 995, 998, 1000, 1003, 1005, 1007, 1010, 1013, 1015, 1017, 1020, 1023}}}},
{1,
{234666000,
{{0, 4, 8, 13, 18, 23, 27, 32, 36, 41, 46, 51, 55, 60, 64, 69, 74, 78, 83, 88,
93, 97, 102, 106, 111, 116, 121, 125, 130, 135, 140, 144, 149, 154, 158, 163, 168, 173, 177, 182,
187, 192, 197, 202, 207, 212, 216, 221, 226, 231, 236, 241, 246, 251, 255, 260, 265, 270, 275, 279,
284, 289, 294, 298, 303, 308, 313, 318, 323, 328, 332, 337, 342, 347, 352, 357, 361, 366, 371, 376,
380, 385, 390, 395, 400, 405, 409, 414, 419, 424, 428, 433, 438, 443, 448, 452, 457, 462, 467, 472,
477, 482, 486, 491, 496, 501, 505, 510, 515, 520, 525, 530, 534, 539, 544, 549, 554, 558, 563, 568,
573, 578, 583, 587, 592, 597, 602, 607, 612, 617, 621, 626, 630, 635, 639, 644, 648, 653, 657, 661,
666, 670, 675, 679, 683, 687, 692, 696, 700, 705, 709, 713, 717, 721, 726, 730, 734, 738, 742, 746,
749, 753, 757, 761, 764, 768, 772, 775, 779, 783, 787, 790, 794, 797, 801, 804, 808, 811, 815, 818,
821, 824, 828, 831, 834, 837, 840, 843, 846, 849, 852, 855, 858, 861, 864, 866, 870, 872, 875, 878,
880, 883, 886, 888, 891, 894, 896, 899, 902, 904, 907, 909, 912, 915, 918, 920, 923, 926, 928, 931,
933, 936, 938, 941, 944, 946, 949, 951, 954, 956, 959, 961, 964, 966, 969, 971, 974, 976, 979, 982,
984, 987, 989, 992, 994, 997, 999, 1002, 1005, 1007, 1010, 1012, 1014, 1017, 1020, 1023}}}}}));
}
} // namespace Testing
} // namespace VideoStitch
int main(int /*argc*/, char** /*argv*/) {
VideoStitch::Testing::initTest();
VideoStitch::Testing::testRecordedDataFw0177();
VideoStitch::Testing::testNewToneCurve();
VideoStitch::Testing::testSyntheticData();
return 0;
}