summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2012-02-03 11:38:15 +0100
committerTim-Philipp Müller <tim@centricular.net>2012-09-11 01:54:44 +0100
commit30b45304e472d696235e997f240b2430b28a0d98 (patch)
treee3964ad3931c0237188522b8adff83114b17c0f1
parent66fb9166a47e6c130bc78cb1579a02369d16ba6b (diff)
gdppay: fixup for changed caps
Try to send the streamheader after the first buffer.
-rw-r--r--gst/gdp/gstgdppay.c32
1 files changed, 4 insertions, 28 deletions
diff --git a/gst/gdp/gstgdppay.c b/gst/gdp/gstgdppay.c
index e587759a0..6bcb3be9c 100644
--- a/gst/gdp/gstgdppay.c
+++ b/gst/gdp/gstgdppay.c
@@ -546,6 +546,8 @@ gst_gdp_queue_buffer (GstGDPPay * this, GstBuffer * buffer)
"queued buffer %p, now %d buffers queued",
buffer, g_list_length (this->queue));
+ gst_gdp_pay_reset_streamheader (this);
+
return GST_FLOW_OK;
}
@@ -587,34 +589,10 @@ gst_gdp_pay_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
this->new_segment_buf = outbuffer;
}
}
-#if 0
/* make sure we've received caps before */
- caps = gst_buffer_get_caps (buffer);
- if (!this->caps && !caps)
+ if (!this->caps)
goto no_caps;
- /* if the caps have changed, process caps first */
- if (caps && !gst_caps_is_equal (this->caps, caps)) {
- GST_LOG_OBJECT (this, "caps changed to %p, %" GST_PTR_FORMAT, caps, caps);
- gst_caps_replace (&(this->caps), caps);
- outbuffer = gst_gdp_buffer_from_caps (this, caps);
- if (!outbuffer)
- goto no_caps_buffer;
-
- GST_BUFFER_TIMESTAMP (outbuffer) = GST_BUFFER_TIMESTAMP (buffer);
- GST_BUFFER_DURATION (outbuffer) = 0;
- GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_HEADER);
-
- if (this->caps_buf)
- gst_buffer_unref (this->caps_buf);
- this->caps_buf = outbuffer;
- gst_gdp_pay_reset_streamheader (this);
- }
-
- if (caps)
- gst_caps_unref (caps);
-#endif
-
/* create a GDP header packet,
* then create a GST buffer of the header packet and the buffer contents */
outbuffer = gst_gdp_pay_buffer_from_buffer (this, buffer);
@@ -642,18 +620,16 @@ done:
return ret;
/* ERRORS */
-#if 0
no_caps:
{
/* when returning a fatal error as a GstFlowReturn we must post an error
* message */
GST_ELEMENT_ERROR (this, STREAM, FORMAT, (NULL),
("first received buffer does not have caps set"));
- if (caps)
- gst_caps_unref (caps);
ret = GST_FLOW_NOT_NEGOTIATED;
goto done;
}
+#if 0
no_caps_buffer:
{
GST_ELEMENT_ERROR (this, STREAM, ENCODE, (NULL),