diff options
author | Kevin Thornberry <gimmeamilkbttf@gmail.com> | 2013-03-07 22:19:15 +0000 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2013-06-10 16:06:48 -0400 |
commit | 2086e96db54701451458c49372b17119a4211f1f (patch) | |
tree | 088bf13dc637de700e9810168f2e120bf30bd559 | |
parent | 0453d798e5e24f5b71d1447700cce8e8bd2c6097 (diff) | |
download | gstreamer-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.c | 7 |
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 */ |