summaryrefslogtreecommitdiffstats
path: root/gst/rtp/gstrtpmpvdepay.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtp/gstrtpmpvdepay.c')
-rw-r--r--gst/rtp/gstrtpmpvdepay.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c
index 2f828295..08d92a5d 100644
--- a/gst/rtp/gstrtpmpvdepay.c
+++ b/gst/rtp/gstrtpmpvdepay.c
@@ -158,13 +158,13 @@ gst_rtp_mpv_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
goto bad_packet;
{
- gint payload_len;
+ gint payload_len, payload_header;
guint8 *payload;
guint8 T;
- guint32 timestamp;
payload_len = gst_rtp_buffer_get_payload_len (buf);
payload = gst_rtp_buffer_get_payload (buf);
+ payload_header = 0;
if (payload_len <= 4)
goto empty_packet;
@@ -181,6 +181,7 @@ gst_rtp_mpv_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
T = (payload[0] & 0x04);
payload_len -= 4;
+ payload_header += 4;
payload += 4;
if (T) {
@@ -197,13 +198,11 @@ gst_rtp_mpv_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
goto empty_packet;
payload_len -= 4;
+ payload_header += 4;
payload += 4;
}
- timestamp = gst_rtp_buffer_get_timestamp (buf);
-
- outbuf = gst_buffer_new_and_alloc (payload_len);
- memcpy (GST_BUFFER_DATA (outbuf), payload, payload_len);
+ outbuf = gst_rtp_buffer_get_payload_subbuffer (buf, payload_header, -1);
GST_DEBUG_OBJECT (rtpmpvdepay,
"gst_rtp_mpv_depay_chain: pushing buffer of size %d",