deinterleave: Reset caps accumulator to ANY when resyncing the adapter, not EMPTY
authorSebastian Dröge <sebastian@centricular.com>
Mon, 14 Nov 2016 15:37:51 +0000 (17:37 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 14 Nov 2016 15:37:51 +0000 (17:37 +0200)
The accumulator is filled by intersecting with all the pad caps, as such
it must be initialized with ANY (like it is before the iteration is
started) and not to EMPTY.

Fixes the CAPS query always returning EMPTY caps when resyncing happened
during the query, e.g. because pads were added/removed.

gst/interleave/deinterleave.c

index b38fcbed6a0f74ff1c8ecf8ba6b912e175248568..48974491a897ed272f306ec1d670f08a19972b1b 100644 (file)
@@ -638,7 +638,7 @@ gst_deinterleave_getcaps (GstPad * pad, GstObject * parent, GstCaps * filter)
         break;
       case GST_ITERATOR_RESYNC:
         gst_caps_unref (ret);
-        ret = gst_caps_new_empty ();
+        ret = gst_caps_new_any ();
         gst_iterator_resync (it);
         break;
     }