From 4b6164339f43a4b37e5d358338c99383e53eabaa Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 27 Feb 2020 17:03:42 +0530 Subject: [PATCH] transcodebin: logs when inserting, or not, a filter It's not easy atm to figure out from the logs if a filter has actually be inserted or not. --- gst/transcode/gsttranscodebin.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/gst/transcode/gsttranscodebin.c b/gst/transcode/gsttranscodebin.c index 972fd2febe..1d8b507452 100644 --- a/gst/transcode/gsttranscodebin.c +++ b/gst/transcode/gsttranscodebin.c @@ -106,15 +106,24 @@ _insert_filter (GstTranscodeBin * self, GstPad * sinkpad, GstPad * pad, GstPad *filter_src = NULL, *filter_sink = NULL; GstElement *filter = NULL; GstObject *filter_parent; + const gchar *media_type; - if (self->video_filter && - !g_strcmp0 (gst_structure_get_name (gst_caps_get_structure (caps, 0)), - "video/x-raw")) { - filter = self->video_filter; - } else if (self->audio_filter && - !g_strcmp0 (gst_structure_get_name (gst_caps_get_structure (caps, 0)), - "audio/x-raw")) { - filter = self->audio_filter; + media_type = gst_structure_get_name (gst_caps_get_structure (caps, 0)); + + if (self->video_filter && g_str_has_prefix (media_type, "video")) { + if (!g_strcmp0 (media_type, "video/x-raw")) + filter = self->video_filter; + else + GST_ERROR_OBJECT (pad, "decodebin pad does not produce raw data (%" + GST_PTR_FORMAT "), cannot add video filter '%s'", caps, + GST_ELEMENT_NAME (self->video_filter)); + } else if (self->audio_filter && g_str_has_prefix (media_type, "audio")) { + if (!g_strcmp0 (media_type, "audio/x-raw")) + filter = self->audio_filter; + else + GST_ERROR_OBJECT (pad, "decodebin pad does not produce raw data (%" + GST_PTR_FORMAT "), cannot add audio filter '%s'", caps, + GST_ELEMENT_NAME (self->audio_filter)); } if (!filter) @@ -152,6 +161,10 @@ _insert_filter (GstTranscodeBin * self, GstPad * sinkpad, GstPad * pad, gst_element_sync_state_with_parent (filter); + GST_DEBUG_OBJECT (self, "added %s filter '%s'", + filter == self->video_filter ? "video" : "audio", + GST_ELEMENT_NAME (filter)); + return filter_src; }