[FFmpeg-devel] Correct libvorbis.c behaviour with >2 channels

Rob robert.swain
Thu Jun 17 10:21:44 CEST 2010


On 3 June 2010 11:35, James Darnley <james.darnley at gmail.com> wrote:
> On 3 June 2010 00:08, Justin Ruggles <justin.ruggles at gmail.com> wrote:
>> There are some patches on the issue tracker that might be useful.
>>
>> https://roundup.ffmpeg.org/issue1325
>>
>> This was only for 5.1 channels though. ?The vorbis spec has been
>> modified since then to support up to 7.1 I think... or more?
>
> Yes, it now has mappings for 1-8 channels.
>
> Any comments about putting the following in vorbis_data.c?
>
>>const uint8_t ff_vorbis_encoding_channel_layout_offsets[8][8] = {
>> ? ?{ 0, },
>> ? ?{ 0, 1, },
>> ? ?{ 0, 2, 1, },
>> ? ?{ 0, 1, 2, 3, },
>> ? ?{ 0, 2, 1, 3, 4, },
>> ? ?{ 0, 2, 1, 4, 5, 3, },
>> ? ?{ 0, 2, 1, 5, 6, 4, 3, },
>> ? ?{ 0, 2, 1, 6, 7, 4, 5, 3},
>>};

These look correct and vorbis_data.c is the correct location I guess.
Unless it is only used for decoding, then I'm not sure.

> Also, what should I do if someone tries to use more that 8 channels.
> Libvorbis appears to support it. ?Should this wrapper support it too
> or return an error?

No. More channels are valid, but their order is defined by the
application as I recall. So >8 channels should just be pushed through
in the order they are in. Or maybe some might prefer that the first 8
channels of the output match the order for 8 channels and then the
rest are in the order as the come.

Best regards,
Rob



More information about the ffmpeg-devel mailing list