summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Thornberry <gimmeamilkbttf@gmail.com>2013-03-07 22:19:15 +0000
committerOlivier CrĂȘte <olivier.crete@collabora.com>2013-06-10 16:06:48 -0400
commit2086e96db54701451458c49372b17119a4211f1f (patch)
tree088bf13dc637de700e9810168f2e120bf30bd559
parent0453d798e5e24f5b71d1447700cce8e8bd2c6097 (diff)
downloadgstreamer-plugins-bad-2086e96db54701451458c49372b17119a4211f1f.tar.gz
mpegtsmux: fix creation of ADTS header for AAC audio in MPEG-TS
https://bugzilla.gnome.org/show_bug.cgi?id=695412
-rw-r--r--gst/mpegtsmux/mpegtsmux_aac.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gst/mpegtsmux/mpegtsmux_aac.c b/gst/mpegtsmux/mpegtsmux_aac.c
index c4336641d..ec60ce8f7 100644
--- a/gst/mpegtsmux/mpegtsmux_aac.c
+++ b/gst/mpegtsmux/mpegtsmux_aac.c
@@ -103,9 +103,8 @@ mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux)
gst_buffer_copy_metadata (out_buf, buf, GST_BUFFER_COPY_ALL);
/* Generate ADTS header */
- obj_type = (GST_READ_UINT8 (GST_BUFFER_DATA (data->codec_data)) & 0xC) >> 2;
- obj_type++;
- rate_idx = (GST_READ_UINT8 (GST_BUFFER_DATA (data->codec_data)) & 0x3) << 1;
+ obj_type = GST_READ_UINT8 (GST_BUFFER_DATA (data->codec_data)) >> 3;
+ rate_idx = (GST_READ_UINT8 (GST_BUFFER_DATA (data->codec_data)) & 0x7) << 1;
rate_idx |=
(GST_READ_UINT8 (GST_BUFFER_DATA (data->codec_data) + 1) & 0x80) >> 7;
channels =
@@ -118,7 +117,7 @@ mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux)
* (ID, layer, protection)*/
adts_header[1] = 0xF1;
/* Object type over first 2 bits */
- adts_header[2] = obj_type << 6;
+ adts_header[2] = (obj_type - 1) << 6;
/* rate index over next 4 bits */
adts_header[2] |= (rate_idx << 2);
/* channels over last 2 bits */