summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-09-21 22:23:06 +0100
committerCarl Hetherington <cth@carlh.net>2016-09-21 22:23:06 +0100
commit0acd045b0e911427db96dbd186d551ab9f96c4fc (patch)
tree00b64e3bb7aa7010c69efb72814dd1baf53aa170
parentd6fda12c0bc46e3feb66709ffa71e67fb61a8c3f (diff)
Don't throw an exception on trying to create a KDM for
a CPL with non-encrypted parts.
-rw-r--r--src/decrypted_kdm.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/decrypted_kdm.cc b/src/decrypted_kdm.cc
index 05ea73a3..c9c58951 100644
--- a/src/decrypted_kdm.cc
+++ b/src/decrypted_kdm.cc
@@ -236,16 +236,19 @@ DecryptedKDM::DecryptedKDM (
, _issue_date (issue_date)
{
/* Create DecryptedKDMKey objects for each encryptable asset */
+ bool did_one = false;
BOOST_FOREACH(shared_ptr<const ReelAsset> i, cpl->reel_assets ()) {
shared_ptr<const ReelMXF> mxf = boost::dynamic_pointer_cast<const ReelMXF> (i);
shared_ptr<const ReelAsset> asset = boost::dynamic_pointer_cast<const ReelAsset> (i);
- if (asset && mxf) {
- if (!mxf->key_id ()) {
- throw NotEncryptedError (asset->id ());
- }
+ if (asset && mxf && mxf->key_id ()) {
_keys.push_back (DecryptedKDMKey (mxf->key_type(), mxf->key_id().get(), key, cpl->id ()));
+ did_one = true;
}
}
+
+ if (!did_one) {
+ throw NotEncryptedError (cpl->id ());
+ }
}
/** @param type (MDIK, MDAK etc.)