summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2022-03-25 08:37:44 -0300
committerJames Almer <jamrial@gmail.com>2022-03-25 08:38:19 -0300
commit6e04ace7fe470f1351d8acd1af464d3688b4c115 (patch)
tree48ed30312257a3c417807c07e9aaf8938d8047d9 /libavutil
parentfa12d808d7239d120a3b43b6fb7e106db4e46d30 (diff)
avutil/channel_layout: don't try to print NULL string pointers in av_channel_{name,description}
Instead fallback to print USR%d for channels id < 64 without a known name. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/channel_layout.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
index bc1c841ad8..2d4ccae1bf 100644
--- a/libavutil/channel_layout.c
+++ b/libavutil/channel_layout.c
@@ -89,7 +89,8 @@ void av_channel_name_bprint(AVBPrint *bp, enum AVChannel channel_id)
if (channel_id >= AV_CHAN_AMBISONIC_BASE &&
channel_id <= AV_CHAN_AMBISONIC_END)
av_bprintf(bp, "AMBI%d", channel_id - AV_CHAN_AMBISONIC_BASE);
- else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names))
+ else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names) &&
+ channel_names[channel_id].name)
av_bprintf(bp, "%s", channel_names[channel_id].name);
else if (channel_id == AV_CHAN_NONE)
av_bprintf(bp, "NONE");
@@ -115,7 +116,8 @@ void av_channel_description_bprint(AVBPrint *bp, enum AVChannel channel_id)
if (channel_id >= AV_CHAN_AMBISONIC_BASE &&
channel_id <= AV_CHAN_AMBISONIC_END)
av_bprintf(bp, "ambisonic ACN %d", channel_id - AV_CHAN_AMBISONIC_BASE);
- else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names))
+ else if ((unsigned)channel_id < FF_ARRAY_ELEMS(channel_names) &&
+ channel_names[channel_id].description)
av_bprintf(bp, "%s", channel_names[channel_id].description);
else
av_bprintf(bp, "user %d", channel_id);