2 Copyright (C) 2012 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 AudioClock::timecode_tester ()
24 #define Timecode_SAMPLE_TEST_1
25 #define Timecode_SAMPLE_TEST_2
26 #define Timecode_SAMPLE_TEST_3
27 #define Timecode_SAMPLE_TEST_4
28 #define Timecode_SAMPLE_TEST_5
29 #define Timecode_SAMPLE_TEST_6
30 #define Timecode_SAMPLE_TEST_7
32 // Testcode for timecode<->sample conversions (P.S.)
33 Timecode::Time timecode1;
35 framepos_t oldsample = 0;
36 Timecode::Time timecode2;
37 framecnt_t sample_increment;
39 sample_increment = (framecnt_t)rint(_session->frame_rate() / _session->timecode_frames_per_second);
41 #ifdef Timecode_SAMPLE_TEST_1
42 // Test 1: use_offset = false, use_subframes = false
43 cout << "use_offset = false, use_subframes = false" << endl;
44 for (int i = 0; i < 108003; i++) {
45 _session->timecode_to_sample( timecode1, sample1, false /* use_offset */, false /* use_subframes */ );
46 _session->sample_to_timecode( sample1, timecode2, false /* use_offset */, false /* use_subframes */ );
48 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
49 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
50 cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
51 cout << "sample: " << sample1 << endl;
52 cout << "sample: " << sample1 << " -> ";
53 cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
57 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
58 cout << "ERROR: timecode2 not equal timecode1" << endl;
59 cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
60 cout << "sample: " << sample1 << endl;
61 cout << "sample: " << sample1 << " -> ";
62 cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
66 _session->timecode_increment( timecode1 );
69 cout << "sample_increment: " << sample_increment << endl;
70 cout << "sample: " << sample1 << " -> ";
71 cout << "timecode: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
74 #ifdef Timecode_SAMPLE_TEST_2
75 // Test 2: use_offset = true, use_subframes = false
76 cout << "use_offset = true, use_subframes = false" << endl;
79 timecode1.minutes = 0;
80 timecode1.seconds = 0;
82 timecode1.subframes = 0;
83 sample1 = oldsample = 0;
85 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
86 cout << "Starting at sample: " << sample1 << " -> ";
87 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
89 for (int i = 0; i < 108003; i++) {
90 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
91 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
93 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
94 // cout << "sample: " << sample1 << endl;
95 // cout << "sample: " << sample1 << " -> ";
96 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
98 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
99 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
100 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
101 cout << "sample: " << sample1 << endl;
102 cout << "sample: " << sample1 << " -> ";
103 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
107 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
108 cout << "ERROR: timecode2 not equal timecode1" << endl;
109 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
110 cout << "sample: " << sample1 << endl;
111 cout << "sample: " << sample1 << " -> ";
112 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
116 _session->timecode_increment( timecode1 );
119 cout << "sample_increment: " << sample_increment << endl;
120 cout << "sample: " << sample1 << " -> ";
121 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
124 #ifdef Timecode_SAMPLE_TEST_3
125 // Test 3: use_offset = true, use_subframes = false, decrement
126 cout << "use_offset = true, use_subframes = false, decrement" << endl;
128 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
129 cout << "Starting at sample: " << sample1 << " -> ";
130 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
132 for (int i = 0; i < 108003; i++) {
133 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
134 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
136 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
137 // cout << "sample: " << sample1 << endl;
138 // cout << "sample: " << sample1 << " -> ";
139 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
141 if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
142 cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
143 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
144 cout << "sample: " << sample1 << endl;
145 cout << "sample: " << sample1 << " -> ";
146 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
150 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
151 cout << "ERROR: timecode2 not equal timecode1" << endl;
152 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
153 cout << "sample: " << sample1 << endl;
154 cout << "sample: " << sample1 << " -> ";
155 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
159 _session->timecode_decrement( timecode1 );
162 cout << "sample_decrement: " << sample_increment << endl;
163 cout << "sample: " << sample1 << " -> ";
164 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
168 #ifdef Timecode_SAMPLE_TEST_4
169 // Test 4: use_offset = true, use_subframes = true
170 cout << "use_offset = true, use_subframes = true" << endl;
172 for (long sub = 5; sub < 80; sub += 5) {
174 timecode1.minutes = 0;
175 timecode1.seconds = 0;
176 timecode1.frames = 0;
177 timecode1.subframes = 0;
178 sample1 = oldsample = (sample_increment * sub) / 80;
180 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, true /* use_subframes */ );
182 cout << "starting at sample: " << sample1 << " -> ";
183 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
185 for (int i = 0; i < 108003; i++) {
186 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
187 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
189 if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
190 cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
191 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
192 cout << "sample: " << sample1 << endl;
193 cout << "sample: " << sample1 << " -> ";
194 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
198 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
199 cout << "ERROR: timecode2 not equal timecode1" << endl;
200 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
201 cout << "sample: " << sample1 << endl;
202 cout << "sample: " << sample1 << " -> ";
203 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
207 _session->timecode_increment( timecode1 );
210 cout << "sample_increment: " << sample_increment << endl;
211 cout << "sample: " << sample1 << " -> ";
212 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
214 for (int i = 0; i < 108003; i++) {
215 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
216 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
218 if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
219 cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
220 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
221 cout << "sample: " << sample1 << endl;
222 cout << "sample: " << sample1 << " -> ";
223 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
227 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
228 cout << "ERROR: timecode2 not equal timecode1" << endl;
229 cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
230 cout << "sample: " << sample1 << endl;
231 cout << "sample: " << sample1 << " -> ";
232 cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
236 _session->timecode_decrement( timecode1 );
239 cout << "sample_decrement: " << sample_increment << endl;
240 cout << "sample: " << sample1 << " -> ";
241 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
246 #ifdef Timecode_SAMPLE_TEST_5
247 // Test 5: use_offset = true, use_subframes = false, increment seconds
248 cout << "use_offset = true, use_subframes = false, increment seconds" << endl;
251 timecode1.minutes = 0;
252 timecode1.seconds = 0;
253 timecode1.frames = 0;
254 timecode1.subframes = 0;
255 sample1 = oldsample = 0;
256 sample_increment = _session->frame_rate();
258 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
259 cout << "Starting at sample: " << sample1 << " -> ";
260 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
262 for (int i = 0; i < 3600; i++) {
263 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
264 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
266 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
267 // cout << "sample: " << sample1 << endl;
268 // cout << "sample: " << sample1 << " -> ";
269 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
271 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
273 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
277 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
278 cout << "ERROR: timecode2 not equal timecode1" << endl;
279 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
280 cout << "sample: " << sample1 << endl;
281 cout << "sample: " << sample1 << " -> ";
282 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
286 _session->timecode_increment_seconds( timecode1 );
289 cout << "sample_increment: " << sample_increment << endl;
290 cout << "sample: " << sample1 << " -> ";
291 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
295 #ifdef Timecode_SAMPLE_TEST_6
296 // Test 6: use_offset = true, use_subframes = false, increment minutes
297 cout << "use_offset = true, use_subframes = false, increment minutes" << endl;
300 timecode1.minutes = 0;
301 timecode1.seconds = 0;
302 timecode1.frames = 0;
303 timecode1.subframes = 0;
304 sample1 = oldsample = 0;
305 sample_increment = _session->frame_rate() * 60;
307 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
308 cout << "Starting at sample: " << sample1 << " -> ";
309 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
311 for (int i = 0; i < 60; i++) {
312 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
313 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
315 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
316 // cout << "sample: " << sample1 << endl;
317 // cout << "sample: " << sample1 << " -> ";
318 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
320 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
322 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
326 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
327 cout << "ERROR: timecode2 not equal timecode1" << endl;
328 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
329 cout << "sample: " << sample1 << endl;
330 cout << "sample: " << sample1 << " -> ";
331 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
335 _session->timecode_increment_minutes( timecode1 );
338 cout << "sample_increment: " << sample_increment << endl;
339 cout << "sample: " << sample1 << " -> ";
340 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
343 #ifdef Timecode_SAMPLE_TEST_7
344 // Test 7: use_offset = true, use_subframes = false, increment hours
345 cout << "use_offset = true, use_subframes = false, increment hours" << endl;
348 timecode1.minutes = 0;
349 timecode1.seconds = 0;
350 timecode1.frames = 0;
351 timecode1.subframes = 0;
352 sample1 = oldsample = 0;
353 sample_increment = _session->frame_rate() * 60 * 60;
355 _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
356 cout << "Starting at sample: " << sample1 << " -> ";
357 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
359 for (int i = 0; i < 10; i++) {
360 _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
361 _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
363 // cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
364 // cout << "sample: " << sample1 << endl;
365 // cout << "sample: " << sample1 << " -> ";
366 // cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
368 // if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
370 // cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
374 if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
375 cout << "ERROR: timecode2 not equal timecode1" << endl;
376 cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
377 cout << "sample: " << sample1 << endl;
378 cout << "sample: " << sample1 << " -> ";
379 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
383 _session->timecode_increment_hours( timecode1 );
386 cout << "sample_increment: " << sample_increment << endl;
387 cout << "sample: " << sample1 << " -> ";
388 cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;