From d392defbd3c060b7a32cd9720635e919586fefce Mon Sep 17 00:00:00 2001 From: Olivier Crete Date: Tue, 5 Aug 2008 09:42:53 +0000 Subject: gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable before inserting it in the jitterbuffer becaus... Original commit message from CVS: Based on patch by: Olivier Crete * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Make the buffer metadata writable before inserting it in the jitterbuffer because the jitterbuffer will modify the timestamps. * gst/rtpmanager/rtpjitterbuffer.c: Update method comment about requiring writable metadata on buffers. * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr), (rtp_session_process_rtcp): Make the RTCP buffer metadata writable because we want to modify the metadata. Fixes #546312. --- gst/rtpmanager/rtpsession.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gst/rtpmanager/rtpsession.c') diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 59b1d8d0..19982478 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -1437,6 +1437,9 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet, if (!source) return; + /* we somehow need to transfer the clock_base and the base time to the next + * element, we use the offset and offset_end fields in the buffer for this + * hack */ GST_BUFFER_OFFSET (packet->buffer) = source->clock_base; GST_BUFFER_OFFSET_END (packet->buffer) = source->clock_base_time; @@ -1669,6 +1672,9 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer, if (sess->sent_bye) goto ignore; + /* make writable, we might want to change the buffer */ + buffer = gst_buffer_make_metadata_writable (buffer); + /* start processing the compound packet */ more = gst_rtcp_buffer_get_first_packet (buffer, &packet); while (more) { -- cgit