mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
gst/base/gstbasetransform.c: Handle PAUSED->READY->PAUSED transition after negotiation occurred already.
Original commit message from CVS: 2005-08-01 Jan Schmidt <thaytan@mad.scientist.com> * gst/base/gstbasetransform.c: (gst_base_transform_init), (gst_base_transform_handle_buffer), (gst_base_transform_change_state): Handle PAUSED->READY->PAUSED transition after negotiation occurred already. * gst/gstmessage.c: (gst_message_init): Extra piece of debug for new messages.
This commit is contained in:
parent
990ddc3b22
commit
4572dcaa86
4 changed files with 24 additions and 4 deletions
|
@ -1,3 +1,12 @@
|
|||
2005-08-01 Jan Schmidt <thaytan@mad.scientist.com>
|
||||
* gst/base/gstbasetransform.c: (gst_base_transform_init),
|
||||
(gst_base_transform_handle_buffer),
|
||||
(gst_base_transform_change_state):
|
||||
Handle PAUSED->READY->PAUSED transition after negotiation
|
||||
occurred already.
|
||||
* gst/gstmessage.c: (gst_message_init):
|
||||
Extra piece of debug for new messages.
|
||||
|
||||
2005-08-01 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* configure.ac:
|
||||
|
|
|
@ -180,6 +180,7 @@ gst_base_transform_init (GstBaseTransform * trans, gpointer g_class)
|
|||
gst_element_add_pad (GST_ELEMENT (trans), trans->srcpad);
|
||||
|
||||
trans->passthrough = FALSE;
|
||||
trans->out_size = -1;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
|
@ -581,7 +582,7 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
|
|||
else
|
||||
ret = GST_FLOW_NOT_SUPPORTED;
|
||||
|
||||
if (ret)
|
||||
if (ret != GST_FLOW_OK)
|
||||
ret =
|
||||
gst_base_transform_configure_caps (trans,
|
||||
GST_PAD_CAPS (trans->sinkpad), GST_PAD_CAPS (trans->srcpad));
|
||||
|
@ -734,7 +735,11 @@ gst_base_transform_change_state (GstElement * element)
|
|||
break;
|
||||
case GST_STATE_READY_TO_PAUSED:
|
||||
GST_LOCK (trans);
|
||||
trans->in_place = trans->passthrough;
|
||||
if (GST_PAD_CAPS (trans->sinkpad) && GST_PAD_CAPS (trans->srcpad))
|
||||
trans->in_place = gst_caps_is_equal (GST_PAD_CAPS (trans->sinkpad),
|
||||
GST_PAD_CAPS (trans->srcpad)) || trans->passthrough;
|
||||
else
|
||||
trans->in_place = trans->passthrough;
|
||||
trans->out_size = -1;
|
||||
GST_UNLOCK (trans);
|
||||
break;
|
||||
|
|
|
@ -94,6 +94,7 @@ gst_message_init (GTypeInstance * instance, gpointer g_class)
|
|||
{
|
||||
GstMessage *message = GST_MESSAGE (instance);
|
||||
|
||||
GST_CAT_INFO (GST_CAT_MESSAGE, "new message %p", message);
|
||||
GST_MESSAGE_TIMESTAMP (message) = GST_CLOCK_TIME_NONE;
|
||||
}
|
||||
|
||||
|
|
|
@ -180,6 +180,7 @@ gst_base_transform_init (GstBaseTransform * trans, gpointer g_class)
|
|||
gst_element_add_pad (GST_ELEMENT (trans), trans->srcpad);
|
||||
|
||||
trans->passthrough = FALSE;
|
||||
trans->out_size = -1;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
|
@ -581,7 +582,7 @@ gst_base_transform_handle_buffer (GstBaseTransform * trans, GstBuffer * inbuf,
|
|||
else
|
||||
ret = GST_FLOW_NOT_SUPPORTED;
|
||||
|
||||
if (ret)
|
||||
if (ret != GST_FLOW_OK)
|
||||
ret =
|
||||
gst_base_transform_configure_caps (trans,
|
||||
GST_PAD_CAPS (trans->sinkpad), GST_PAD_CAPS (trans->srcpad));
|
||||
|
@ -734,7 +735,11 @@ gst_base_transform_change_state (GstElement * element)
|
|||
break;
|
||||
case GST_STATE_READY_TO_PAUSED:
|
||||
GST_LOCK (trans);
|
||||
trans->in_place = trans->passthrough;
|
||||
if (GST_PAD_CAPS (trans->sinkpad) && GST_PAD_CAPS (trans->srcpad))
|
||||
trans->in_place = gst_caps_is_equal (GST_PAD_CAPS (trans->sinkpad),
|
||||
GST_PAD_CAPS (trans->srcpad)) || trans->passthrough;
|
||||
else
|
||||
trans->in_place = trans->passthrough;
|
||||
trans->out_size = -1;
|
||||
GST_UNLOCK (trans);
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue