diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-12-08 17:03:15 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-12-08 17:03:15 +0000 |
| commit | 555799db5158a448ca172eea39f43bf3c4fbf0ba (patch) | |
| tree | e1ad367274590f540daed8fbd0011fe97a133dbd /src/plugins/Input | |
| parent | 97b3803b57fac2d3a2d1a926fe2af1177b739ce6 (diff) | |
| download | qmmp-555799db5158a448ca172eea39f43bf3c4fbf0ba.tar.gz qmmp-555799db5158a448ca172eea39f43bf3c4fbf0ba.tar.bz2 qmmp-555799db5158a448ca172eea39f43bf3c4fbf0ba.zip | |
fixed adts parser
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6901 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/aac/aacfile.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/plugins/Input/aac/aacfile.cpp b/src/plugins/Input/aac/aacfile.cpp index b9a537031..b452403b3 100644 --- a/src/plugins/Input/aac/aacfile.cpp +++ b/src/plugins/Input/aac/aacfile.cpp @@ -90,26 +90,23 @@ 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; + if(frame_length == 0 || (adts_offset + frame_length > buf_at - 6)) + { + adts_offset++; + continue; + } //check second sync word if (((uchar)buf[adts_offset + frame_length] == 0xFF) && (((uchar)buf[adts_offset + frame_length + 1] & 0xF6) == 0xF0)) { qDebug("AACFile: ADTS header found"); + if (!input->isSequential() && adts) + parseADTS(); + m_isValid = true; + m_offset += adts_offset; + return; } - else - break; - - if (!input->isSequential() && adts) - parseADTS(); - m_isValid = true; - m_offset += adts_offset; - return; } adts_offset++; } |
