summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/audioconvert.c11
-rw-r--r--libavutil/audioconvert.h7
2 files changed, 18 insertions, 0 deletions
diff --git a/libavutil/audioconvert.c b/libavutil/audioconvert.c
index 9e2f812d7c..36d07ee5a4 100644
--- a/libavutil/audioconvert.c
+++ b/libavutil/audioconvert.c
@@ -202,3 +202,14 @@ int av_get_channel_layout_channel_index(uint64_t channel_layout,
channel_layout &= channel - 1;
return av_get_channel_layout_nb_channels(channel_layout);
}
+
+const char *av_get_channel_name(uint64_t channel)
+{
+ int i;
+ if (av_get_channel_layout_nb_channels(channel) != 1)
+ return NULL;
+ for (i = 0; i < 64; i++)
+ if ((1ULL<<i) & channel)
+ return get_channel_name(i);
+ return NULL;
+}
diff --git a/libavutil/audioconvert.h b/libavutil/audioconvert.h
index 6f6b4447ef..e516ae8296 100644
--- a/libavutil/audioconvert.h
+++ b/libavutil/audioconvert.h
@@ -156,6 +156,13 @@ int av_get_channel_layout_channel_index(uint64_t channel_layout,
uint64_t channel);
/**
+ * Get the name of a given channel.
+ *
+ * @return channel name on success, NULL on error.
+ */
+const char *av_get_channel_name(uint64_t channel);
+
+/**
* @}
*/