[FFmpeg-devel] [PATCH v2 4/5] avutil/channel_layout: add av_channel_layout_retype()

Anton Khirnov anton at khirnov.net
Fri Feb 9 17:10:55 EET 2024


Quoting Marton Balint (2024-02-04 20:28:11)
> +/**
> + * Change the AVChannelOrder of a channel layout.
> + *
> + * Change of AVChannelOrder can be either lossless or lossy. In case of a
> + * lossless conversion all the channel designations and the associated channel
> + * names (if any) are kept. On a lossy conversion the channel names and channel
> + * designations might be lost depending on the capabilities of the desired
> + * AVChannelOrder. Note that some conversions are simply not possible in which
> + * case this function returns AVERROR(ENOSYS).
> + *
> + * The following conversions are supported:
> + *
> + * Any       -> Custom     : Always possible, always lossless.
> + * Any       -> Unspecified: Always possible, lossless if channel designations
> + *   are all unknown and channel names are not used, lossy otherwise.
> + * Custom    -> Ambisonic  : Possible if it contains ambisonic channels with
> + *   optional non-diegetic channels in the end. Lossy if the channels have
> + *   custom names, lossless otherwise.
> + * Custom    -> Native     : Possible if it contains native channels in native
> + *     order. Lossy if the channels have custom names, lossless otherwise.
> + *
> + * On error this function keeps the original channel layout untouched.
> + *
> + * @param channel_layout channel layout which will be changed
> + * @param order the desired channel layout order
> + * @param flags a combination of AV_CHANNEL_LAYOUT_RETYPE_FLAG_* constants
> + * @return 0 if the conversion was successful and lossless or if the channel
> + *           layout was already in the desired order
> + *         1 if the conversion was successful but lossy

You could say 'positive number' instead of 1, which leaves us wiggle
room to use other numbers in the future in a backwards compatible way.

Looks ok otherwise.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list