summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/rtpsession.c
diff options
context:
space:
mode:
authorOlivier Crete <tester@tester.ca>2008-08-05 09:42:53 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-08-05 09:42:53 +0000
commit971ec2d278fe51f1239f2d730c48e9a1beb1fa15 (patch)
treeaed2bf3277b4884c3c301b24703c72165d8b71af /gst/rtpmanager/rtpsession.c
parente0f52ef74db25bf2f7593ff5c34c7d85fe05a39e (diff)
downloadgst-plugins-bad-971ec2d278fe51f1239f2d730c48e9a1beb1fa15.tar.gz
gst-plugins-bad-971ec2d278fe51f1239f2d730c48e9a1beb1fa15.tar.bz2
gst-plugins-bad-971ec2d278fe51f1239f2d730c48e9a1beb1fa15.zip
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 <tester at tester dot ca> * 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.
Diffstat (limited to 'gst/rtpmanager/rtpsession.c')
-rw-r--r--gst/rtpmanager/rtpsession.c6
1 files changed, 6 insertions, 0 deletions
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) {