Commit 406b257d authored by Anton Khirnov's avatar Anton Khirnov

audioconvert: add a function for getting channel's index in layout

parent 3596de55
...@@ -192,3 +192,13 @@ uint64_t av_get_default_channel_layout(int nb_channels) ...@@ -192,3 +192,13 @@ uint64_t av_get_default_channel_layout(int nb_channels)
default: return 0; default: return 0;
} }
} }
int av_get_channel_layout_channel_index(uint64_t channel_layout,
uint64_t channel)
{
if (!(channel_layout & channel) ||
av_get_channel_layout_nb_channels(channel) != 1)
return AVERROR(EINVAL);
channel_layout &= channel - 1;
return av_get_channel_layout_nb_channels(channel_layout);
}
...@@ -143,6 +143,18 @@ int av_get_channel_layout_nb_channels(uint64_t channel_layout); ...@@ -143,6 +143,18 @@ int av_get_channel_layout_nb_channels(uint64_t channel_layout);
*/ */
uint64_t av_get_default_channel_layout(int nb_channels); uint64_t av_get_default_channel_layout(int nb_channels);
/**
* Get the index of a channel in channel_layout.
*
* @param channel a channel layout describing exactly one channel which must be
* present in channel_layout.
*
* @return index of channel in channel_layout on success, a negative AVERROR
* on error.
*/
int av_get_channel_layout_channel_index(uint64_t channel_layout,
uint64_t channel);
/** /**
* @} * @}
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment