From: Rosen Penev Date: Sat, 21 May 2022 01:03:12 +0000 (-0700) Subject: algorithm and for loop conversions X-Git-Tag: release-1.7.0~40^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=912520ba1d4a7397a5612b3abf8f9006df591d21;p=libmatroska algorithm and for loop conversions Signed-off-by: Rosen Penev --- diff --git a/src/FileKax.cpp b/src/FileKax.cpp index 8b8b3dd..4185fed 100644 --- a/src/FileKax.cpp +++ b/src/FileKax.cpp @@ -98,16 +98,16 @@ void FileMatroska::Close(const uint32 aTimeLength) // get the Track-entry size uint32 track_entries_size = 0; - for (size_t i=0; idefault_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; idefault_size(); + for (auto&& myTrack : myTracks) { + track_entries_size += myTrack->default_size(); } std::string aStr = LIB_NAME; @@ -134,8 +134,8 @@ filepos_t FileMatroska::RenderHead(const std::string & aEncoderApp) myStreamInfo.CodecEntryPosition = myStreamInfo.MainHeaderSize + myStreamInfo.TrackEntriesSize; myStreamInfo.CodecEntrySize = 4; - for (i=0; iCodecSize(); + for (auto&& myTrack : myTracks) { + myStreamInfo.CodecEntrySize += myTrack->CodecSize(); } // Main Header @@ -280,12 +280,7 @@ inline bool FileMatroska::IsMyTrack(const Track * aTrack) const if (aTrack == 0) throw 0; - for (std::vector::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) @@ -293,8 +288,8 @@ 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::iterator j = mySelectedTracks.begin(); j != mySelectedTracks.end(); ++j) { - if (*j == aTrack->TrackNumber()) + for (auto&& num : mySelectedTracks) { + if (num == aTrack->TrackNumber()) break; } @@ -309,11 +304,7 @@ void FileMatroska::SelectReadingTrack(Track * aTrack, bool select) inline bool FileMatroska::IsReadingTrack(const uint8 aTrackNumber) const { - for (std::vector::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; }) } // diff --git a/src/KaxCluster.cpp b/src/KaxCluster.cpp index b371ca2..e8b61a5 100644 --- a/src/KaxCluster.cpp +++ b/src/KaxCluster.cpp @@ -149,7 +149,6 @@ filepos_t KaxCluster::Render(IOCallback & output, KaxCues & CueToUpdate, bool bS { filepos_t Result = 0; size_t Index; - EBML_MASTER_ITERATOR TrkItr, Itr; // update the Timecode of the Cluster before writing auto Timecode = static_cast(this->FindElt(EBML_INFO(KaxClusterTimecode))); @@ -162,19 +161,14 @@ filepos_t KaxCluster::Render(IOCallback & output, KaxCues & CueToUpdate, bool bS // check the parent cluster for existing tracks and see if they are contained in this cluster or not if (bSilentTracksUsed) { KaxTracks & MyTracks = *static_cast(ParentSegment->FindElt(EBML_INFO(KaxTracks))); - for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr) { - if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry)) { - KaxTrackEntry & entry = *static_cast(*TrkItr); - uint32 tracknum = entry.TrackNumber(); - for (Itr = begin(); Itr != end(); ++Itr) { - if (EbmlId(*(*Itr)) == EBML_ID(KaxBlockGroup)) { - KaxBlockGroup & group = *static_cast(*Itr); - if (group.TrackNumber() == tracknum) - break; // this track is used - } - } + for (auto&& Trk : MyTracks) { + if (EbmlId(*Trk) == EBML_ID(KaxTrackEntry)) { + KaxTrackEntry & entry = *static_cast(Trk); + auto tracknum = static_cast(entry.TrackNumber()); + auto track = std::find_if(ElementList.begin(), ElementList.end(), [=](EbmlElement *element) + { return EbmlId(*element) == EBML_ID(KaxBlockGroup) && static_cast(element)->TrackNumber() == tracknum; }); // the track wasn't found in this cluster - if (Itr == end()) { + if (track == ElementList.end()) { auto SilentTracks = static_cast(this->FindFirstElt(EBML_INFO(KaxClusterSilentTracks))); assert(SilentTracks != nullptr); // the flag bSilentTracksUsed should be set when creating the Cluster auto trackelt = static_cast(SilentTracks->AddNewElt(EBML_INFO(KaxClusterSilentTrackNumber))); @@ -187,9 +181,9 @@ filepos_t KaxCluster::Render(IOCallback & output, KaxCues & CueToUpdate, bool bS 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(*Itr)); + for (auto&& element : ElementList) { + if (EbmlId(*element) == EBML_ID(KaxBlockGroup)) { + CueToUpdate.PositionSet(*static_cast(element)); } } } else { @@ -205,10 +199,10 @@ filepos_t KaxCluster::Render(IOCallback & output, KaxCues & CueToUpdate, bool bS // check the parent cluster for existing tracks and see if they are contained in this cluster or not if (bSilentTracksUsed) { KaxTracks & MyTracks = *static_cast(ParentSegment->FindElt(EBML_INFO(KaxTracks))); - for (TrkItr = MyTracks.begin(); TrkItr != MyTracks.end(); ++TrkItr) { - if (EbmlId(*(*TrkItr)) == EBML_ID(KaxTrackEntry)) { - KaxTrackEntry & entry = *static_cast(*TrkItr); - uint32 tracknum = entry.TrackNumber(); + for (auto&& Trk : MyTracks) { + if (EbmlId(*Trk) == EBML_ID(KaxTrackEntry)) { + KaxTrackEntry & entry = *static_cast(Trk); + auto tracknum = static_cast(entry.TrackNumber()); for (Index = 0; Index(*Itr)->ReleaseFrames(); + for (auto&& element : ElementList) { + if (EbmlId(*element) == EBML_ID(KaxBlockGroup)) { + static_cast(element)->ReleaseFrames(); } } }