[FFmpeg-devel] [PATCH] 8 channel layout fix for Vorbis decoder

Michael Niedermayer michaelni
Sat Nov 7 23:32:21 CET 2009


On Sat, Nov 07, 2009 at 05:13:40PM -0500, Justin Ruggles wrote:
> Michael Niedermayer wrote:
> 
> > On Sat, Nov 07, 2009 at 11:08:26AM -0500, Justin Ruggles wrote:
> >> Michael Niedermayer wrote:
> >>
> >>> On Tue, Nov 03, 2009 at 07:39:51PM -0500, Jason Tackaberry wrote:
> >>>> Hi,
> >>>>
> >>>> The attached patch implements sane channel layout behaviour for 7 and 8
> >>>> channel Vorbis files.
> >>>>
> >>>> The Vorbis specification [1] says that the layout for greater than six
> >>>> channels is left up to the application.  I think the most sensible and
> >>>> consistent layout for 7 and 8 channels is their 5 and 6 channel
> >>>> counterparts with back left/right channels appended.
> >>> ahh, xiph-alzheimer design again
> >>> from all options they succeed in selecting the one that is most different
> >>> from everyone else no matter how broken the option is even on its own
> >>>
> >>>
> >>> so what are our options
> >>> 1. leave channels as they are ordered
> >>>    -> requires each application to have a special case for vorbis because
> >>>       this order is never what one expects
> >>> 2. do a best effort reordering 
> >>>    -> someone will complain that its not correct for his file (that he just
> >>>       created)
> >>>       and his application could magically do better if only the evil
> >>>       ffmpeg didnt reorder channels
> >>>
> >>> solution:
> >>> add a value to request_channel_layout that specifies raw channel order and
> >>> layout without any changes and then do the reorder as you do in your patch
> >>> if this is not requested.
> >>> comments? suggestions? flames?
> >> I like it.  So value to use?
> >>
> >> 0x80000000 already means "all layouts supported" since we're using
> > 
> > is that documented in the appropriate header?
> > btw, what does "all layouts supported" mean for request_channel_layout ?
> 
> We do not have it defined or documented.
> 
> >> Microsoft's dwChannelMask values (for the low 32 bits at least).  So
> >> maybe 0x100000000LL or 0x8000000000000000LL?
> 
> We're using Microsoft's channel mask values, but I guess we could
> deviate from this if we want since we have not committed to it in the
> API documentation.  It just might be confusing to some if we use
> dwChannelMask values for the speaker locations but define our own
> special-case values that overlap with Microsoft's definition.

I dont really mind which value is used, -1 0x800... are options
and there are surely more

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20091107/92e4b3f1/attachment.pgp>



More information about the ffmpeg-devel mailing list