예제 #1
0
파일: tctest.c 프로젝트: jox/libtimecode
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;
}
예제 #2
0
파일: timecode.c 프로젝트: x42/libtimecode
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);
}
예제 #3
0
파일: tctest.c 프로젝트: jox/libtimecode
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;
}
예제 #4
0
파일: tctest.c 프로젝트: jox/libtimecode
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;
}
예제 #5
0
파일: timecode.c 프로젝트: x42/libtimecode
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));
}
예제 #6
0
파일: timecode.c 프로젝트: x42/libtimecode
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);
}