/* Stop filtering errors. */
remove_error_filter (dbin, element);
+ /* check if we still accept the caps on the pad after setting
+ * the element to READY */
+ if (!gst_pad_query_accept_caps (sinkpad, caps)) {
+ GST_WARNING_OBJECT (dbin, "Element %s does not accept caps",
+ GST_ELEMENT_NAME (element));
+ gst_object_unref (sinkpad);
+ gst_bin_remove (GST_BIN (dbin), element);
+ continue;
+ }
+
gst_object_unref (sinkpad);
GST_LOG_OBJECT (dbin, "linked on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
if (G_UNLIKELY (chain->drained)) {
goto beach;
}
-
+
if (chain->endpad) {
/* Check if we're reached the target endchain */
if (chain == drainpad->chain) {
} else {
GST_DEBUG ("Group %p was the last in chain %p", chain->active_group,
chain);
- chain->drained = TRUE;
+ chain->drained = TRUE;
/* We're drained ! */
}
}