[FFmpeg-devel] Decoder-independent multichannel downmixing

James Lee james.lee
Mon May 5 12:09:22 CEST 2008

2008/5/4 Justin Ruggles <justinruggles at bellsouth.net>:
>  Channel ordering is one big issue.  Currently, all decoders send output
>  in native channel order for that codec.  I agree that requiring decoders
>  to output in WAVE/SMTPE channel order would be best, but it can be
>  tricky.  Especially with raw audio, the channel order can depend on the
>  container, so the PCM decoder will not know if or how to rearrange the
>  channels without access to that information.
>  I have tried in the past, but it didn't get anywhere.  I believe
>  Benjamin has also attempted this, and he may have a good solution.
>  See:
>  http://wiki.multimedia.cx/index.php?title=FFmpeg_audio_API

Has any work taken place regarding the suggestions in that wiki
article?  It only seems to deal with channel downmixing, not with a
general solution for channel ordering (other than stating that the
user should reorder the channels before passing them into the mix
structure).  Also, it doesn't seem to allow for multiple downmixing
matrices for the same input channels / output channels combination -
you could imagine it might be nice to be able to have eg. a Dolby Pro
Logic, Dolby Pro Logic II, and other downmix matrices for 5.1 -->
stereo and have the user pass in an additional flag indicating their

And Justin, it looks like you had outlined a proposal for channel
ordering in some detail last year - any reason you didn't go ahead
with this (i.e. just lack of time, or a fundamental issue with it?).

Benjamin: are you working on these?  Is there any discussion going on
regarding this.

2008/5/5  <pross at xvid.org>:
> On Sun, May 04, 2008 at 06:12:35PM +0100, James Lee wrote:
>  > 1) Is this currently being worked on by anyone else?  Does this
>  > interact with any other features being worked on (for example general
>  > audio filters)?
>  A working, but far from elegant, quad and 5.1 downmixer can be found here:
>  http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-October/036938.html

That looks like a similar solution to what I suggested above (i.e.
adding some more downmixing functions to resample.c).  Looks like this
didn't get committed though - any particular reason why not?  I agree
that it would be preferable to have a more general solution such as
the one outlined in the wiki though.

More information about the ffmpeg-devel mailing list