filepos_t KaxCluster::Render(IOCallback & output, KaxCues & CueToUpdate, bool bSaveDefault)\r
{\r
filepos_t Result = 0;\r
- size_t TrkIndex, Index;\r
+ size_t Index;\r
+ EBML_MASTER_ITERATOR TrkItr, Itr;\r
\r
// update the Timecode of the Cluster before writing\r
KaxClusterTimecode * Timecode = static_cast<KaxClusterTimecode *>(this->FindElt(EBML_INFO(KaxClusterTimecode)));\r
if (bSilentTracksUsed)\r
{\r
KaxTracks & MyTracks = *static_cast<KaxTracks *>(ParentSegment->FindElt(EBML_INFO(KaxTracks)));\r
- for (TrkIndex = 0; TrkIndex < MyTracks.ListSize(); TrkIndex++) {\r
- if (EbmlId(*MyTracks[TrkIndex]) == EBML_ID(KaxTrackEntry))\r
+ for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr)\r
+ {\r
+ if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry))\r
{\r
- KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(MyTracks[TrkIndex]);\r
+ KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(*TrkItr);\r
uint32 tracknum = entry.TrackNumber();\r
- for (Index = 0; Index < ListSize(); Index++) {\r
- if (EbmlId(*(*this)[Index]) == EBML_ID(KaxBlockGroup)) {\r
- KaxBlockGroup & group = *static_cast<KaxBlockGroup *>((*this)[Index]);\r
+ for (Itr = begin(); Itr != end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {\r
+ KaxBlockGroup & group = *static_cast<KaxBlockGroup *>(*Itr);\r
if (group.TrackNumber() == tracknum)\r
break; // this track is used\r
}\r
}\r
// the track wasn't found in this cluster\r
- if (Index == ListSize())\r
+ if (Itr == end())\r
{\r
KaxClusterSilentTracks * SilentTracks = static_cast<KaxClusterSilentTracks *>(this->FindFirstElt(EBML_INFO(KaxClusterSilentTracks)));\r
assert(SilentTracks != NULL); // the flag bSilentTracksUsed should be set when creating the Cluster\r
Result = EbmlMaster::Render(output, bSaveDefault);\r
// For all Blocks add their position on the CueEntry\r
\r
- for (Index = 0; Index < ListSize(); Index++) {\r
- if (EbmlId(*(*this)[Index]) == EBML_ID(KaxBlockGroup)) {\r
- CueToUpdate.PositionSet(*static_cast<const KaxBlockGroup *>((*this)[Index]));\r
+ for (Itr = begin(); Itr != end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {\r
+ CueToUpdate.PositionSet(*static_cast<const KaxBlockGroup *>(*Itr));\r
}\r
}\r
} else {\r
if (bSilentTracksUsed)\r
{\r
KaxTracks & MyTracks = *static_cast<KaxTracks *>(ParentSegment->FindElt(EBML_INFO(KaxTracks)));\r
- for (TrkIndex = 0; TrkIndex < MyTracks.ListSize(); TrkIndex++) {\r
- if (EbmlId(*MyTracks[TrkIndex]) == EBML_ID(KaxTrackEntry))\r
+ for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr)\r
+ {\r
+ if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry))\r
{\r
- KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(MyTracks[TrkIndex]);\r
+ KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(*TrkItr);\r
uint32 tracknum = entry.TrackNumber();\r
for (Index = 0; Index<Blobs.size(); Index++) {\r
if (((KaxInternalBlock&)*Blobs[Index]).TrackNum() == tracknum)\r
\r
void KaxCluster::ReleaseFrames()\r
{\r
- size_t Index;\r
- \r
- for (Index = 0; Index < ListSize(); Index++) {\r
- if (EbmlId(*(*this)[Index]) == EBML_ID(KaxBlockGroup)) {\r
- static_cast<KaxBlockGroup*>((*this)[Index])->ReleaseFrames();\r
+ EBML_MASTER_ITERATOR Itr;\r
+ for (Itr = begin(); Itr != end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {\r
+ static_cast<KaxBlockGroup*>(*Itr)->ReleaseFrames();\r
}\r
}\r
}\r
const KaxCuePoint * aPointNext = NULL;\r
uint64 aNextTime = EBML_PRETTYLONGINT(0xFFFFFFFFFFFF);\r
\r
- for (unsigned int i=0; i<ListSize(); i++)\r
- {\r
- if (EbmlId(*(*this)[i]) == EBML_ID(KaxCuePoint)) {\r
- const KaxCuePoint *tmp = static_cast<const KaxCuePoint *>((*this)[i]);\r
+ EBML_MASTER_ITERATOR Itr;\r
+ for (Itr = begin(); Itr != end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxCuePoint)) {\r
+ const KaxCuePoint *tmp = static_cast<const KaxCuePoint *>(*Itr);\r
// check the tile\r
const KaxCueTime *aTime = static_cast<const KaxCueTime *>(tmp->FindFirstElt(EBML_INFO(KaxCueTime)));\r
if (aTime != NULL)\r
while (aElt != NULL)\r
{\r
KaxSeekID * aId = NULL;\r
- for (unsigned int i = 0; i<aElt->ListSize(); i++) {\r
- if (EbmlId(*(*aElt)[i]) == EBML_ID(KaxSeekID)) {\r
- aId = static_cast<KaxSeekID*>((*aElt)[i]);\r
+ EBML_MASTER_ITERATOR Itr;\r
+ for (Itr = aElt->begin(); Itr != aElt->end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxSeekID)) {\r
+ aId = static_cast<KaxSeekID*>(*Itr);\r
EbmlId aEbmlId(aId->GetBuffer(), aId->GetSize());\r
if (aEbmlId == EBML_INFO_ID(Callbacks))\r
{\r
\r
KaxSeek * KaxSeekHead::FindNextOf(const KaxSeek &aPrev) const\r
{\r
- unsigned int iIndex;\r
+ EBML_MASTER_ITERATOR Itr;\r
KaxSeek *tmp;\r
\r
// look for the previous in the list\r
- for (iIndex = 0; iIndex<ListSize(); iIndex++)\r
- {\r
- if ((*this)[iIndex] == static_cast<const EbmlElement*>(&aPrev))\r
+ for (Itr = begin(); Itr != end(); ++Itr)\r
+ {\r
+ if (*Itr == static_cast<const EbmlElement*>(&aPrev))\r
break;\r
}\r
\r
- if (iIndex <ListSize()) {\r
- iIndex++;\r
- for (; iIndex<ListSize(); iIndex++)\r
- {\r
- if (EbmlId(*((*this)[iIndex])) == EBML_ID(KaxSeek))\r
+ if (Itr != end())\r
+ {\r
+ ++Itr;\r
+ for (; Itr != end(); ++Itr)\r
+ {\r
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxSeek))\r
{\r
- tmp = (KaxSeek *)((*this)[iIndex]);\r
+ tmp = (KaxSeek *)(*Itr);\r
if (tmp->IsEbmlId(aPrev))\r
return tmp;\r
}\r