diff options
author | Aleksoid <aleksoid@users.sourceforge.net> | 2010-07-30 03:13:51 +0400 |
---|---|---|
committer | Aleksoid <aleksoid@users.sourceforge.net> | 2010-07-30 03:13:51 +0400 |
commit | be2229127adcab1bc6c243f80b622adb3cc00954 (patch) | |
tree | 47673d7cfd3494f790a22080357f2ce1be03fef0 /src/filters/parser | |
parent | ead03800edc7ae266b79c956984180f2116ff5ab (diff) |
little optimize;
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2164 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/parser')
-rw-r--r-- | src/filters/parser/MpaSplitter/MpaSplitterFile.cpp | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp b/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp index 2b8abee75..b1d103d01 100644 --- a/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp +++ b/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp @@ -235,35 +235,38 @@ HRESULT CMpaSplitterFile::Init() __int64 startpos;
__int64 syncpos;
- while ((m_mode == none) && (MP3_find))
+ if(MP3_find)
{
- searchlen = min(m_endpos - m_startpos, 0x200);
- Seek(m_startpos);
+ while (m_mode == none)
+ {
+ searchlen = min(m_endpos - m_startpos, 0x200);
+ Seek(m_startpos);
- // If we fail to see sync bytes, we reposition here and search again
- syncpos = m_startpos + searchlen;
+ // If we fail to see sync bytes, we reposition here and search again
+ syncpos = m_startpos + searchlen;
- // Check for a valid MPA header
- if(Read(m_mpahdr, searchlen, true, &m_mt))
- {
- m_mode = mpa;
+ // Check for a valid MPA header
+ if(Read(m_mpahdr, searchlen, true, &m_mt))
+ {
+ m_mode = mpa;
+
+ syncpos = GetPos();
+ startpos = syncpos - 4;
+
+ // make sure the first frame is followed by another of the same kind (validates m_mpahdr basically)
+ Seek(startpos + m_mpahdr.FrameSize);
+ if(!Sync(4))
+ m_mode = none;
+ else
+ break;
+ }
- syncpos = GetPos();
- startpos = syncpos - 4;
-
- // make sure the first frame is followed by another of the same kind (validates m_mpahdr basically)
- Seek(startpos + m_mpahdr.FrameSize);
- if(!Sync(4))
- m_mode = none;
+ // If we have enough room to search for a valid header, then skip ahead and try again
+ if (m_endpos - syncpos >= 8)
+ m_startpos = syncpos;
else
break;
}
-
- // If we have enough room to search for a valid header, then skip ahead and try again
- if (m_endpos - syncpos >= 8)
- m_startpos = syncpos;
- else
- break;
}
Seek(m_startpos);
|