swaroop: allow ScreenKDM subclasses for different KDM types.
[dcpomatic.git] / src / tools / dcpomatic_kdm.cc
index 60bb54f5914c3b9c0e1a876b0420cd71b4089e1b..fc4282535664e2b00d54777e7b12aa7709485f74 100644 (file)
@@ -313,7 +313,7 @@ private:
                                throw InvalidSignerError ();
                        }
 
-                       list<ScreenKDM> screen_kdms;
+                       list<shared_ptr<ScreenKDM> > screen_kdms;
                        BOOST_FOREACH (shared_ptr<Screen> i, _screens->screens()) {
 
                                if (!i->recipient) {
@@ -336,11 +336,13 @@ private:
 
                                /* Encrypt */
                                screen_kdms.push_back (
-                                       ScreenKDM (
-                                               i,
-                                               kdm.encrypt (
-                                                       signer, i->recipient.get(), i->trusted_device_thumbprints(), _output->formulation(),
-                                                       !_output->forensic_mark_video(), _output->forensic_mark_audio() ? boost::optional<int>() : 0
+                                       shared_ptr<ScreenKDM>(
+                                               new DCPScreenKDM(
+                                                       i,
+                                                       kdm.encrypt(
+                                                               signer, i->recipient.get(), i->trusted_device_thumbprints(), _output->formulation(),
+                                                               !_output->forensic_mark_video(), _output->forensic_mark_audio() ? boost::optional<int>() : 0
+                                                               )
                                                        )
                                                )
                                        );