[FFmpeg-devel] [PATCH] Implement guessed_pts in avcodec_decode_video2.

Måns Rullgård mans
Tue Feb 1 18:04:26 CET 2011


Jean-Daniel Dupas <devlists at shadowlab.org> writes:

> Le 1 f?vr. 2011 ? 17:44, M?ns Rullg?rd a ?crit :
>
>> Michael Niedermayer <michaelni at gmx.at> writes:
>> 
>>> On Tue, Feb 01, 2011 at 12:47:17PM +0000, M?ns Rullg?rd wrote:
>>>> Alexander Strange <astrange at ithinksw.com> writes:
>>>> 
>>>>> On Jan 30, 2011, at 2:28 PM, Nicolas George wrote:
>>>>> 
>>>>>> 
>>>>>> 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.
>>>>>> 
>>>>>> Regards,
>>>>>> 
>>>>>> -- 
>>>>>> Nicolas George
>>>>>> 
>>>>>> [..]
>>>>>> +\
>>>>>> +    /**\
>>>>>> +     * pts estimated using various heuristics, in stream time base\
>>>>>> +     * - encoding: unused\
>>>>>> +     * - decoding: set by libavcodec, read by user.\
>>>>>> +     */\
>>>>>> +    int64_t guessed_pts;\
>>>>> 
>>>>> It's not quite estimated, it's chosen from either pts or dts.  I
>>>>> think the name should be reassuring - though I can't think of one,
>>>>> just 'timestamp'?
>>>>> Also, the comment should say that clients can rely on this as the
>>>>> time of the frame.
>>>> 
>>>> But can they?  The current code certainly doesn't look reliable to me.
>>> 
>>> A patch that improves it together with a bugreport that shows an example of
>>> improvment is welcome.
>>> 
>>> besides in how far is this related to this patch?
>> 
>> The patch pushes the broken guessing code into lavc, which was up
>> until now reliable.
>
> If it was reliable, why ffplay and ffmpeg had to implement guessing
> in the first place ?

Because lavf is unreliable, and because nobody was allowed to touch
the code.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list