diff options
author | Kevin Thornberry <gimmeamilkbttf@gmail.com> | 2013-03-07 22:19:15 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2013-07-05 10:02:49 +0100 |
commit | faa47372336ace2d777a4e870d4767bc5aa3af99 (patch) | |
tree | 280ae4e6d29c2adf6bc053c58cec081c27037e19 | |
parent | 676b9f8848dfec142a714d8f3d539f74656f9304 (diff) | |
download | gstreamer-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.c | 7 |
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 */ |