]> granicus.if.org Git - libmatroska/commitdiff
algorithm and for loop conversions
authorRosen Penev <rosenp@gmail.com>
Sat, 21 May 2022 01:03:12 +0000 (18:03 -0700)
committerRosen Penev <rosenp@gmail.com>
Sat, 21 May 2022 01:45:57 +0000 (18:45 -0700)
Signed-off-by: Rosen Penev <rosenp@gmail.com>
src/FileKax.cpp
src/KaxCluster.cpp

index 8b8b3ddee6f12b6314efd417ff08936b550edb89..4185fed0d4a137d3feb093947dd4867082513025 100644 (file)
@@ -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; 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;
   }
 }
 
@@ -118,8 +118,8 @@ filepos_t FileMatroska::RenderHead(const std::string & aEncoderApp)
 {
   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;
@@ -134,8 +134,8 @@ filepos_t FileMatroska::RenderHead(const std::string & aEncoderApp)
 
     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
@@ -280,12 +280,7 @@ inline bool FileMatroska::IsMyTrack(const Track * aTrack) const
   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)
@@ -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<uint8>::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<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; })
 }
 
 //
index b371ca2f07ecc0cdd87371372492b5d9471c03dd..e8b61a5193b4c0a758532847a805e3a4244374f6 100644 (file)
@@ -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<KaxClusterTimecode *>(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<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)));
@@ -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<const KaxBlockGroup *>(*Itr));
+    for (auto&& element : ElementList) {
+      if (EbmlId(*element) == EBML_ID(KaxBlockGroup)) {
+        CueToUpdate.PositionSet(*static_cast<const KaxBlockGroup *>(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<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
@@ -283,10 +277,9 @@ KaxBlockGroup & KaxCluster::GetNewBlock()
 
 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();
     }
   }
 }