[FFmpeg-devel] [FFmpeg-cvslog] avcodec/dca: add new decoder based on libdcadec

James Almer jamrial at gmail.com
Sun Jan 31 20:04:41 CET 2016


On 1/31/2016 3:57 PM, James Almer wrote:
> On 1/31/2016 3:51 PM, Michael Niedermayer wrote:
>> On Sun, Jan 31, 2016 at 05:14:14PM +0100, foo86 wrote:
>>> ffmpeg | branch: master | foo86 <foobaz86 at gmail.com> | Sat Jan 16 11:54:38 2016 +0300| [ae5b2c52501d5009fe712334428138a9b758849b] | committer: Hendrik Leppkes
>>>
>>> avcodec/dca: add new decoder based on libdcadec
>>>
>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ae5b2c52501d5009fe712334428138a9b758849b
>>> ---
>>>
>>
>>
>> this breaks request_channel_layout
>>
>> example:
>> ./ffmpeg -i dts/lotr_5.1_768.dts test.wav
>>
>> Input #0, dts, from '/home/michael/videos/dts/lotr_5.1_768.dts':
>>   Duration: 00:02:05.18, start: 0.000000, bitrate: 768 kb/s
>>     Stream #0:0: Audio: dts (DTS-ES), 48000 Hz, 6.1, fltp, 768 kb/s
>>
>>
>> vs.
>> ./ffmpeg -request_channel_layout 3 -i dts/lotr_5.1_768.dts test-req3.wav
>>
>> Input #0, dts, from '/home/michael/videos/dts/lotr_5.1_768.dts':
>>   Duration: 00:02:05.18, start: 0.000000, bitrate: 768 kb/s
>>     Stream #0:0: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s
>>
>> vs.
>> ./ffmpeg-ref -request_channel_layout 3 -i dts/lotr_5.1_768.dts test-ref-req3.wav
>>
>> Input #0, dts, from '/home/michael/videos/dts/lotr_5.1_768.dts':
>>   Duration: 00:02:05.18, start: 0.000000, bitrate: 768 kb/s
>>     Stream #0:0: Audio: dts (DTS-ES), 48000 Hz, stereo, fltp, 768 kb/s
>>
>>
>> previously it resulted in 2 channels now it produces 5.1 when
>> requesting stereo
> 
> libdcadec (and thus this new decoder) doesn't force stereo when downmix
> coefficients are not embedded in the stream, leaving the work to the
> resampler instead. Try the libdcadec wrapper and it will do the same.
> 
> It's an intended change in behavior compared to the old dca decoder, so
> i guess it could documented.
> 

To expand a bit based on what foo86 mentioned in a patch for the wrapper,
with DTS-ES, DTS-HDMA and other extensions, if you request a stereo downmix
and coefficients are not available it will not bother applying all the
extensions to output 7 or 8 channels and instead output the core 5.1 stream
as is, to simplify the work of the resampler.
Trying to force a downmix using default coefficients may result in clipping.

He can explain it much better than me, though.


More information about the ffmpeg-devel mailing list