From 383f58b0ed15c5fd14d2a760719295256f6ba545 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 21 Mar 2013 15:37:31 +0100 Subject: [PATCH] subtitleoverlay: Return ANY caps for the GET_CAPS query subtitleoverlay handles any caps, not just the ones for which a subtitle parser/renderer exist. It will just ignore any unsupported streams instead of causing an error. https://bugzilla.gnome.org/show_bug.cgi?id=688476 --- gst/playback/gstsubtitleoverlay.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c index 639cfc3..70af107 100644 --- a/gst/playback/gstsubtitleoverlay.c +++ b/gst/playback/gstsubtitleoverlay.c @@ -1936,23 +1936,12 @@ gst_subtitle_overlay_subtitle_sink_chain (GstPad * pad, GstObject * parent, static GstCaps * gst_subtitle_overlay_subtitle_sink_getcaps (GstPad * pad, GstCaps * filter) { - GstSubtitleOverlay *self = GST_SUBTITLE_OVERLAY (gst_pad_get_parent (pad)); GstCaps *ret; - g_mutex_lock (&self->factories_lock); - if (G_UNLIKELY (!gst_subtitle_overlay_update_factory_list (self))) - ret = gst_caps_new_empty (); - else if (filter) - ret = - gst_caps_intersect_full (filter, self->factory_caps, - GST_CAPS_INTERSECT_FIRST); + if (filter) + ret = gst_caps_ref (filter); else - ret = gst_caps_ref (self->factory_caps); - g_mutex_unlock (&self->factories_lock); - - GST_DEBUG_OBJECT (pad, "Returning subtitle caps %" GST_PTR_FORMAT, ret); - - gst_object_unref (self); + ret = gst_caps_new_any (); return ret; } @@ -2189,13 +2178,7 @@ gst_subtitle_overlay_subtitle_sink_query (GstPad * pad, GstObject * parent, switch (GST_QUERY_TYPE (query)) { case GST_QUERY_ACCEPT_CAPS: { - GstCaps *caps, *othercaps; - - gst_query_parse_accept_caps (query, &caps); - othercaps = gst_subtitle_overlay_subtitle_sink_getcaps (pad, NULL); - ret = gst_caps_is_subset (caps, othercaps); - gst_caps_unref (othercaps); - gst_query_set_accept_caps_result (query, ret); + gst_query_set_accept_caps_result (query, TRUE); ret = TRUE; break; } -- 2.7.4