#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".