int checkadd(TimecodeRate const * const fps, double samplerate) { TimecodeTime t; char tcs[20]; int64_t test; t.hour = 2; t.minute = 33; t.second = 59; t.frame = 22; t.subframe = 20; test = timecode_to_sample(&t, fps, samplerate); test*=2; timecode_sample_to_time(&t, fps, samplerate, test); timecode_time_to_string(tcs, &t); fprintf(stdout, "%s\n", tcs); test/=2; timecode_sample_to_time(&t, fps, samplerate, test); t.hour = 2; t.minute = 33; t.second = 59; t.frame = 22; t.subframe = 20; timecode_time_add(&t, fps, &t, &t); timecode_time_to_string(tcs, &t); fprintf(stdout, "%s\n", tcs); return 0; }
void timecode_convert_rate (TimecodeTime * const t_out, TimecodeRate const * const r_out, TimecodeTime * const t_in, TimecodeRate const * const r_in) { //const double rate = 84672000; // LCM(192k, 88.2k, 24, 25, 30) //const double rate = TCtoDbl(r_out) < TCtoDbl(r_in) ? (TCtoDbl(r_in) * r_in->subframes) : (TCtoDbl(r_out) * r_out->subframes); const double rate = TCtoDbl(r_out) < TCtoDbl(r_in) ? TCtoDbl(r_in) : TCtoDbl(r_out); int64_t s = timecode_to_sample(t_in, r_in, rate); timecode_sample_to_time(t_out, r_out, rate, s); }
int checksub(TimecodeRate const * const fps, double samplerate) { TimecodeTime t1,t2,res; char tcs[20]; int64_t test1,test2; t1.hour = 2; t1.minute = 33; t1.second = 59; t1.frame = 22; t1.subframe = 0; t2.hour = 0; t2.minute = 20; t2.second = 9; t2.frame = 12; t2.subframe = 50; test1 = timecode_to_sample(&t1, fps, samplerate); test2 = timecode_to_sample(&t2, fps, samplerate); timecode_sample_to_time(&res, fps, samplerate, test1-test2); timecode_time_to_string(tcs, &res); fprintf(stdout, "%s\n", tcs); timecode_time_subtract(&res, fps, &t1, &t2); timecode_time_to_string(tcs, &res); fprintf(stdout, "%s\n", tcs); return 0; }
int checkfps(int64_t magic, TimecodeRate const * const fps, double samplerate) { TimecodeTime t; char tcs[128]; int64_t test; timecode_sample_to_time(&t, fps, samplerate, magic); test = timecode_to_sample(&t, fps, samplerate); timecode_strftime(tcs, 128, "%Z", &t, fps); fprintf(stdout, "%s\n", tcs); printf("%lld %lld diff: %lld\n", test, magic, magic-test); return 0; }
void timecode_seconds_to_time (TimecodeTime * const t, TimecodeRate const * const r, const double sec) { const double rate = TCtoDbl(r) * (r->subframes != 0 ? r->subframes : 1.0); timecode_sample_to_time(t, r, rate, timecode_seconds_to_sample(sec, rate)); }
void timecode_framenumber_to_time (TimecodeTime * const t, TimecodeRate const * const r, const int64_t frameno) { timecode_sample_to_time(t, r, TCtoDbl(r), frameno); }