Unified · Split
| @@ -213,3 +213,17 @@ const char *av_get_channel_name(uint64_t channel) · 212 unmodified lines | |||
| 213 | return get_channel_name(i); | 213 | return get_channel_name(i); |
| 214 | return NULL; | 214 | return NULL; |
| 215 | } | 215 | } |
| 216 | |||
| 217 | uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index) | ||
| 218 | { | ||
| 219 | int i; | ||
| 220 | |||
| 221 | if (av_get_channel_layout_nb_channels(channel_layout) <= index) | ||
| 222 | return 0; | ||
| 223 | |||
| 224 | for (i = 0; i < 64; i++) { | ||
| 225 | if ((1ULL << i) & channel_layout && !index--) | ||
| 226 | return 1ULL << i; | ||
| 227 | } | ||
| 228 | return 0; | ||
| 229 | } | ||
| @@ -155,6 +155,11 @@ uint64_t av_get_default_channel_layout(int nb_channels); · 154 unmodified lines | |||
| 155 | int av_get_channel_layout_channel_index(uint64_t channel_layout, | 155 | int av_get_channel_layout_channel_index(uint64_t channel_layout, |
| 156 | uint64_t channel); | 156 | uint64_t channel); |
| 157 | 157 | ||
| 158 | /** | ||
| 159 | * Get the channel with the given index in channel_layout. | ||
| 160 | */ | ||
| 161 | uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index); | ||
| 162 | |||
| 158 | /** | 163 | /** |
| 159 | * Get the name of a given channel. | 164 | * Get the name of a given channel. |
| 160 | * | 165 | * |