+2007-04-12 Wim Taymans <wim@fluendo.com>
+
+ * gst/gdp/gstgdppay.c: (gst_gdp_pay_chain),
+ (gst_gdp_pay_sink_event):
+ Make sure we set the IN_CAPS flag correctly.
+
+ * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_render):
+ Get the IN_CAPS flag before we call functions that mess with the flags.
+
2007-04-10 Thomas Vander Stichele <thomas at apestaart dot org>
* gst/gdp/gstgdppay.c (gst_gdp_pay_reset_streamheader,
} else {
GST_BUFFER_TIMESTAMP (outbuffer) = GST_BUFFER_TIMESTAMP (buffer);
GST_BUFFER_DURATION (outbuffer) = 0;
+ GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS);
GST_DEBUG_OBJECT (this, "Storing buffer %p as new_segment_buf",
outbuffer);
this->new_segment_buf = outbuffer;
* and not send it on */
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_NEWSEGMENT:
- GST_DEBUG_OBJECT (this, "Storing buffer %p as new_segment_buf",
+ GST_DEBUG_OBJECT (this, "Storing in caps buffer %p as new_segment_buf",
outbuffer);
if (this->new_segment_buf)
gst_buffer_unref (this->new_segment_buf);
this->new_segment_buf = outbuffer;
+ GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS);
gst_gdp_pay_reset_streamheader (this);
break;
case GST_EVENT_TAG:
- GST_DEBUG_OBJECT (this, "Storing buffer %p as tag_buf", outbuffer);
+ GST_DEBUG_OBJECT (this, "Storing in caps buffer %p as tag_buf",
+ outbuffer);
if (this->tag_buf)
gst_buffer_unref (this->tag_buf);
this->tag_buf = outbuffer;
+ GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS);
gst_gdp_pay_reset_streamheader (this);
break;
default:
if (!padcaps && !bufcaps)
goto no_caps;
+ /* get IN_CAPS first, code below might mess with the flags */
+ in_caps = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
+
/* stamp the buffer with previous caps if no caps set */
if (!bufcaps) {
if (!gst_buffer_is_metadata_writable (buf)) {
gst_buffer_ref (buf);
}
- in_caps = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
-
GST_LOG_OBJECT (sink, "received buffer %p, in_caps: %d", buf, in_caps);
/* if we get IN_CAPS buffers, but the previous buffer was not IN_CAPS,