summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-12-16 17:45:52 +0100
committerCarl Hetherington <cth@carlh.net>2025-12-18 01:10:32 +0100
commit6e4dfa6cba7cb878bc3931140189cbf35dd4718b (patch)
tree3608be2363f00ab4c0e721257e08a683a64ed4e9
parentc3c127e0bdb988696d16f47ea8080df3eff38420 (diff)
Add can_be_read() to Reel.
-rw-r--r--src/reel.cc9
-rw-r--r--src/reel.h6
2 files changed, 15 insertions, 0 deletions
diff --git a/src/reel.cc b/src/reel.cc
index 469c4416..1e31f1e1 100644
--- a/src/reel.cc
+++ b/src/reel.cc
@@ -515,3 +515,12 @@ Reel::duration () const
return d;
}
+
+
+bool
+Reel::can_be_read() const
+{
+ auto assets = file_assets();
+ return std::all_of(assets.begin(), assets.end(), [](shared_ptr<const ReelFileAsset> asset) { return asset->can_be_read(); });
+}
+
diff --git a/src/reel.h b/src/reel.h
index ecea0965..31e11abc 100644
--- a/src/reel.h
+++ b/src/reel.h
@@ -43,6 +43,7 @@
#include "decrypted_kdm.h"
#include "key.h"
+#include "picture_encoding.h"
#include "ref.h"
#include <boost/function.hpp>
#include <memory>
@@ -140,6 +141,11 @@ public:
bool any_encrypted () const;
bool all_encrypted () const;
+ /** Checks to see whether all assets can be read (either because
+ * they are unencrypted, or the provided KDM can decrypt them).
+ */
+ bool can_be_read() const;
+
bool equals(std::shared_ptr<const Reel> other, EqualityOptions const& opt, NoteHandler notes) const;
void add (DecryptedKDM const &);