diff options
| author | Mart Jansink <mart@gofilex.nl> | 2018-02-13 13:34:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-02-14 22:16:07 +0000 |
| commit | 697a8c5a86b013ff4dd78b6c3b79b09522bd9e46 (patch) | |
| tree | 13ec1e8bf91e9d0cce3662265e2d5373af4eedf0 /src/encrypted_kdm.cc | |
| parent | 730ba2273b136ad5a3bfc1a185d69e6cc50a65af (diff) | |
Make disabling forensic marking optional.
Diffstat (limited to 'src/encrypted_kdm.cc')
| -rw-r--r-- | src/encrypted_kdm.cc | 23 |
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 (); |
