[FFmpeg-devel] [RFC] [PATCH] ffmpeg vsync
Baptiste Coudurier
baptiste.coudurier
Sun Feb 8 04:24:01 CET 2009
Hi,
Alexander Strange wrote:
> On Jan 28, 2009, at 5:41 PM, Baptiste Coudurier wrote:
>
>> Hi guys,
>>
>> I was looking an do_video_out function in ffmpeg lately, and I spoted
>> this FIXME here since a long time.
>>
>> I was wondering what exactly the goal to achieve for vdelta was.
>> In the perfect scenario, vdelta should be 0, this is what happen if
>> first pts == 0
>>
>> Am I forgetting something ?
>
> I noticed the default vsync does the wrong thing for input files using
> h264 + B-pyramid;
In mp4 ? Ie with correct PTS information ?
> it duplicates the first frame because it thinks 2
> frames of decoder delay means a dropped frame. With this patch it does
> 2 duplicates instead, which is even worse. I didn't send a patch
> because I'm not quite sure what it's meant to do, or what the
> different -vsync options do.
Well with b pyramid, oftenly you have 2 frames delay. This might explain
the 2 duplicates, which is better than 1.
>> - else if (vdelta > 1.1)
>> - nb_frames = lrintf(vdelta);
>> + else if (vdelta > 0.5)
>> + nb_frames += lrintf(vdelta);
>
> Did you mean the +=?
Yes, nb_frames is 1, meaning it outputs 1 one frame.
If vdelta is 0, it adds no frames, if vdelta is 1 (which should mean 1
frame sync delta according to the code), it must duplicate 1 frame, ie
output 2 frames (nb_frames needs to be 2).
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no
FFmpeg maintainer http://www.ffmpeg.org
More information about the ffmpeg-devel
mailing list