[FFmpeg-cvslog] avutil/channel_layout: don't try to print NULL string pointers in av_channel_{name,description}

James Almer git at videolan.org
Fri Mar 25 13:46:12 EET 2022


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Fri Mar 25 08:37:44 2022 -0300| [6e04ace7fe470f1351d8acd1af464d3688b4c115] | committer: James Almer

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 at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6e04ace7fe470f1351d8acd1af464d3688b4c115
---

 libavutil/channel_layout.c | 6 ++++--
 1 file 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);



More information about the ffmpeg-cvslog mailing list