[FFmpeg-devel] [PATCH] Stream parsing
Baptiste Coudurier
baptiste.coudurier
Mon Oct 4 00:49:42 CEST 2010
On 10/3/10 12:36 PM, Michael Niedermayer wrote:
> On Sun, Oct 03, 2010 at 09:18:19PM +0200, Benjamin Larsson wrote:
>> On 10/03/2010 08:40 PM, Justin Ruggles wrote:
>>> Benjamin Larsson wrote:
>>>
>>>> $topic, previously discussed in [RFC] Stream parsing
>>>>
>>>> MvH
>>>> Benjamin Larsson
>>>>
>>>
>>>> +/**
>>>> + * Codec should fill in channel configuration and samplerate instead of container
>>>> + */
>>>> +#define CODEC_CAP_CHANNEL_CONF 0x0400
>>> [...]
>>>> @@ -2191,9 +2192,17 @@
>>>> }
>>>> }
>>>> assert(!st->codec->codec);
>>>> + codec = avcodec_find_decoder(st->codec->codec_id);
>>>> +
>>>> + /* Force decoding of at least one frame of codec data
>>>> + * this makes sure the codec initializes the channel configuration
>>>> + * and does not trust the values from the container.
>>>> + */
>>>> + if (codec && codec->capabilities & CODEC_CAP_CHANNEL_CONF)
>>>> + st->codec->channels = 0;
>>>
>>> Your documentation says channel configuration and samplerate. Why is
>>> sample_rate not also set to 0 here?
>>>
>>> -Justin
>>
>>
>> As long as
>>
>> if (!has_codec_parameters(st->codec) ||
>> !has_decode_delay_been_guessed(st))
>> try_decode_frame(st, pkt);
>>
>> will happen the codec will override whatever is set in the codec
>> context. Just setting channels to 0 will make sure that happens.
>
> and it feels correcter to just set channels to 0 because its more likely
> that the codec knows at least the channels count
This has side-effects unfortunately, see issue #2053 and #2246.
--
Baptiste COUDURIER
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer http://www.ffmpeg.org
More information about the ffmpeg-devel
mailing list