diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-09-21 22:23:06 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-09-21 22:23:06 +0100 |
| commit | 0acd045b0e911427db96dbd186d551ab9f96c4fc (patch) | |
| tree | 00b64e3bb7aa7010c69efb72814dd1baf53aa170 /src | |
| parent | d6fda12c0bc46e3feb66709ffa71e67fb61a8c3f (diff) | |
Don't throw an exception on trying to create a KDM for
a CPL with non-encrypted parts.
Diffstat (limited to 'src')
| -rw-r--r-- | src/decrypted_kdm.cc | 11 |
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.) |
