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

wm4 nfxjfg at googlemail.com
Sun Jan 31 20:57:43 CET 2016


On Sun, 31 Jan 2016 20:51:23 +0100
Michael Niedermayer <michael at niedermayer.cc> wrote:

> On Sun, Jan 31, 2016 at 04:04:41PM -0300, James Almer wrote:
> > 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.  
> 
> the output is float, that should not clip
> also how is downmixing after the decoder better, it too would apply
> some coefficients (either risking an increase in peak volume or
> a average loss of volume or inconsistet attenuation
> 

At least you have control over it and can get consistent results with
other decoders.



More information about the ffmpeg-devel mailing list