bool KaxCues::AddBlockBlob(const KaxBlockBlob & BlockReference)
{
// Do not add the element if it's already present.
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
-
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx)
- if (*ListIdx == &BlockReference)
- return true;
+ bool present = std::any_of(myTempReferences.begin(), myTempReferences.end(),
+ [&](const KaxBlockBlob *myTempReference) { return myTempReference == &BlockReference; });
+ if (present) {
+ return true;
+ }
myTempReferences.push_back(&BlockReference);
return true;
void KaxCues::PositionSet(const KaxBlockBlob & BlockReference)
{
// look for the element in the temporary references
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
-
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
- if (*ListIdx == &BlockReference) {
- // found, now add the element to the entry list
- auto & NewPoint = AddNewChild<KaxCuePoint>(*this);
- NewPoint.PositionSet(BlockReference, GlobalTimecodeScale());
- myTempReferences.erase(ListIdx);
- break;
- }
+ auto it = std::find_if(myTempReferences.begin(), myTempReferences.end(),
+ [&](const KaxBlockBlob *myTempReference){ return myTempReference == &BlockReference; });
+
+ if (it != myTempReferences.end()) {
+ // found, now add the element to the entry list
+ auto & NewPoint = AddNewChild<KaxCuePoint>(*this);
+ NewPoint.PositionSet(BlockReference, GlobalTimecodeScale());
+ myTempReferences.erase(it);
}
}
void KaxCues::PositionSet(const KaxBlockGroup & BlockRef)
{
// look for the element in the temporary references
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
-
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
- const KaxInternalBlock &refTmp = **ListIdx;
- if (refTmp.GlobalTimecode() == BlockRef.GlobalTimecode() &&
- refTmp.TrackNum() == BlockRef.TrackNumber()) {
- // found, now add the element to the entry list
- auto & NewPoint = AddNewChild<KaxCuePoint>(*this);
- NewPoint.PositionSet(**ListIdx, GlobalTimecodeScale());
- myTempReferences.erase(ListIdx);
- break;
- }
+ auto it = std::find_if(myTempReferences.begin(), myTempReferences.end(),
+ [&](const KaxBlockBlob *myTempReference)
+ { const KaxInternalBlock &refTmp = *myTempReference;
+ return refTmp.GlobalTimecode() == BlockRef.GlobalTimecode()
+ && refTmp.TrackNum() == BlockRef.TrackNumber(); });
+
+ if(it != myTempReferences.end()) {
+ // found, now add the element to the entry list
+ auto & NewPoint = AddNewChild<KaxCuePoint>(*this);
+ NewPoint.PositionSet(**it, GlobalTimecodeScale());
+ myTempReferences.erase(it);
}
}
while (aElt != nullptr) {
KaxSeekID * aId = nullptr;
EBML_MASTER_ITERATOR Itr;
- for (Itr = aElt->begin(); Itr != aElt->end(); ++Itr) {
- if (EbmlId(*(*Itr)) == EBML_ID(KaxSeekID)) {
- aId = static_cast<KaxSeekID*>(*Itr);
- EbmlId aEbmlId(aId->GetBuffer(), aId->GetSize());
- if (aEbmlId == EBML_INFO_ID(Callbacks)) {
- return aElt;
- }
- break;
+ auto it = std::find_if(aElt->begin(), aElt->end(), [&](EbmlElement *Elt)
+ { return (EbmlId(*Elt) == EBML_ID(KaxSeekID)); });
+ if (it != aElt->end()) {
+ aId = static_cast<KaxSeekID*>(*it);
+ EbmlId aEbmlId(aId->GetBuffer(), aId->GetSize());
+ if (aEbmlId == EBML_INFO_ID(Callbacks)) {
+ return aElt;
}
}
aElt = static_cast<KaxSeek *>(FindNextElt(*aElt));