mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
assrender: Don't let libass print stuff on stderr but proxy the messages to the GStreamer debugging system
This commit is contained in:
parent
830b21caf2
commit
dc42da1bd4
1 changed files with 24 additions and 0 deletions
|
@ -26,6 +26,7 @@
|
|||
#include <gst/video/video.h>
|
||||
|
||||
GST_DEBUG_CATEGORY_STATIC (gst_assrender_debug);
|
||||
GST_DEBUG_CATEGORY_STATIC (gst_assrender_lib_debug);
|
||||
#define GST_CAT_DEFAULT gst_assrender_debug
|
||||
|
||||
/* Filter signals and props */
|
||||
|
@ -130,6 +131,26 @@ gst_assrender_class_init (GstassrenderClass * klass)
|
|||
GST_DEBUG_FUNCPTR (gst_assrender_change_state);
|
||||
}
|
||||
|
||||
static void
|
||||
_libass_message_cb (int level, const char *fmt, va_list args, void *data)
|
||||
{
|
||||
Gstassrender *render = GST_ASSRENDER (data);
|
||||
gchar *message = g_strdup_vprintf (fmt, args);
|
||||
|
||||
if (level < 2)
|
||||
GST_CAT_ERROR_OBJECT (gst_assrender_lib_debug, render, message);
|
||||
else if (level < 4)
|
||||
GST_CAT_WARNING_OBJECT (gst_assrender_lib_debug, render, message);
|
||||
else if (level < 5)
|
||||
GST_CAT_INFO_OBJECT (gst_assrender_lib_debug, render, message);
|
||||
else if (level < 6)
|
||||
GST_CAT_DEBUG_OBJECT (gst_assrender_lib_debug, render, message);
|
||||
else
|
||||
GST_CAT_LOG_OBJECT (gst_assrender_lib_debug, render, message);
|
||||
|
||||
g_free (message);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_assrender_init (Gstassrender * render, GstassrenderClass * gclass)
|
||||
{
|
||||
|
@ -178,6 +199,7 @@ gst_assrender_init (Gstassrender * render, GstassrenderClass * gclass)
|
|||
gst_segment_init (&render->subtitle_segment, GST_FORMAT_TIME);
|
||||
|
||||
render->ass_library = ass_library_init ();
|
||||
ass_set_message_cb (render->ass_library, _libass_message_cb, render);
|
||||
ass_set_fonts_dir (render->ass_library, "./");
|
||||
ass_set_extract_fonts (render->ass_library, 0);
|
||||
|
||||
|
@ -944,6 +966,8 @@ plugin_init (GstPlugin * plugin)
|
|||
{
|
||||
GST_DEBUG_CATEGORY_INIT (gst_assrender_debug, "assrender",
|
||||
0, "ASS/SSA subtitle renderer");
|
||||
GST_DEBUG_CATEGORY_INIT (gst_assrender_lib_debug, "assrender_library",
|
||||
0, "ASS/SSA subtitle renderer library");
|
||||
|
||||
return gst_element_register (plugin, "assrender",
|
||||
GST_RANK_PRIMARY, GST_TYPE_ASSRENDER);
|
||||
|
|
Loading…
Reference in a new issue