[FFmpeg-devel] [PATCH] use reordered_opaque in ffmpeg.c
Alexander Strange
astrange
Sun Jun 20 12:37:30 CEST 2010
On Jun 20, 2010, at 1:58 AM, Alexander Strange wrote:
> This changes ffmpeg.c to push PTS through the decoder using reordered_opaque instead of the old and not quite accurate thing it does now.
> It fixes a problem where initial decoder delay was treated as dropped frames.
>
> Contrived example:
>
> http://astrange.ithinksw.net/ffmpeg/camp_mot_mbaff0_full.mp4
> ffmpeg -strict 2 -i camp_mot_mbaff0_full.mp4 -y -an -f framecrc crc.txt
>
> Unpatched: frame= 30 fps= 0 q=0.0 Lsize= 1kB time=1.00 bitrate= 6.9kbits/s dup=14 drop=14
> Patched: frame= 30 fps= 0 q=0.0 Lsize= 1kB time=1.00 bitrate= 6.9kbits/s
>
> The first frame is emitted 14 times without the patch, and the last 14 frames are lost.
>
> This is rare on mainline, but required for it to support ffmpeg-mt which has increased decoder delay.
>
> A few things I tested still have timestamp problems - files with inaccurate dts or packed B-frames have non-monotonic pts coming out of reordered_opaque, and the issue with start_time isn't fixed - but I haven't found any files with worse sync.
>
> Tested make test, but not make fate since it fails immediately on 4xm even without any patching.
Turns out I needed to dl it with rsync -L. It works, anyway (but I don't think it tests this situation?).
>
> <0001-ffmpeg-Replace-EOF-test-with-equivalent-condition.patch><0002-ffmpeg-Send-decoded-frame-timestamps-through-reorder.patch>
More information about the ffmpeg-devel
mailing list