projects
/
dcpomatic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
881e5de
)
Ignore HMAC discrepencies when reading DCPs.
author
Carl Hetherington
<cth@carlh.net>
Fri, 4 Jun 2021 20:30:25 +0000
(22:30 +0200)
committer
Carl Hetherington
<cth@carlh.net>
Fri, 4 Jun 2021 20:30:25 +0000
(22:30 +0200)
cscript
patch
|
blob
|
history
src/lib/atmos_mxf_decoder.cc
patch
|
blob
|
history
src/lib/dcp_decoder.cc
patch
|
blob
|
history
src/lib/dcp_examiner.cc
patch
|
blob
|
history
src/lib/video_mxf_decoder.cc
patch
|
blob
|
history
diff --git
a/cscript
b/cscript
index 0045d80ef11562d726c1202811e0abd39b5b8d26..0f38bb82927bd11323f68e85cfc100ccdb0af1db 100644
(file)
--- a/
cscript
+++ b/
cscript
@@
-388,8
+388,8
@@
def dependencies(target, options):
# Use distro-provided FFmpeg on Arch
deps = []
# Use distro-provided FFmpeg on Arch
deps = []
- deps.append(('libdcp', '
42feb7f
'))
- deps.append(('libsub', '
f3d7335
'))
+ deps.append(('libdcp', '
a5bd2e9
'))
+ deps.append(('libsub', '
44cf236
'))
deps.append(('leqm-nrt', '93ae9e6'))
deps.append(('rtaudio', 'f619b76'))
# We get our OpenSSL libraries from the environment, but we
deps.append(('leqm-nrt', '93ae9e6'))
deps.append(('rtaudio', 'f619b76'))
# We get our OpenSSL libraries from the environment, but we
diff --git
a/src/lib/atmos_mxf_decoder.cc
b/src/lib/atmos_mxf_decoder.cc
index 9fcd9d2a6db6f06a4f6b50f1f13e6e7890e89b9e..19a19a8c4b5186189327981a8c400e6677a401ab 100644
(file)
--- a/
src/lib/atmos_mxf_decoder.cc
+++ b/
src/lib/atmos_mxf_decoder.cc
@@
-40,6
+40,7
@@
AtmosMXFDecoder::AtmosMXFDecoder (std::shared_ptr<const Film> film, std::shared_
auto asset = make_shared<dcp::AtmosAsset>(_content->path(0));
_reader = asset->start_read ();
auto asset = make_shared<dcp::AtmosAsset>(_content->path(0));
_reader = asset->start_read ();
+ _reader->set_check_hmac (false);
_metadata = AtmosMetadata (asset);
}
_metadata = AtmosMetadata (asset);
}
diff --git
a/src/lib/dcp_decoder.cc
b/src/lib/dcp_decoder.cc
index f9b0d9a57461e92cb98e0578f86c7e920a259f59..9de63dc936401748c8956c9217ce24ee1990637a 100644
(file)
--- a/
src/lib/dcp_decoder.cc
+++ b/
src/lib/dcp_decoder.cc
@@
-363,9
+363,11
@@
DCPDecoder::get_readers ()
DCPOMATIC_ASSERT (mono || stereo);
if (mono) {
_mono_reader = mono->start_read ();
DCPOMATIC_ASSERT (mono || stereo);
if (mono) {
_mono_reader = mono->start_read ();
+ _mono_reader->set_check_hmac (false);
_stereo_reader.reset ();
} else {
_stereo_reader = stereo->start_read ();
_stereo_reader.reset ();
} else {
_stereo_reader = stereo->start_read ();
+ _stereo_reader->set_check_hmac (false);
_mono_reader.reset ();
}
} else {
_mono_reader.reset ();
}
} else {
@@
-375,6
+377,7
@@
DCPDecoder::get_readers ()
if ((*_reel)->main_sound()) {
_sound_reader = (*_reel)->main_sound()->asset()->start_read ();
if ((*_reel)->main_sound()) {
_sound_reader = (*_reel)->main_sound()->asset()->start_read ();
+ _sound_reader->set_check_hmac (false);
} else {
_sound_reader.reset ();
}
} else {
_sound_reader.reset ();
}
@@
-382,6
+385,7
@@
DCPDecoder::get_readers ()
if ((*_reel)->atmos()) {
shared_ptr<dcp::AtmosAsset> asset = (*_reel)->atmos()->asset();
_atmos_reader = asset->start_read();
if ((*_reel)->atmos()) {
shared_ptr<dcp::AtmosAsset> asset = (*_reel)->atmos()->asset();
_atmos_reader = asset->start_read();
+ _atmos_reader->set_check_hmac (false);
_atmos_metadata = AtmosMetadata (asset);
} else {
_atmos_reader.reset ();
_atmos_metadata = AtmosMetadata (asset);
} else {
_atmos_reader.reset ();
diff --git
a/src/lib/dcp_examiner.cc
b/src/lib/dcp_examiner.cc
index b431cec26b94a3fc13d0504a2ff6e4329c949a3a..ffdcad1c144fd0030a70eefc6215497fecc783f2 100644
(file)
--- a/
src/lib/dcp_examiner.cc
+++ b/
src/lib/dcp_examiner.cc
@@
-241,9
+241,13
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
auto stereo = dynamic_pointer_cast<dcp::StereoPictureAsset>(pic);
if (mono) {
auto stereo = dynamic_pointer_cast<dcp::StereoPictureAsset>(pic);
if (mono) {
- mono->start_read()->get_frame(0)->xyz_image ();
+ auto reader = mono->start_read();
+ reader->set_check_hmac (false);
+ reader->get_frame(0)->xyz_image();
} else {
} else {
- stereo->start_read()->get_frame(0)->xyz_image(dcp::Eye::LEFT);
+ auto reader = stereo->start_read();
+ reader->set_check_hmac (false);
+ reader->get_frame(0)->xyz_image(dcp::Eye::LEFT);
}
if (i->main_sound()) {
}
if (i->main_sound()) {
@@
-251,7
+255,9
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
if (sound->encrypted() && !sound->key()) {
_kdm_valid = false;
}
if (sound->encrypted() && !sound->key()) {
_kdm_valid = false;
}
- i->main_sound()->asset()->start_read()->get_frame(0);
+ auto reader = i->main_sound()->asset()->start_read();
+ reader->set_check_hmac (false);
+ reader->get_frame(0);
}
if (i->main_subtitle()) {
}
if (i->main_subtitle()) {
@@
-268,7
+274,9
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
if (atmos->encrypted() && !atmos->key()) {
_kdm_valid = false;
}
if (atmos->encrypted() && !atmos->key()) {
_kdm_valid = false;
}
- atmos->start_read()->get_frame(0);
+ auto reader = atmos->start_read();
+ reader->set_check_hmac (false);
+ reader->get_frame(0);
}
}
} catch (dcp::ReadError& e) {
}
}
} catch (dcp::ReadError& e) {
diff --git
a/src/lib/video_mxf_decoder.cc
b/src/lib/video_mxf_decoder.cc
index 39c4a37fb865be99d11b0769bdaedec453050b37..92cab0259dd8a1697826f2ad5213b221cba7e6e3 100644
(file)
--- a/
src/lib/video_mxf_decoder.cc
+++ b/
src/lib/video_mxf_decoder.cc
@@
-67,9
+67,11
@@
VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const Film> film, shared_ptr<const
if (mono) {
_mono_reader = mono->start_read ();
if (mono) {
_mono_reader = mono->start_read ();
+ _mono_reader->set_check_hmac (false);
_size = mono->size ();
} else {
_stereo_reader = stereo->start_read ();
_size = mono->size ();
} else {
_stereo_reader = stereo->start_read ();
+ _stereo_reader->set_check_hmac (false);
_size = stereo->size ();
}
}
_size = stereo->size ();
}
}