summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/ffmpeg.cc2
-rw-r--r--src/lib/ffmpeg_content.cc10
-rw-r--r--src/tools/dcpomatic_kdm_cli.cc30
3 files changed, 28 insertions, 14 deletions
diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc
index d6a592f88..17ec564d3 100644
--- a/src/lib/ffmpeg.cc
+++ b/src/lib/ffmpeg.cc
@@ -125,10 +125,12 @@ FFmpeg::setup_general ()
*/
av_dict_set (&options, "analyzeduration", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
av_dict_set (&options, "probesize", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
+#ifdef DCPOMATIC_VARIANT_SWAROOP
if (_ffmpeg_content->kdm()) {
DecryptedECinemaKDM kdm (_ffmpeg_content->kdm().get(), Config::instance()->decryption_chain()->key().get());
av_dict_set (&options, "decryption_key", kdm.key().hex().c_str(), 0);
}
+#endif
int e = avformat_open_input (&_format_context, 0, 0, &options);
if (e < 0) {
diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc
index 97e12cc86..29ff7e80b 100644
--- a/src/lib/ffmpeg_content.cc
+++ b/src/lib/ffmpeg_content.cc
@@ -65,7 +65,9 @@ int const FFmpegContentProperty::KDM = 103;
FFmpegContent::FFmpegContent (boost::filesystem::path p)
: Content (p)
+#ifdef DCPOMATIC_VARIANT_SWAROOP
, _encrypted (false)
+#endif
{
}
@@ -126,7 +128,9 @@ FFmpegContent::FFmpegContent (cxml::ConstNodePtr node, int version, list<string>
_color_trc = get_optional_enum<AVColorTransferCharacteristic>(node, "ColorTransferCharacteristic");
_colorspace = get_optional_enum<AVColorSpace>(node, "Colorspace");
_bits_per_pixel = node->optional_number_child<int> ("BitsPerPixel");
+#ifdef DCPOMATIC_VARIANT_SWAROOP
_encrypted = node->optional_bool_child("Encrypted").get_value_or(false);
+#endif
}
FFmpegContent::FFmpegContent (vector<shared_ptr<Content> > c)
@@ -188,7 +192,9 @@ FFmpegContent::FFmpegContent (vector<shared_ptr<Content> > c)
_color_trc = ref->_color_trc;
_colorspace = ref->_colorspace;
_bits_per_pixel = ref->_bits_per_pixel;
+#ifdef DCPOMATIC_VARIANT_SWAROOP
_encrypted = ref->_encrypted;
+#endif
}
void
@@ -248,9 +254,11 @@ FFmpegContent::as_xml (xmlpp::Node* node, bool with_paths) const
if (_bits_per_pixel) {
node->add_child("BitsPerPixel")->add_child_text (raw_convert<string> (*_bits_per_pixel));
}
+#ifdef DCPOMATIC_VARIANT_SWAROOP
if (_encrypted) {
node->add_child("Encypted")->add_child_text ("1");
}
+#endif
}
void
@@ -318,7 +326,9 @@ FFmpegContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
_subtitle_stream = _subtitle_streams.front ();
}
+#ifdef DCPOMATIC_VARIANT_SWAROOP
_encrypted = first_path.extension() == ".ecinema";
+#endif
}
if (examiner->has_video ()) {
diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc
index 79912a36a..e00e882a4 100644
--- a/src/tools/dcpomatic_kdm_cli.cc
+++ b/src/tools/dcpomatic_kdm_cli.cc
@@ -130,7 +130,7 @@ always_overwrite ()
void
write_files (
- list<ScreenKDM> screen_kdms,
+ list<shared_ptr<ScreenKDM> > screen_kdms,
bool zip,
boost::filesystem::path output,
dcp::NameFormat container_name_format,
@@ -229,7 +229,7 @@ from_film (
values['e'] = dcp::LocalTime(valid_to).date() + " " + dcp::LocalTime(valid_to).time_of_day(true, false);
try {
- list<ScreenKDM> screen_kdms = film->make_kdms (
+ list<shared_ptr<ScreenKDM> > screen_kdms = film->make_kdms (
screens, cpl, valid_from, valid_to, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio
);
@@ -330,24 +330,26 @@ from_dkdm (
values['e'] = dcp::LocalTime(valid_to).date() + " " + dcp::LocalTime(valid_to).time_of_day(true, false);
try {
- list<ScreenKDM> screen_kdms;
+ list<shared_ptr<ScreenKDM> > screen_kdms;
BOOST_FOREACH (shared_ptr<Screen> i, screens) {
if (!i->recipient) {
continue;
}
screen_kdms.push_back (
- ScreenKDM (
- i,
- kdm_from_dkdm (
- dkdm,
- i->recipient.get(),
- i->trusted_device_thumbprints(),
- dcp::LocalTime(valid_from, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
- dcp::LocalTime(valid_to, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
- formulation,
- disable_forensic_marking_picture,
- disable_forensic_marking_audio
+ shared_ptr<ScreenKDM>(
+ new DCPScreenKDM(
+ i,
+ kdm_from_dkdm(
+ dkdm,
+ i->recipient.get(),
+ i->trusted_device_thumbprints(),
+ dcp::LocalTime(valid_from, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
+ dcp::LocalTime(valid_to, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
+ formulation,
+ disable_forensic_marking_picture,
+ disable_forensic_marking_audio
+ )
)
)
);