[FFmpeg-devel] [PATCH] Vorbis-in-Ogg: Do not set timebase to invalid values

Ronald S. Bultje rsbultje
Thu Feb 10 19:05:59 CET 2011


Hi,

On Mon, Feb 7, 2011 at 1:54 PM, Reimar D?ffinger
<Reimar.Doeffinger at gmx.de> wrote:
> On Mon, Feb 07, 2011 at 01:32:21PM -0500, Justin Ruggles wrote:
>> On 02/07/2011 12:40 PM, Reimar D?ffinger wrote:
>> > On Mon, Feb 07, 2011 at 03:49:45PM +0100, Michael Niedermayer wrote:
>> >> On Mon, Feb 07, 2011 at 09:34:53AM -0500, Justin Ruggles wrote:
>> >>>>>>> 1) Why is anything in libavformat setting codec->time_base for decoders
>> >>>>>>> when the documentation says that's supposed to be done by libavcodec
>> >>>>>>> ("decoding: Set by libavcodec.")?
>> >>>>>>
>> >>>>>> Because the docs are buggy
>> >>>>
>> >>>> here the docs should be fixed
>> >
>> >>> I just didn't understand what you were saying. "the docs are buggy" and
>> >>> "leave the documentation" seems contradictory and didn't really answer
>> >>> my questions as to the best way to move forward. ?My best guess is:
>> >>>
>> >>> 1) change time_base documentation to say "decoding: Set by user if
>> >>> known, overridden by libavcodec if known"
>> >>
>> >> exactly
>> >
>> > Uh, that does not fix the original issue. codec->time_base is set
>> > by libavformat. That still contradicts that description.
>> > What is the point of (AFAICT) some demuxers setting only stream->time_base
>> > others setting stream->codec->time_base and others setting both (to the same value)?
>>
>>
>> How does that contradict the description? ?To libavcodec, the demuxer is
>> the user.
>
> I'd say the ffmpeg application is the user.
> But I see how you meant it. So it's not wrong, but it does
> not answer my real question.
> Would a patch that removes all cases where demuxers set
> codec->time_base (possibly using av_set_pts_info instead)
> be accepted?

So do I have this right:
- AVStream->time_base is the time_base of timestamps expected by the
muxer, or output by the demuxer
- for encoding, AVCodecContext->time_base is the time_base for the
packets written by the application
- for decoding, AVCodecContext->time_base is a copy of AVStream->time_base?

Shouldn't we mark AVCodecContext->time_base as unused during decoding
then? It's unclear to me how it's different from AVStream->time_base
during decoding.

Ronald



More information about the ffmpeg-devel mailing list