mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
basetransform: Implement support for pad reconfiguration again
This commit is contained in:
parent
07c5caac50
commit
ef673656b7
1 changed files with 23 additions and 23 deletions
|
@ -1757,39 +1757,39 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
|
||||||
gboolean want_in_place;
|
gboolean want_in_place;
|
||||||
GstClockTime running_time;
|
GstClockTime running_time;
|
||||||
GstClockTime timestamp;
|
GstClockTime timestamp;
|
||||||
#if 0
|
|
||||||
GstCaps *incaps;
|
|
||||||
#endif
|
|
||||||
gsize insize;
|
gsize insize;
|
||||||
|
gboolean reconfigure;
|
||||||
|
|
||||||
bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
|
bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (G_LIKELY ((incaps = GST_BUFFER_CAPS (inbuf)))) {
|
|
||||||
gboolean reconfigure;
|
|
||||||
|
|
||||||
GST_OBJECT_LOCK (trans->sinkpad);
|
GST_OBJECT_LOCK (trans->sinkpad);
|
||||||
reconfigure = GST_PAD_NEEDS_RECONFIGURE (trans->sinkpad)
|
reconfigure = GST_PAD_NEEDS_RECONFIGURE (trans->srcpad)
|
||||||
|| trans->priv->reconfigure;
|
|| trans->priv->reconfigure;
|
||||||
GST_OBJECT_FLAG_UNSET (trans->sinkpad, GST_PAD_NEED_RECONFIGURE);
|
GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_NEED_RECONFIGURE);
|
||||||
trans->priv->reconfigure = FALSE;
|
trans->priv->reconfigure = FALSE;
|
||||||
GST_OBJECT_UNLOCK (trans->sinkpad);
|
GST_OBJECT_UNLOCK (trans->sinkpad);
|
||||||
|
|
||||||
if (G_UNLIKELY (reconfigure)) {
|
if (G_UNLIKELY (reconfigure)) {
|
||||||
GST_DEBUG_OBJECT (trans, "we had a pending reconfigure");
|
GstCaps *incaps;
|
||||||
|
|
||||||
GST_OBJECT_LOCK (trans);
|
GST_DEBUG_OBJECT (trans, "we had a pending reconfigure");
|
||||||
gst_caps_replace (&trans->priv->sink_alloc, NULL);
|
|
||||||
GST_OBJECT_UNLOCK (trans);
|
|
||||||
|
|
||||||
/* if we need to reconfigure we pretend a buffer with new caps arrived. This
|
GST_OBJECT_LOCK (trans);
|
||||||
* will reconfigure the transform with the new output format. We can only
|
gst_caps_replace (&trans->priv->sink_alloc, NULL);
|
||||||
* do this if the buffer actually has caps. */
|
GST_OBJECT_UNLOCK (trans);
|
||||||
if (!gst_base_transform_setcaps (trans, trans->sinkpad, incaps, TRUE))
|
|
||||||
goto not_negotiated;
|
incaps = gst_pad_get_current_caps (trans->sinkpad);
|
||||||
|
|
||||||
|
/* if we need to reconfigure we pretend a buffer with new caps arrived. This
|
||||||
|
* will reconfigure the transform with the new output format. We can only
|
||||||
|
* do this if the buffer actually has caps. */
|
||||||
|
if (!gst_base_transform_setcaps (trans, trans->sinkpad, incaps, TRUE)) {
|
||||||
|
gst_caps_unref (incaps);
|
||||||
|
goto not_negotiated;
|
||||||
}
|
}
|
||||||
|
gst_caps_unref (incaps);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
insize = gst_buffer_get_size (inbuf);
|
insize = gst_buffer_get_size (inbuf);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue