tagdemux: fix erroring out if we reach EOS without detecting type
authorTim-Philipp Müller <tim@centricular.com>
Thu, 30 Jun 2016 16:30:34 +0000 (17:30 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 30 Jun 2016 17:53:02 +0000 (18:53 +0100)
In 0.10 the source pad was a dynamic pad that was only added once
the type had been detected, but in 1.x it's an always source pad,
so checking whether it's still NULL won't work to detect if the
type has been detected.

Makes tagdemux error out when we get EOS but haven't managed to
identify the format of the data after the tag.

https://bugzilla.gnome.org//show_bug.cgi?id=768178

gst-libs/gst/tag/gsttagdemux.c

index e7fbe81..d8296bb 100644 (file)
@@ -764,8 +764,7 @@ gst_tag_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_EOS:
-      /* FIXME, detect this differently */
-      if (demux->priv->srcpad == NULL) {
+      if (!gst_pad_has_current_caps (demux->priv->srcpad)) {
         GST_WARNING_OBJECT (demux, "EOS before we found a type");
         GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
       }