mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
gst/gdp/gstgdppay.c: Make sure we set the IN_CAPS flag correctly.
Original commit message from CVS: * 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.
This commit is contained in:
parent
bf82440579
commit
3e455f8a5b
3 changed files with 18 additions and 4 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
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>
|
2007-04-10 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* gst/gdp/gstgdppay.c (gst_gdp_pay_reset_streamheader,
|
* gst/gdp/gstgdppay.c (gst_gdp_pay_reset_streamheader,
|
||||||
|
|
|
@ -563,6 +563,7 @@ gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer)
|
||||||
} else {
|
} else {
|
||||||
GST_BUFFER_TIMESTAMP (outbuffer) = GST_BUFFER_TIMESTAMP (buffer);
|
GST_BUFFER_TIMESTAMP (outbuffer) = GST_BUFFER_TIMESTAMP (buffer);
|
||||||
GST_BUFFER_DURATION (outbuffer) = 0;
|
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",
|
GST_DEBUG_OBJECT (this, "Storing buffer %p as new_segment_buf",
|
||||||
outbuffer);
|
outbuffer);
|
||||||
this->new_segment_buf = outbuffer;
|
this->new_segment_buf = outbuffer;
|
||||||
|
@ -661,22 +662,25 @@ gst_gdp_pay_sink_event (GstPad * pad, GstEvent * event)
|
||||||
* and not send it on */
|
* and not send it on */
|
||||||
switch (GST_EVENT_TYPE (event)) {
|
switch (GST_EVENT_TYPE (event)) {
|
||||||
case GST_EVENT_NEWSEGMENT:
|
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);
|
outbuffer);
|
||||||
|
|
||||||
if (this->new_segment_buf)
|
if (this->new_segment_buf)
|
||||||
gst_buffer_unref (this->new_segment_buf);
|
gst_buffer_unref (this->new_segment_buf);
|
||||||
this->new_segment_buf = outbuffer;
|
this->new_segment_buf = outbuffer;
|
||||||
|
|
||||||
|
GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS);
|
||||||
gst_gdp_pay_reset_streamheader (this);
|
gst_gdp_pay_reset_streamheader (this);
|
||||||
break;
|
break;
|
||||||
case GST_EVENT_TAG:
|
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)
|
if (this->tag_buf)
|
||||||
gst_buffer_unref (this->tag_buf);
|
gst_buffer_unref (this->tag_buf);
|
||||||
this->tag_buf = outbuffer;
|
this->tag_buf = outbuffer;
|
||||||
|
|
||||||
|
GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS);
|
||||||
gst_gdp_pay_reset_streamheader (this);
|
gst_gdp_pay_reset_streamheader (this);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -2374,6 +2374,9 @@ gst_multi_fd_sink_render (GstBaseSink * bsink, GstBuffer * buf)
|
||||||
if (!padcaps && !bufcaps)
|
if (!padcaps && !bufcaps)
|
||||||
goto no_caps;
|
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 */
|
/* stamp the buffer with previous caps if no caps set */
|
||||||
if (!bufcaps) {
|
if (!bufcaps) {
|
||||||
if (!gst_buffer_is_metadata_writable (buf)) {
|
if (!gst_buffer_is_metadata_writable (buf)) {
|
||||||
|
@ -2398,8 +2401,6 @@ gst_multi_fd_sink_render (GstBaseSink * bsink, GstBuffer * buf)
|
||||||
gst_buffer_ref (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);
|
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,
|
/* if we get IN_CAPS buffers, but the previous buffer was not IN_CAPS,
|
||||||
|
|
Loading…
Reference in a new issue