From c4618f842a2de85097627763f02931afc3fde6d9 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Mon, 26 Dec 2016 01:19:34 +0100 Subject: avutil/channel_layout: add av_get_extended_channel_layout Return a channel layout and the number of channels based on the specified name. This function is similar to av_get_channel_layout(), but can also parse unknown channel layout specifications. Unknown channel layout specifications are a decimal number and a capital 'C' suffix, in order to not break compatibility with the lowercase 'c' suffix, which is used for a guessed channel layout with the specified number of channels. Signed-off-by: Marton Balint --- libavutil/channel_layout.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libavutil/channel_layout.h') diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h index 38c3337829..50bb8f03c5 100644 --- a/libavutil/channel_layout.h +++ b/libavutil/channel_layout.h @@ -141,6 +141,20 @@ enum AVMatrixEncoding { */ uint64_t av_get_channel_layout(const char *name); +/** + * Return a channel layout and the number of channels based on the specified name. + * + * This function is similar to (@see av_get_channel_layout), but can also parse + * unknown channel layout specifications. + * + * @param[in] name channel layout specification string + * @param[out] channel_layout parsed channel layout (0 if unknown) + * @param[out] nb_channels number of channels + * + * @return 0 on success, AVERROR(EINVAL) if the parsing fails. + */ +int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels); + /** * Return a description of a channel layout. * If nb_channels is <= 0, it is guessed from the channel_layout. -- cgit v1.2.3