2 AudioClock::timecode_tester ()
5 #define Timecode_SAMPLE_TEST_1
6 #define Timecode_SAMPLE_TEST_2
7 #define Timecode_SAMPLE_TEST_3
8 #define Timecode_SAMPLE_TEST_4
9 #define Timecode_SAMPLE_TEST_5
10 #define Timecode_SAMPLE_TEST_6
11 #define Timecode_SAMPLE_TEST_7
13 // Testcode for timecode<->sample conversions (P.S.)
14 Timecode::Time timecode1;
16 framepos_t oldsample = 0;
17 Timecode::Time timecode2;
18 framecnt_t sample_increment;
20 sample_increment = (framecnt_t)rint(_session->frame_rate() / _session->timecode_frames_per_second);
22 #ifdef Timecode_SAMPLE_TEST_1
23 // Test 1: use_offset = false, use_subframes = false
24 cout << "use_offset = false, use_subframes = false" << endl;
25 for (int i = 0; i < 108003; i++) {
26 _session->timecode_to_sample( timecode1, sample1, false /* use_offset */, false /* use_subframes */ );
27 _session->sample_to_timecode( sample1, timecode2, false /* use_offset */, false /* use_subframes */ );
29 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
30 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
31 cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
32 cout << "sample: " << sample1 << endl;
33 cout << "sample: " << sample1 << " -> ";
34 cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
38 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
39 cout << "ERROR: timecode2 not equal timecode1" << endl;
40 cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
41 cout << "sample: " << sample1 << endl;
42 cout << "sample: " << sample1 << " -> ";
43 cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
47 _session->timecode_increment( timecode1 );
50 cout << "sample_increment: " << sample_increment << endl;
51 cout << "sample: " << sample1 << " -> ";
52 cout << "timecode: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
55 #ifdef Timecode_SAMPLE_TEST_2
56 // Test 2: use_offset = true, use_subframes = false
57 cout << "use_offset = true, use_subframes = false" << endl;
60 timecode1.minutes = 0;
61 timecode1.seconds = 0;
63 timecode1.subframes = 0;
64 sample1 = oldsample = 0;
66 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
67 cout << "Starting at sample: " << sample1 << " -> ";
68 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
70 for (int i = 0; i < 108003; i++) {
71 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
72 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
74 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
75 // cout << "sample: " << sample1 << endl;
76 // cout << "sample: " << sample1 << " -> ";
77 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
79 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
80 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
81 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
82 cout << "sample: " << sample1 << endl;
83 cout << "sample: " << sample1 << " -> ";
84 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
88 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
89 cout << "ERROR: timecode2 not equal timecode1" << endl;
90 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
91 cout << "sample: " << sample1 << endl;
92 cout << "sample: " << sample1 << " -> ";
93 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
97 _session->timecode_increment( timecode1 );
100 cout << "sample_increment: " << sample_increment << endl;
101 cout << "sample: " << sample1 << " -> ";
102 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
105 #ifdef Timecode_SAMPLE_TEST_3
106 // Test 3: use_offset = true, use_subframes = false, decrement
107 cout << "use_offset = true, use_subframes = false, decrement" << endl;
109 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
110 cout << "Starting at sample: " << sample1 << " -> ";
111 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
113 for (int i = 0; i < 108003; i++) {
114 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
115 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
117 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
118 // cout << "sample: " << sample1 << endl;
119 // cout << "sample: " << sample1 << " -> ";
120 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
122 if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
123 cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
124 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
125 cout << "sample: " << sample1 << endl;
126 cout << "sample: " << sample1 << " -> ";
127 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
131 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
132 cout << "ERROR: timecode2 not equal timecode1" << endl;
133 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
134 cout << "sample: " << sample1 << endl;
135 cout << "sample: " << sample1 << " -> ";
136 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
140 _session->timecode_decrement( timecode1 );
143 cout << "sample_decrement: " << sample_increment << endl;
144 cout << "sample: " << sample1 << " -> ";
145 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
149 #ifdef Timecode_SAMPLE_TEST_4
150 // Test 4: use_offset = true, use_subframes = true
151 cout << "use_offset = true, use_subframes = true" << endl;
153 for (long sub = 5; sub < 80; sub += 5) {
155 timecode1.minutes = 0;
156 timecode1.seconds = 0;
157 timecode1.frames = 0;
158 timecode1.subframes = 0;
159 sample1 = oldsample = (sample_increment * sub) / 80;
161 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, true /* use_subframes */ );
163 cout << "starting at sample: " << sample1 << " -> ";
164 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
166 for (int i = 0; i < 108003; i++) {
167 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
168 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
170 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
171 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
172 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
173 cout << "sample: " << sample1 << endl;
174 cout << "sample: " << sample1 << " -> ";
175 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
179 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
180 cout << "ERROR: timecode2 not equal timecode1" << endl;
181 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
182 cout << "sample: " << sample1 << endl;
183 cout << "sample: " << sample1 << " -> ";
184 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
188 _session->timecode_increment( timecode1 );
191 cout << "sample_increment: " << sample_increment << endl;
192 cout << "sample: " << sample1 << " -> ";
193 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
195 for (int i = 0; i < 108003; i++) {
196 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
197 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
199 if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
200 cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
201 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
202 cout << "sample: " << sample1 << endl;
203 cout << "sample: " << sample1 << " -> ";
204 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
208 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
209 cout << "ERROR: timecode2 not equal timecode1" << endl;
210 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
211 cout << "sample: " << sample1 << endl;
212 cout << "sample: " << sample1 << " -> ";
213 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
217 _session->timecode_decrement( timecode1 );
220 cout << "sample_decrement: " << sample_increment << endl;
221 cout << "sample: " << sample1 << " -> ";
222 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
227 #ifdef Timecode_SAMPLE_TEST_5
228 // Test 5: use_offset = true, use_subframes = false, increment seconds
229 cout << "use_offset = true, use_subframes = false, increment seconds" << endl;
232 timecode1.minutes = 0;
233 timecode1.seconds = 0;
234 timecode1.frames = 0;
235 timecode1.subframes = 0;
236 sample1 = oldsample = 0;
237 sample_increment = _session->frame_rate();
239 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
240 cout << "Starting at sample: " << sample1 << " -> ";
241 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
243 for (int i = 0; i < 3600; i++) {
244 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
245 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
247 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
248 // cout << "sample: " << sample1 << endl;
249 // cout << "sample: " << sample1 << " -> ";
250 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
252 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
254 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
258 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
259 cout << "ERROR: timecode2 not equal timecode1" << endl;
260 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
261 cout << "sample: " << sample1 << endl;
262 cout << "sample: " << sample1 << " -> ";
263 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
267 _session->timecode_increment_seconds( timecode1 );
270 cout << "sample_increment: " << sample_increment << endl;
271 cout << "sample: " << sample1 << " -> ";
272 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
276 #ifdef Timecode_SAMPLE_TEST_6
277 // Test 6: use_offset = true, use_subframes = false, increment minutes
278 cout << "use_offset = true, use_subframes = false, increment minutes" << endl;
281 timecode1.minutes = 0;
282 timecode1.seconds = 0;
283 timecode1.frames = 0;
284 timecode1.subframes = 0;
285 sample1 = oldsample = 0;
286 sample_increment = _session->frame_rate() * 60;
288 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
289 cout << "Starting at sample: " << sample1 << " -> ";
290 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
292 for (int i = 0; i < 60; i++) {
293 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
294 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
296 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
297 // cout << "sample: " << sample1 << endl;
298 // cout << "sample: " << sample1 << " -> ";
299 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
301 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
303 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
307 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
308 cout << "ERROR: timecode2 not equal timecode1" << endl;
309 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
310 cout << "sample: " << sample1 << endl;
311 cout << "sample: " << sample1 << " -> ";
312 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
316 _session->timecode_increment_minutes( timecode1 );
319 cout << "sample_increment: " << sample_increment << endl;
320 cout << "sample: " << sample1 << " -> ";
321 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
324 #ifdef Timecode_SAMPLE_TEST_7
325 // Test 7: use_offset = true, use_subframes = false, increment hours
326 cout << "use_offset = true, use_subframes = false, increment hours" << endl;
329 timecode1.minutes = 0;
330 timecode1.seconds = 0;
331 timecode1.frames = 0;
332 timecode1.subframes = 0;
333 sample1 = oldsample = 0;
334 sample_increment = _session->frame_rate() * 60 * 60;
336 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
337 cout << "Starting at sample: " << sample1 << " -> ";
338 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
340 for (int i = 0; i < 10; i++) {
341 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
342 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
344 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
345 // cout << "sample: " << sample1 << endl;
346 // cout << "sample: " << sample1 << " -> ";
347 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
349 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
351 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
355 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
356 cout << "ERROR: timecode2 not equal timecode1" << endl;
357 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
358 cout << "sample: " << sample1 << endl;
359 cout << "sample: " << sample1 << " -> ";
360 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
364 _session->timecode_increment_hours( timecode1 );
367 cout << "sample_increment: " << sample_increment << endl;
368 cout << "sample: " << sample1 << " -> ";
369 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;