aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-02-16 19:55:14 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-02-16 19:55:14 +0000
commit4780a9540061624b749bb128a89a22021b8ea6a6 (patch)
tree91603634629f28b624598bc876084f4f3db37fb0 /src
parent367def9fdb4072a9b9c9492833ee9bd74bd17c48 (diff)
downloadqmmp-4780a9540061624b749bb128a89a22021b8ea6a6.tar.gz
qmmp-4780a9540061624b749bb128a89a22021b8ea6a6.tar.bz2
qmmp-4780a9540061624b749bb128a89a22021b8ea6a6.zip
aac: fixed ADTS parsing (#986)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8715 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Input/aac/aacfile.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/Input/aac/aacfile.cpp b/src/plugins/Input/aac/aacfile.cpp
index a14002f75..8658ac7be 100644
--- a/src/plugins/Input/aac/aacfile.cpp
+++ b/src/plugins/Input/aac/aacfile.cpp
@@ -86,8 +86,10 @@ AACFile::AACFile(QIODevice *input, bool metaData, bool adts)
//try to determnate header type;
if ((uchar) buf[adts_offset] == 0xff && (((uchar)buf[adts_offset+1] & 0xf6) == 0xf0))
{
- unsigned int frame_length = ((((unsigned int)buf[adts_offset+3] & 0x3)) << 11)
- | (((unsigned int)buf[adts_offset+4]) << 3) | ((unsigned int)buf[adts_offset+5] >> 5);
+ unsigned int frame_length = uchar(buf[adts_offset + 3]) << 11;
+ frame_length |= uchar(buf[adts_offset + 4]) << 3;
+ frame_length |= uchar(buf[adts_offset + 5]) >> 5;
+ frame_length &= 0x1FFF;
if(frame_length == 0 || (adts_offset + frame_length > buf_at - 6))
{