From: Jan Alexander Steffens (heftig) Date: Tue, 21 Sep 2021 13:05:58 +0000 (+0200) Subject: x264enc: Strip trailing whitespace from x264's log messages X-Git-Tag: 1.19.3~505^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e4a9db6abed31db7211253d5d0a0ceee97c908b9;p=platform%2Fupstream%2Fgstreamer.git x264enc: Strip trailing whitespace from x264's log messages x264 has linebreaks at the end of its log messages that we should ignore. Add G_GNUC_PRINTF to the callback to make sure GCC lets us forward the format string to another function marked as printf (g_strdup_vprintf) without triggering -Wformat-nonliteral. Part-of: --- diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c index d0e2479..2604506 100644 --- a/ext/x264/gstx264enc.c +++ b/ext/x264/gstx264enc.c @@ -1228,6 +1228,10 @@ gst_x264_enc_class_init (GstX264EncClass * klass) gst_type_mark_as_plugin_api (GST_X264_ENC_TUNE_TYPE, 0); } +/* *INDENT-OFF* */ +G_GNUC_PRINTF (3, 0) +/* *INDENT-ON* */ + static void gst_x264_enc_log_callback (gpointer private, gint level, const char *format, va_list args) @@ -1235,6 +1239,7 @@ gst_x264_enc_log_callback (gpointer private, gint level, const char *format, #ifndef GST_DISABLE_GST_DEBUG GstDebugLevel gst_level; GObject *object = (GObject *) private; + gchar *formatted; switch (level) { case X264_LOG_NONE: @@ -1258,8 +1263,15 @@ gst_x264_enc_log_callback (gpointer private, gint level, const char *format, if (G_LIKELY (gst_level > _gst_debug_min)) return; - gst_debug_log_valist (GST_CAT_DEFAULT, gst_level, __FILE__, GST_FUNCTION, - __LINE__, object, format, args); + if (G_LIKELY (gst_level > gst_debug_category_get_threshold (GST_CAT_DEFAULT))) + return; + + formatted = g_strdup_vprintf (format, args); + g_strchomp (formatted); + + GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, gst_level, object, "%s", formatted); + + g_free (formatted); #endif /* GST_DISABLE_GST_DEBUG */ }