// get the Track-entry size
uint32 track_entries_size = 0;
- for (size_t i=0; i<myTracks.size(); i++) {
- track_entries_size += myTracks[i]->default_size();
+ for (auto&& myTrack : myTracks) {
+ track_entries_size += myTrack->default_size();
}
myStreamInfo.TrackEntriesSize = track_entries_size;
myStreamInfo.TimeLength = aTimeLength;
myMainHeader.Render(myFile, myStreamInfo);
- for (i=0; i<myTracks.size(); i++) {
- delete myTracks[i];
+ for (auto&& track : myTracks) {
+ delete track;
}
}
{
try {
uint32 track_entries_size = 0;
- for (size_t i=0; i<myTracks.size(); i++) {
- track_entries_size += myTracks[i]->default_size();
+ for (auto&& myTrack : myTracks) {
+ track_entries_size += myTrack->default_size();
}
std::string aStr = LIB_NAME;
myStreamInfo.CodecEntryPosition = myStreamInfo.MainHeaderSize + myStreamInfo.TrackEntriesSize;
myStreamInfo.CodecEntrySize = 4;
- for (i=0; i<myTracks.size(); i++) {
- myStreamInfo.CodecEntrySize += myTracks[i]->CodecSize();
+ for (auto&& myTrack : myTracks) {
+ myStreamInfo.CodecEntrySize += myTrack->CodecSize();
}
// Main Header
if (aTrack == 0)
throw 0;
- for (std::vector<Track*>::const_iterator i = myTracks.begin(); i != myTracks.end(); ++i) {
- if (*i == aTrack)
- break;
- }
-
- return i != myTracks.end();
+ return std::any_of(myTracks.begin(), myTracks.end(), aTrack);
}
void FileMatroska::SelectReadingTrack(Track * aTrack, bool select)
if (IsMyTrack(aTrack)) {
// here we have the right track
// check if it's not already selected
- for (std::vector<uint8>::iterator j = mySelectedTracks.begin(); j != mySelectedTracks.end(); ++j) {
- if (*j == aTrack->TrackNumber())
+ for (auto&& num : mySelectedTracks) {
+ if (num == aTrack->TrackNumber())
break;
}
inline bool FileMatroska::IsReadingTrack(const uint8 aTrackNumber) const
{
- for (std::vector<uint8>::const_iterator trackIdx = mySelectedTracks.begin();
- trackIdx != mySelectedTracks.end() && *trackIdx < aTrackNumber;
- ++trackIdx) {}
-
- return trackIdx != mySelectedTracks.end();
+ return std::any_of(mySelectedTracks.begin(), mySelectedTracks.end(), [=](int track){ return track >= aTrackNumber; })
}
//
{
filepos_t Result = 0;
size_t Index;
- EBML_MASTER_ITERATOR TrkItr, Itr;
// update the Timecode of the Cluster before writing
auto Timecode = static_cast<KaxClusterTimecode *>(this->FindElt(EBML_INFO(KaxClusterTimecode)));
// check the parent cluster for existing tracks and see if they are contained in this cluster or not
if (bSilentTracksUsed) {
KaxTracks & MyTracks = *static_cast<KaxTracks *>(ParentSegment->FindElt(EBML_INFO(KaxTracks)));
- for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr) {
- if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry)) {
- KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(*TrkItr);
- uint32 tracknum = entry.TrackNumber();
- for (Itr = begin(); Itr != end(); ++Itr) {
- if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {
- KaxBlockGroup & group = *static_cast<KaxBlockGroup *>(*Itr);
- if (group.TrackNumber() == tracknum)
- break; // this track is used
- }
- }
+ for (auto&& Trk : MyTracks) {
+ if (EbmlId(*Trk) == EBML_ID(KaxTrackEntry)) {
+ KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(Trk);
+ auto tracknum = static_cast<uint32>(entry.TrackNumber());
+ auto track = std::find_if(ElementList.begin(), ElementList.end(), [=](EbmlElement *element)
+ { return EbmlId(*element) == EBML_ID(KaxBlockGroup) && static_cast<KaxBlockGroup *>(element)->TrackNumber() == tracknum; });
// the track wasn't found in this cluster
- if (Itr == end()) {
+ if (track == ElementList.end()) {
auto SilentTracks = static_cast<KaxClusterSilentTracks *>(this->FindFirstElt(EBML_INFO(KaxClusterSilentTracks)));
assert(SilentTracks != nullptr); // the flag bSilentTracksUsed should be set when creating the Cluster
auto trackelt = static_cast<KaxClusterSilentTrackNumber *>(SilentTracks->AddNewElt(EBML_INFO(KaxClusterSilentTrackNumber)));
Result = EbmlMaster::Render(output, bSaveDefault);
// For all Blocks add their position on the CueEntry
- for (Itr = begin(); Itr != end(); ++Itr) {
- if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {
- CueToUpdate.PositionSet(*static_cast<const KaxBlockGroup *>(*Itr));
+ for (auto&& element : ElementList) {
+ if (EbmlId(*element) == EBML_ID(KaxBlockGroup)) {
+ CueToUpdate.PositionSet(*static_cast<const KaxBlockGroup *>(element));
}
}
} else {
// check the parent cluster for existing tracks and see if they are contained in this cluster or not
if (bSilentTracksUsed) {
KaxTracks & MyTracks = *static_cast<KaxTracks *>(ParentSegment->FindElt(EBML_INFO(KaxTracks)));
- for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr) {
- if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry)) {
- KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(*TrkItr);
- uint32 tracknum = entry.TrackNumber();
+ for (auto&& Trk : MyTracks) {
+ if (EbmlId(*Trk) == EBML_ID(KaxTrackEntry)) {
+ KaxTrackEntry & entry = *static_cast<KaxTrackEntry *>(Trk);
+ auto tracknum = static_cast<uint32>(entry.TrackNumber());
for (Index = 0; Index<Blobs.size(); Index++) {
if (((KaxInternalBlock&)*Blobs[Index]).TrackNum() == tracknum)
break; // this track is used
void KaxCluster::ReleaseFrames()
{
- EBML_MASTER_ITERATOR Itr;
- for (Itr = begin(); Itr != end(); ++Itr) {
- if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) {
- static_cast<KaxBlockGroup*>(*Itr)->ReleaseFrames();
+ for (auto&& element : ElementList) {
+ if (EbmlId(*element) == EBML_ID(KaxBlockGroup)) {
+ static_cast<KaxBlockGroup *>(element)->ReleaseFrames();
}
}
}