diff --git a/gst/gdp/gstgdppay.c b/gst/gdp/gstgdppay.c index 9f3e0d6313..554950d0ea 100644 --- a/gst/gdp/gstgdppay.c +++ b/gst/gdp/gstgdppay.c @@ -599,6 +599,15 @@ gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer) if (!outbuffer) goto no_buffer; + /* If the incoming buffer is IN_CAPS, that means we have it on the caps + * as streamheader, and we have serialized a GDP version of it and put it + * on our caps */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_IN_CAPS)) { + GST_DEBUG_OBJECT (this, "Setting IN_CAPS flag on outgoing buffer %p", + outbuffer); + GST_BUFFER_FLAG_SET (outbuffer, GST_BUFFER_FLAG_IN_CAPS); + } + gst_gdp_stamp_buffer (this, outbuffer); GST_BUFFER_TIMESTAMP (outbuffer) = GST_BUFFER_TIMESTAMP (buffer); GST_BUFFER_DURATION (outbuffer) = GST_BUFFER_DURATION (buffer); diff --git a/tests/check/pipelines/streamheader.c b/tests/check/pipelines/streamheader.c index c38ea585c5..ea9d9ee7ee 100644 --- a/tests/check/pipelines/streamheader.c +++ b/tests/check/pipelines/streamheader.c @@ -195,8 +195,7 @@ GST_START_TEST (test_multifdsink_gdp_vorbisenc) g_main_loop_run (loop); - //FIXME: here's the bug - //assert_equals_int (n_in_caps, 3); + assert_equals_int (n_in_caps, 3); } GST_END_TEST;