From 1031fedaf01097b32ea8945c5476a850e3e8d028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 7 Jan 2012 19:39:42 +0000 Subject: [PATCH] discoverer: make is_subtitle_caps thread-safe --- gst-libs/gst/pbutils/gstdiscoverer.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index 6af71dca4a..581739e9a6 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -438,19 +438,22 @@ _event_probe (GstPad * pad, GstEvent * event, PrivateStream * ps) return TRUE; } +static GstStaticCaps subtitle_caps = GST_STATIC_CAPS ("text/plain; " + "text/x-pango-markup; subpicture/x-pgs; subpicture/x-dvb; " + "application/x-subtitle-unknown; application/x-ssa; application/x-ass; " + "subtitle/x-kate; application/x-kate; video/x-dvd-subpicture"); + static gboolean is_subtitle_caps (const GstCaps * caps) { - static GstCaps *subs_caps = NULL; + GstCaps *subs_caps; + gboolean ret; - if (!subs_caps) { - subs_caps = gst_caps_from_string ("text/plain; text/x-pango-markup; " - "subpicture/x-pgs; subpicture/x-dvb; application/x-subtitle-unknown; " - "application/x-ssa; application/x-ass; subtitle/x-kate; " - "application/x-kate; video/x-dvd-subpicture; "); - } + subs_caps = gst_static_caps_get (&subtitle_caps); + ret = gst_caps_can_intersect (caps, subs_caps); + gst_caps_unref (subs_caps); - return gst_caps_can_intersect (caps, subs_caps); + return ret; } static void