rtpmp4gdepay: consider (optional) auxiliary data when parsing

This commit is contained in:
Mark Nauwelaerts 2009-08-27 15:46:52 +02:00
parent 30efa405f3
commit c9a434bbff

View file

@ -477,6 +477,23 @@ gst_rtp_mp4g_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
payload_AU = 2 + AU_headers_bytes; payload_AU = 2 + AU_headers_bytes;
payload_AU_size = payload_len - AU_headers_bytes; payload_AU_size = payload_len - AU_headers_bytes;
if (G_UNLIKELY (rtpmp4gdepay->auxiliarydatasizelength)) {
gint aux_size;
/* point the bitstream parser to the first auxiliary data bit */
gst_bs_parse_init (&bs, payload + AU_headers_bytes,
payload_len - AU_headers_bytes);
aux_size =
gst_bs_parse_read (&bs, rtpmp4gdepay->auxiliarydatasizelength);
/* convert to bytes */
aux_size = (aux_size + 7) / 8;
/* AU data then follows auxiliary data */
if (payload_AU_size < aux_size)
goto short_payload;
payload_AU += aux_size;
payload_AU_size -= aux_size;
}
/* point the bitstream parser to the first AU header bit */ /* point the bitstream parser to the first AU header bit */
gst_bs_parse_init (&bs, payload, payload_len); gst_bs_parse_init (&bs, payload, payload_len);
AU_index = AU_index_delta = 0; AU_index = AU_index_delta = 0;