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:
authorv0lt <v0lt@rambler.ru>2013-05-12 23:44:47 +0400
committerv0lt <v0lt@rambler.ru>2013-05-12 23:44:47 +0400
commit79c0e627406e54b97acba8fee8e40bb6adc83c34 (patch)
tree6f2d960ba678033d7c6ce2a46197548a62528cfc /src/filters/parser/AviSplitter
parent10de765546ccac4e829953c185768da3f110618b (diff)
AviSplitter: cosmetics and optimization.
Diffstat (limited to 'src/filters/parser/AviSplitter')
-rw-r--r--src/filters/parser/AviSplitter/AviFile.cpp62
1 files changed, 30 insertions, 32 deletions
diff --git a/src/filters/parser/AviSplitter/AviFile.cpp b/src/filters/parser/AviSplitter/AviFile.cpp
index 4fbb40318..d30e7ba2e 100644
--- a/src/filters/parser/AviSplitter/AviFile.cpp
+++ b/src/filters/parser/AviSplitter/AviFile.cpp
@@ -346,16 +346,16 @@ HRESULT CAviFile::BuildIndex()
DWORD nSuperIndexes = 0;
- for (DWORD i = 0; i < m_avih.dwStreams; ++i) {
- strm_t* s = m_strms[i];
+ for (DWORD track = 0; track < m_avih.dwStreams; track++) {
+ strm_t* s = m_strms[track];
if (s->indx && s->indx->nEntriesInUse > 0) {
- ++nSuperIndexes;
+ nSuperIndexes++;
}
}
if (nSuperIndexes == m_avih.dwStreams) {
- for (DWORD i = 0; i < m_avih.dwStreams; ++i) {
- strm_t* s = m_strms[i];
+ for (DWORD track = 0; track < m_avih.dwStreams; track++) {
+ strm_t* s = m_strms[track];
AVISUPERINDEX* idx = (AVISUPERINDEX*)s->indx;
@@ -388,15 +388,15 @@ HRESULT CAviFile::BuildIndex()
}
for (DWORD k = 0; k < p->nEntriesInUse; ++k) {
- s->cs[frame].size = size;
- s->cs[frame].filepos = p->qwBaseOffset + p->aIndex[k].dwOffset;
+ s->cs[frame].size = size;
+ s->cs[frame].filepos = p->qwBaseOffset + p->aIndex[k].dwOffset;
s->cs[frame].fKeyFrame = !(p->aIndex[k].dwSize & AVISTDINDEX_DELTAFRAME)
|| s->strh.fccType == FCC('auds');
s->cs[frame].fChunkHdr = false;
- s->cs[frame].orgsize = p->aIndex[k].dwSize & AVISTDINDEX_SIZEMASK;
+ s->cs[frame].orgsize = p->aIndex[k].dwSize & AVISTDINDEX_SIZEMASK;
if (m_idx1) {
- s->cs[frame].filepos -= 8;
+ s->cs[frame].filepos -= 8;
s->cs[frame].fChunkHdr = true;
}
@@ -408,7 +408,7 @@ HRESULT CAviFile::BuildIndex()
s->totalsize = size;
}
} else if (AVIOLDINDEX* idx = m_idx1) {
- DWORD len = idx->cb / sizeof(idx->aIndex[0]);
+ size_t len = idx->cb / sizeof(idx->aIndex[0]);
UINT64 offset = m_movis.GetHead() + 8;
@@ -423,35 +423,33 @@ HRESULT CAviFile::BuildIndex()
}
}
- for (DWORD i = 0; i < m_avih.dwStreams; ++i) {
- strm_t* s = m_strms[i];
+ for (DWORD track = 0; track < m_avih.dwStreams; track++) {
+ strm_t* s = m_strms[track];
// calculate the number of frames and set index size before using it
- DWORD nFrames = 0;
- for (DWORD j = 0; j < len; ++j) {
- if (TRACKNUM(idx->aIndex[j].dwChunkId) == i) {
- ++nFrames;
+ size_t nFrames = 0;
+ for (size_t i = 0; i < len; i++) {
+ if (TRACKNUM(idx->aIndex[i].dwChunkId) == track) {
+ nFrames++;
}
}
s->cs.SetCount(nFrames);
- //read index
- DWORD frame = 0;
+ // read index
+ size_t frame = 0;
UINT64 size = 0;
- for (DWORD j = 0; j < len; ++j) {
- DWORD TrackNumber = TRACKNUM(idx->aIndex[j].dwChunkId);
-
- if (TrackNumber == i) {
- s->cs[frame].size = size;
- s->cs[frame].filepos = offset + idx->aIndex[j].dwOffset;
- s->cs[frame].fKeyFrame = !!(idx->aIndex[j].dwFlags & AVIIF_KEYFRAME)
+ for (size_t i = 0; i < len; i++) {
+ if (TRACKNUM(idx->aIndex[i].dwChunkId) == track) {
+ s->cs[frame].size = size;
+ s->cs[frame].filepos = offset + idx->aIndex[i].dwOffset;
+ s->cs[frame].fKeyFrame = (idx->aIndex[i].dwFlags & AVIIF_KEYFRAME)
|| s->strh.fccType == FCC('auds') // FIXME: some audio index is without any kf flag
|| frame == 0; // grrr
- s->cs[frame].fChunkHdr = j == len - 1 || idx->aIndex[j].dwOffset != idx->aIndex[j + 1].dwOffset;
- s->cs[frame].orgsize = idx->aIndex[j].dwSize;
+ s->cs[frame].fChunkHdr = i + 1 == len || idx->aIndex[i].dwOffset != idx->aIndex[i + 1].dwOffset;
+ s->cs[frame].orgsize = idx->aIndex[i].dwSize;
- ++frame;
- size += s->GetChunkSize(idx->aIndex[j].dwSize);
+ frame++;
+ size += s->GetChunkSize(idx->aIndex[i].dwSize);
}
}
@@ -460,8 +458,8 @@ HRESULT CAviFile::BuildIndex()
}
m_idx1.Free();
- for (DWORD i = 0; i < m_avih.dwStreams; ++i) {
- m_strms[i]->indx.Free();
+ for (DWORD track = 0; track < m_avih.dwStreams; track++) {
+ m_strms[track]->indx.Free();
}
return S_OK;
@@ -581,7 +579,7 @@ bool CAviFile::IsInterleaved(bool fKeepInfo)
REFERENCE_TIME CAviFile::strm_t::GetRefTime(DWORD frame, UINT64 size)
{
- if (frame == 0 || strh.dwRate == 0) {
+ if (strh.dwRate == 0) {
return 0;
}
if (strh.fccType == FCC('auds')) {