mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-06-29 11:20:43 +00:00
parsebin: Don't try to continue autoplugging a parser if we got raw caps
Otherwise we'll fail with an unhelpful message that no decoder for the raw caps was found if a container contains raw media.
This commit is contained in:
parent
2657fc1fdd
commit
268c5e7e17
|
@ -106,6 +106,7 @@
|
||||||
#include "gstplay-enum.h"
|
#include "gstplay-enum.h"
|
||||||
#include "gstplayback.h"
|
#include "gstplayback.h"
|
||||||
#include "gstplaybackutils.h"
|
#include "gstplaybackutils.h"
|
||||||
|
#include "gstrawcaps.h"
|
||||||
|
|
||||||
/* generic templates */
|
/* generic templates */
|
||||||
static GstStaticPadTemplate parse_bin_sink_template =
|
static GstStaticPadTemplate parse_bin_sink_template =
|
||||||
|
@ -1103,9 +1104,18 @@ static gboolean
|
||||||
gst_parse_bin_autoplug_continue (GstElement * element, GstPad * pad,
|
gst_parse_bin_autoplug_continue (GstElement * element, GstPad * pad,
|
||||||
GstCaps * caps)
|
GstCaps * caps)
|
||||||
{
|
{
|
||||||
|
static GstStaticCaps raw_caps = GST_STATIC_CAPS (DEFAULT_RAW_CAPS);
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (element, "caps %" GST_PTR_FORMAT, caps);
|
||||||
|
|
||||||
|
/* If it matches our target caps, expose it */
|
||||||
|
if (gst_caps_can_intersect (caps, gst_static_caps_get (&raw_caps))) {
|
||||||
|
GST_DEBUG_OBJECT (element, "autoplug-continue returns FALSE");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (element, "autoplug-continue returns TRUE");
|
GST_DEBUG_OBJECT (element, "autoplug-continue returns TRUE");
|
||||||
|
|
||||||
/* by default we always continue */
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue