[FFmpeg-devel] [PATCH] Implement guessed_pts in avcodec_decode_video2.
Måns Rullgård
mans
Mon Jan 31 14:59:50 CET 2011
Jean-Daniel Dupas <devlists at shadowlab.org> writes:
> Le 31 janv. 2011 ? 13:37, M?ns Rullg?rd a ?crit :
>
>> Jean-Daniel Dupas <devlists at shadowlab.org> writes:
>>
>>> Le 30 janv. 2011 ? 20:39, M?ns Rullg?rd a ?crit :
>>>
>>>> Nicolas George <nicolas.george at normalesup.org> writes:
>>>>
>>>>> Signed-off-by: Nicolas George <nicolas.george at normalesup.org>
>>>>> ---
>>>>> cmdutils.c | 27 ---------------------------
>>>>> cmdutils.h | 24 ------------------------
>>>>> ffmpeg.c | 14 ++++++--------
>>>>> ffplay.c | 10 +++-------
>>>>> libavcodec/avcodec.h | 20 ++++++++++++++++++++
>>>>> libavcodec/utils.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
>>>>> 6 files changed, 71 insertions(+), 67 deletions(-)
>>>>>
>>>>> This patch moves the guess_correct_pts function from cmdutils to libavcodec.
>>>>> The feature is available through a new field in AVFrame, guessed_pts.
>>>>>
>>>>> make test and ffplay still work, but I would like to have some more time to
>>>>> read it carefully, but I have things to do in the next few days, and this
>>>>> feature was discussed in another thread, so here the current version. It
>>>>> will conflict with some patches that will certainly soon be applied, so I
>>>>> will update and submit it again anyway.
>>>>
>>>> What is all this guessing supposed to achieve anyway? It makes me
>>>> feel uneasy
>>>
>>> Try to play H.264 with reordered frame in avi container without this
>>> guess, and you will see why it is necessary.
>>
>> AVI does not have timestamps (only an implied DTS), so the PTS would
>> be calculated by counting decoded frames and multiplying by the frame
>> rate.
>
> So why the demuxer is providing wrong information ?
Because someone put code in libavformat to guess missing PTS.
Unfortunately this code is broken.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list