Example #1
0
char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame)
{
    int frame_num = tc->start + frame;
    int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den;
    int ff  = frame_num % fps;
    int ss  = frame_num / fps        % 60;
    int mm  = frame_num / (fps*60)   % 60;
    int hh  = frame_num / (fps*3600) % 24;

    if (tc->drop)
        frame_num = avpriv_framenum_to_drop_timecode(frame_num);
    snprintf(buf, sizeof("hh:mm:ss.ff"), "%02d:%02d:%02d%c%02d",
             hh, mm, ss, tc->drop ? ';' : ':', ff);
    return buf;
}
Example #2
0
char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame)
{
  int frame_num = tc->start + frame;
  int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den;
  int hh, mm, ss, ff, neg = 0;

  if (tc->drop)
    frame_num = avpriv_framenum_to_drop_timecode(frame_num);
  if (frame_num < 0) {
    frame_num = -frame_num;
    neg = 1;
  }
  ff = frame_num % fps;
  ss = frame_num / fps        % 60;
  mm = frame_num / (fps*60)   % 60;
  hh = frame_num / (fps*3600);
  snprintf(buf, 16, "%s%02d:%02d:%02d%c%02d",
           neg ? "-" : "",
           hh, mm, ss, tc->drop ? ';' : ':', ff);
  return buf;
}
Example #3
0
int ff_framenum_to_drop_timecode(int frame_num)
{
  return avpriv_framenum_to_drop_timecode(frame_num);
}