[FFmpeg-devel] [PATCH 2/2] avformat/riffdec: follow the MS docs more strictly for setting wav channel layouts

Tobias Rapp t.rapp at noa-archive.com
Thu Mar 21 10:23:18 EET 2024


On 19/03/2024 20:14, Marton Balint wrote:

>
>
> On Tue, 19 Mar 2024, Michael Niedermayer wrote:
>
>> On Sun, Mar 17, 2024 at 08:57:29PM +0100, Marton Balint wrote:
>>> - Only parse the defined masks in dwChannelMask, unless 
>>> strict_std_compliance
>>>   is less than normal. This matches with the behaviour of the wav 
>>> muxer.
>>> - Ignore additional bits in dwChannelMasks as the MS documentation 
>>> suggests [1]
>>> - Assume UNKNOWN channels for missing bits as the MS documentation 
>>> suggests [1]
>>>
>>> [1] 
>>> https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653308(v=vs.85)#details-about-dwchannelmask
>>>
>>> Signed-off-by: Marton Balint <cus at passwd.hu>
>>> ---
>>>  libavformat/riffdec.c | 28 +++++++++++++++++++++++++---
>>>  1 file changed, 25 insertions(+), 3 deletions(-)
>>
>> breaks:
>> ./ffmpeg  -i ~/tickets/2859/5.1plusdownmix.wav -ac 2 -t 100 -bitexact 
>> -c:a aac -y /tmp/2859-frenchspeack-nolibfaac.mp4
>
> After the patch this is file will need -strict unofficial to work, 
> since the downmix channels are not officially recognized in the 
> dwChannelMask.
>
I think downmix channels are part of the RF64 specification, see EBU 
Tech 3306 section 3.1:

"""
3.1 Enhancement for a PCM stereo down mix

No PCM stereo signal is included in the basic Wave Format Extensible.

To include a stereo channel the following is added:

#define SPEAKER_STEREO_LEFT    0x20000000
#define SPEAKER_STEREO_RIGHT    0x40000000
"""

Regards, Tobias



More information about the ffmpeg-devel mailing list