diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2021-09-21 15:05:58 +0200 |
---|---|---|
committer | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2021-09-21 17:50:26 +0200 |
commit | e4a9db6abed31db7211253d5d0a0ceee97c908b9 (patch) | |
tree | 0f22766c194f5c63d04315cc37a4f259fff09bef | |
parent | de87e0d381a058ad5c71eefa42a9a04c168e2186 (diff) |
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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/85>
-rw-r--r-- | ext/x264/gstx264enc.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c index d0e24796..2604506f 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 */ } |