Commit 4572dcaa authored by Jan Schmidt's avatar Jan Schmidt
Browse files

gst/base/gstbasetransform.c: Handle PAUSED->READY->PAUSED transition after...

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.
parent 990ddc3b
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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment