aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-08-25 12:05:15 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-08-25 12:05:15 +0000
commit9fae959f282ad07f51a61c9fd4d762e261db1a6a (patch)
tree740763644fea6a446d07a38ed72a3a3a3c72c815 /src/plugins/Input
parent7c0cefdde40f1ee86b45d39b20ed526b45365260 (diff)
downloadqmmp-9fae959f282ad07f51a61c9fd4d762e261db1a6a.tar.gz
qmmp-9fae959f282ad07f51a61c9fd4d762e261db1a6a.tar.bz2
qmmp-9fae959f282ad07f51a61c9fd4d762e261db1a6a.zip
aac: fixed ADTS parser
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6683 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input')
-rw-r--r--src/plugins/Input/aac/aacfile.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/Input/aac/aacfile.cpp b/src/plugins/Input/aac/aacfile.cpp
index 4c69e2e90..b9a537031 100644
--- a/src/plugins/Input/aac/aacfile.cpp
+++ b/src/plugins/Input/aac/aacfile.cpp
@@ -90,6 +90,9 @@ AACFile::AACFile(QIODevice *input, bool metaData, bool adts)
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);
+ if(frame_length == 0)
+ break;
+
if(adts_offset + frame_length > buf_at - 6)
break;
@@ -203,6 +206,9 @@ void AACFile::parseADTS()
frame_length = ((((unsigned int)buf[3] & 0x3)) << 11)
| (((unsigned int)buf[4]) << 3) | (buf[5] >> 5);
+ if(frame_length == 0)
+ break;
+
t_framelength += frame_length;
if (frame_length > buf_at)