[FFmpeg-devel] [PATCH] fftools/ffmpeg_demux: gracefully ignore mismatching channel layouts for -channel_layout option

Marton Balint cus at passwd.hu
Mon Jun 10 22:23:07 EEST 2024



On Wed, 5 Jun 2024, Anton Khirnov wrote:

> Quoting Marton Balint (2024-06-03 23:48:47)
>> The very old behaviour of -channel_layout was to simply warn the user about
>> channel layouts which does not have a matching channel count, and ignore them,
>> instead of reporting an error.
>>
>> The recent fix re-added support for overriding -channel_layout, but it rejected
>> mismatching layouts. There is no easy way for the user to specify a channel
>> layout only for streams with matching number of channels, so this patch
>> restores the very old behaviour of ignoring mismatching layouts. See the
>> discussion in ticket #11016.
>
> I'm ambivalent about this. On one hand it probably doesn't hurt, for now
> at least, on the other it seems quite ad-hoc. Previously it worked this
> way mostly by accident, whereas if we now restore this behaviour
> deliberately we'll be committing to supporting it for the foreseeable
> future.
>

Yeah, I am a bit unsure about it as well. What made me implement this is 
that there is really no easy way I could think of to simulate the old 
behaviour. An alternative idea might be to introduce a new option 
"-try_channel_map" which only gives a warning.

Ideally if we could use a stream specifier something like

-channel_map:a:eval:eq(st.codecpar.ch_layout.nb_channels,1) mono

that should solve this in a generic way, but this requires massive new 
features in the eval API and in the opt API as well.

Regards,
Marton


More information about the ffmpeg-devel mailing list