From 72c5c70b90c79efcf013e0e414809931815be797 Mon Sep 17 00:00:00 2001 From: Kevin Thornberry Date: Thu, 7 Mar 2013 22:19:15 +0000 Subject: [PATCH] mpegtsmux: fix creation of ADTS header for AAC audio in MPEG-TS https://bugzilla.gnome.org/show_bug.cgi?id=695412 --- gst/mpegtsmux/mpegtsmux_aac.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gst/mpegtsmux/mpegtsmux_aac.c b/gst/mpegtsmux/mpegtsmux_aac.c index 06e57b6c2d..c99a913b73 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 */