[FFmpeg-devel] TrueHD track in EVO not playable/testable with ffplay

Baptiste Coudurier baptiste.coudurier
Thu Jul 23 23:17:09 CEST 2009


On 07/23/2009 02:01 PM, Ramiro Polla wrote:
> On Mon, Jul 20, 2009 at 7:30 PM, Justin Ruggles<justin.ruggles at gmail.com>  wrote:
>> Baptiste Coudurier wrote:
>>> On 7/18/2009 3:15 PM, Ramiro Polla wrote:
>>>> On Tue, Jul 14, 2009 at 5:26 PM, Michael Niedermayer<michaelni at gmx.at>  wrote:
>>>>> On Tue, Jul 14, 2009 at 02:59:13PM -0300, Ramiro Polla wrote:
>>>>>> On Mon, Jul 13, 2009 at 6:02 PM, Justin Ruggles<justin.ruggles at gmail.com>  wrote:
>>>>>>> If you decide on using channels + request_channels + output_channels,
>>>>>>> here is what I think should happen.
>>>>>>>
>>>>>>> demuxer/parser : set channels to the number of source channels,
>>>>>>> completely ignoring request_channels.
>>>>>>>
>>>>>>> decoder : during init(), set channels to the number of source channels,
>>>>>>> set output_channels to what it will output, trying if it can to honor
>>>>>>> request_channels.
>>>>>>>
>>>>>>> The user can see if output_channels matches request_channels after
>>>>>>> decoder init.
>>>>>> And what shall the user do if output_channels has no value after decoder init?
>>>>> he should call av_find_stream_info() either way and that should fill it in,
>>>>> in theory ...
>>>> I have a few more ideas:
>>>> - av_find_stream_info() tests for output_channels if request_channels
>>>> is set. this would require request_channels to be set before even
>>>> opening the codec;
>>>> - av_find_stream_info() fills possible channel combinations in
>>>> coded_channels[] and the user chooses from that to set
>>>> request_channels. In this case it would set coded_channels[0] = 2;
>>>> coded_channels[1] = 6; coded_channels[2] = 0; or something like that.
>>> I really don't think av_find_stream_info you touch output_channels at
>>> all, this is a decoding problem not a stream info problem.
>> +1
>
> Hmm... Now we have Michael who thinks av_find_stream_info() should get
> information about request_channels, and Justin and Baptiste who think
> otherwise.
>
> Justin and Baptiste, you haven't answered this question:
>>>>>> And what shall the user do if output_channels has no value after decoder init?

It must wait for it IMHO, like it must wait to get sample_fmt to be set, 
which might happen after decoding the first frame.
I believe the same applies to output_channels.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org



More information about the ffmpeg-devel mailing list