[FFmpeg-devel] [PATCH 1/3] audioconvert: include the long name of channels in the library.

Nicolas George nicolas.george at normalesup.org
Mon Jul 30 00:40:07 CEST 2012


Signed-off-by: Nicolas George <nicolas.george at normalesup.org>
---
 libavutil/audioconvert.c |   63 +++++++++++++++++++++++++---------------------
 1 file changed, 34 insertions(+), 29 deletions(-)

diff --git a/libavutil/audioconvert.c b/libavutil/audioconvert.c
index e17f52e..7010144 100644
--- a/libavutil/audioconvert.c
+++ b/libavutil/audioconvert.c
@@ -28,38 +28,43 @@
 #include "audioconvert.h"
 #include "bprint.h"
 
-static const char * const channel_names[] = {
-    [0]  = "FL",        /* front left */
-    [1]  = "FR",        /* front right */
-    [2]  = "FC",        /* front center */
-    [3]  = "LFE",       /* low frequency */
-    [4]  = "BL",        /* back left */
-    [5]  = "BR",        /* back right */
-    [6]  = "FLC",       /* front left-of-center  */
-    [7]  = "FRC",       /* front right-of-center */
-    [8]  = "BC",        /* back-center */
-    [9]  = "SL",        /* side left */
-    [10] = "SR",        /* side right */
-    [11] = "TC",        /* top center */
-    [12] = "TFL",       /* top front left */
-    [13] = "TFC",       /* top front center */
-    [14] = "TFR",       /* top front right */
-    [15] = "TBL",       /* top back left */
-    [16] = "TBC",       /* top back center */
-    [17] = "TBR",       /* top back right */
-    [29] = "DL",        /* downmix left */
-    [30] = "DR",        /* downmix right */
-    [31] = "WL",        /* wide left */
-    [32] = "WR",        /* wide right */
-    [33] = "SDL",       /* surround direct left */
-    [34] = "SDR",       /* surround direct right */
+struct channel_name {
+    const char *short_name;
+    const char *long_name;
+};
+
+static const struct channel_name channel_names[] = {
+     [0] = { "FL",        "front left"            },
+     [1] = { "FR",        "front right"           },
+     [2] = { "FC",        "front center"          },
+     [3] = { "LFE",       "low frequency"         },
+     [4] = { "BL",        "back left"             },
+     [5] = { "BR",        "back right"            },
+     [6] = { "FLC",       "front left-of-center"  },
+     [7] = { "FRC",       "front right-of-center" },
+     [8] = { "BC",        "back center"           },
+     [9] = { "SL",        "side left"             },
+    [10] = { "SR",        "side right"            },
+    [11] = { "TC",        "top center"            },
+    [12] = { "TFL",       "top front left"        },
+    [13] = { "TFC",       "top front center"      },
+    [14] = { "TFR",       "top front right"       },
+    [15] = { "TBL",       "top back left"         },
+    [16] = { "TBC",       "top back center"       },
+    [17] = { "TBR",       "top back right"        },
+    [29] = { "DL",        "downmix left"          },
+    [30] = { "DR",        "downmix right"         },
+    [31] = { "WL",        "wide left"             },
+    [32] = { "WR",        "wide right"            },
+    [33] = { "SDL",       "surround direct left"  },
+    [34] = { "SDR",       "surround direct right" },
 };
 
 static const char *get_channel_name(int channel_id)
 {
     if (channel_id < 0 || channel_id >= FF_ARRAY_ELEMS(channel_names))
         return NULL;
-    return channel_names[channel_id];
+    return channel_names[channel_id].short_name;
 }
 
 static const struct {
@@ -107,9 +112,9 @@ static uint64_t get_channel_layout_single(const char *name, int name_len)
             return channel_layout_map[i].layout;
     }
     for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++)
-        if (channel_names[i] &&
-            strlen(channel_names[i]) == name_len &&
-            !memcmp(channel_names[i], name, name_len))
+        if (channel_names[i].short_name &&
+            strlen(channel_names[i].short_name) == name_len &&
+            !memcmp(channel_names[i].short_name, name, name_len))
             return (int64_t)1 << i;
     i = strtol(name, &end, 10);
     if (end - name == name_len ||
-- 
1.7.10.4



More information about the ffmpeg-devel mailing list