summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Thornberry <gimmeamilkbttf@gmail.com>2013-03-07 22:19:15 +0000
committerTim-Philipp Müller <tim@centricular.net>2013-07-05 10:02:49 +0100
commitfaa47372336ace2d777a4e870d4767bc5aa3af99 (patch)
tree280ae4e6d29c2adf6bc053c58cec081c27037e19
parent676b9f8848dfec142a714d8f3d539f74656f9304 (diff)
downloadgstreamer-plugins-bad-faa47372336ace2d777a4e870d4767bc5aa3af99.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 5191cca6f..43c09b844 100644
--- a/gst/mpegtsmux/mpegtsmux_aac.c
+++ b/gst/mpegtsmux/mpegtsmux_aac.c
@@ -108,9 +108,8 @@ mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux)
gst_buffer_map (data->codec_data, &codec_data_map, GST_MAP_READ);
/* Generate ADTS header */
- obj_type = (GST_READ_UINT8 (codec_data_map.data) & 0xC) >> 2;
- obj_type++;
- rate_idx = (GST_READ_UINT8 (codec_data_map.data) & 0x3) << 1;
+ obj_type = GST_READ_UINT8 (codec_data_map.data) >> 3;
+ rate_idx = (GST_READ_UINT8 (codec_data_map.data) & 0x7) << 1;
rate_idx |= (GST_READ_UINT8 (codec_data_map.data + 1) & 0x80) >> 7;
channels = (GST_READ_UINT8 (codec_data_map.data + 1) & 0x78) >> 3;
GST_DEBUG_OBJECT (mux, "Rate index %u, channels %u, object type %u", rate_idx,
@@ -121,7 +120,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 */