summaryrefslogtreecommitdiff
path: root/src/encrypted_kdm.cc
diff options
context:
space:
mode:
authorMart Jansink <mart@gofilex.nl>2018-02-13 13:34:23 +0100
committerCarl Hetherington <cth@carlh.net>2018-02-14 22:16:07 +0000
commit697a8c5a86b013ff4dd78b6c3b79b09522bd9e46 (patch)
tree13ec1e8bf91e9d0cce3662265e2d5373af4eedf0 /src/encrypted_kdm.cc
parent730ba2273b136ad5a3bfc1a185d69e6cc50a65af (diff)
Make disabling forensic marking optional.
Diffstat (limited to 'src/encrypted_kdm.cc')
-rw-r--r--src/encrypted_kdm.cc23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/encrypted_kdm.cc b/src/encrypted_kdm.cc
index 7286f2d7..ebcb41ca 100644
--- a/src/encrypted_kdm.cc
+++ b/src/encrypted_kdm.cc
@@ -41,6 +41,7 @@
#include <libxml/parser.h>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/foreach.hpp>
+#include <boost/format.hpp>
using std::list;
using std::vector;
@@ -401,9 +402,19 @@ public:
}
key_id_list.as_xml (node->add_child ("KeyIdList"));
- xmlpp::Element* forensic_mark_flag_list = node->add_child ("ForensicMarkFlagList");
- forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-picture-disable");
- forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-audio-disable");
+ if (disable_forensic_marking_picture || disable_forensic_marking_audio) {
+ xmlpp::Element* forensic_mark_flag_list = node->add_child ("ForensicMarkFlagList");
+ if (disable_forensic_marking_picture) {
+ forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-picture-disable");
+ }
+ if (disable_forensic_marking_audio) {
+ string mrkflg = "http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-audio-disable";
+ if (disable_forensic_marking_audio != -1) {
+ mrkflg = str (boost::format (mrkflg + "-above-channel-%u") % disable_forensic_marking_audio);
+ }
+ forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text (mrkflg);
+ }
+ }
}
Recipient recipient;
@@ -412,6 +423,8 @@ public:
string content_title_text;
LocalTime not_valid_before;
LocalTime not_valid_after;
+ int disable_forensic_marking_picture;
+ int disable_forensic_marking_audio;
boost::optional<AuthorizedDeviceInfo> authorized_device_info;
KeyIdList key_id_list;
};
@@ -545,6 +558,8 @@ EncryptedKDM::EncryptedKDM (
LocalTime not_valid_before,
LocalTime not_valid_after,
Formulation formulation,
+ int disable_forensic_marking_picture,
+ int disable_forensic_marking_audio,
list<pair<string, string> > key_ids,
list<string> keys
)
@@ -577,6 +592,8 @@ EncryptedKDM::EncryptedKDM (
kre.content_title_text = content_title_text;
kre.not_valid_before = not_valid_before;
kre.not_valid_after = not_valid_after;
+ kre.disable_forensic_marking_picture = disable_forensic_marking_picture;
+ kre.disable_forensic_marking_audio = disable_forensic_marking_audio;
if (formulation != MODIFIED_TRANSITIONAL_TEST) {
kre.authorized_device_info = data::AuthorizedDeviceInfo ();