[FFmpeg-devel] [PATCH 4/4] lavu/log: do not assume AVClass.item_name is always set

Anton Khirnov anton at khirnov.net
Tue Nov 7 14:58:35 EET 2023


---
 libavutil/log.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavutil/log.c b/libavutil/log.c
index 2d358b7ab9..46662f3db0 100644
--- a/libavutil/log.c
+++ b/libavutil/log.c
@@ -291,6 +291,11 @@ static const char *get_level_str(int level)
     }
 }
 
+static const char *item_name(void *obj, const AVClass *cls)
+{
+    return (cls->item_name ? cls->item_name : av_default_item_name)(obj);
+}
+
 static void format_line(void *avcl, int level, const char *fmt, va_list vl,
                         AVBPrint part[4], int *print_prefix, int type[2])
 {
@@ -307,12 +312,12 @@ static void format_line(void *avcl, int level, const char *fmt, va_list vl,
                                    avc->parent_log_context_offset);
             if (parent && *parent) {
                 av_bprintf(part+0, "[%s @ %p] ",
-                         (*parent)->item_name(parent), parent);
+                           item_name(parent, *parent), parent);
                 if(type) type[0] = get_category(parent);
             }
         }
         av_bprintf(part+1, "[%s @ %p] ",
-                 avc->item_name(avcl), avcl);
+                   item_name(avcl, avc), avcl);
         if(type) type[1] = get_category(avcl);
     }
 
-- 
2.42.0



More information about the ffmpeg-devel mailing list