Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksoid <aleksoid@users.sourceforge.net>2010-07-30 03:13:51 +0400
committerAleksoid <aleksoid@users.sourceforge.net>2010-07-30 03:13:51 +0400
commitbe2229127adcab1bc6c243f80b622adb3cc00954 (patch)
tree47673d7cfd3494f790a22080357f2ce1be03fef0 /src/filters/parser
parentead03800edc7ae266b79c956984180f2116ff5ab (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.cpp47
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);