int detect_discontinuity(LTCFrameExt *frame, LTCFrameExt *prev, int fps, int use_date, int fuzzyfps) { int discontinuity_detected = 0; if (fuzzyfps && ( (frame->reverse && prev->ltc.frame_units == 0) ||(!frame->reverse && frame->ltc.frame_units == 0) )){ memcpy(prev, frame, sizeof(LTCFrameExt)); return 0; } if (frame->reverse) ltc_frame_decrement(&prev->ltc, fps, fps == 25? LTC_TV_625_50 : LTC_TV_525_60, use_date?LTC_USE_DATE:0); else ltc_frame_increment(&prev->ltc, fps, fps == 25? LTC_TV_625_50 : LTC_TV_525_60, use_date?LTC_USE_DATE:0); if (cmp_ltc_frametime(&prev->ltc, &frame->ltc, use_date?1:0)) discontinuity_detected = 1; memcpy(prev, frame, sizeof(LTCFrameExt)); return discontinuity_detected; }
int ltc_encoder_inc_timecode(LTCEncoder *e) { return ltc_frame_increment (&e->f, rint(e->fps), e->standard, e->flags); }