#11469: ffmpeg_demux: readrate plays "catch up" if output is blocked, then later
resumed
-------------------------------------+-------------------------------------
             Reporter:  Wallboy      |                    Owner:  (none)
                 Type:  defect       |                   Status:  open
             Priority:  normal       |                Component:  ffmpeg
              Version:  git-master   |               Resolution:
             Keywords:  demuxer      |               Blocked By:
  readrate                           |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Wallboy):

 I've been messing around with a potential hacky solution.

 Just before the following condition:

 {{{
 if (pts - burst_until > now)...
 }}}

 Add the following check to see if we've fallen behind, and then offset
 wallclock_start and recalculate now:

 {{{
 if (now - pts > 500000) {  // arbitrary 0.5 sec threshold
     d->wallclock_start += now - (pts - burst_until);
     now = (av_gettime_relative() - d->wallclock_start) * d->readrate +
 stream_ts_offset;
 }
 }}}

 This seems to do the job for my use case scenarios, but I'm sure there are
 some edge cases to be aware of. At least it's some sort of idea for a
 potential real solution.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11469#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to