summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-05-09 23:39:42 +0100
committerCarl Hetherington <cth@carlh.net>2016-05-09 23:39:42 +0100
commit9fe5ea488461355a779db1b6b56f93ef375bac41 (patch)
tree0fb522984c7fdc52d3ed924675f098da278a57f7
parent8d8e9f96ef2023e709cacd263cee608443cecb03 (diff)
Temporary hack to double-check existing frame hashes.
-rw-r--r--src/lib/reel_writer.cc18
-rw-r--r--src/lib/reel_writer.h2
2 files changed, 13 insertions, 7 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index ae06abc4c..7ffc773a1 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -200,7 +200,7 @@ ReelWriter::check_existing_picture_asset ()
_first_nonexistant_frame = n;
}
- while (!existing_picture_frame_ok(asset_file, info_file) && _first_nonexistant_frame > 0) {
+ while (!existing_picture_frame_ok(asset_file, info_file, _first_nonexistant_frame) && _first_nonexistant_frame > 0) {
--_first_nonexistant_frame;
}
@@ -211,6 +211,12 @@ ReelWriter::check_existing_picture_asset ()
++_first_nonexistant_frame;
}
+ for (int i = 0; i < _first_nonexistant_frame; ++i) {
+ if (!existing_picture_frame_ok(asset_file, info_file, i)) {
+ LOG_GENERAL ("Although %1 is not ok", i);
+ }
+ }
+
LOG_GENERAL ("Proceeding with first nonexistant frame %1", _first_nonexistant_frame);
fclose (asset_file);
@@ -472,14 +478,14 @@ ReelWriter::write (PlayerSubtitles subs)
}
bool
-ReelWriter::existing_picture_frame_ok (FILE* asset_file, FILE* info_file) const
+ReelWriter::existing_picture_frame_ok (FILE* asset_file, FILE* info_file, int frame) const
{
- LOG_GENERAL ("Checking existing picture frame %1", _first_nonexistant_frame);
+ LOG_GENERAL ("Checking existing picture frame %1", frame);
/* Read the data from the info file; for 3D we just check the left
frames until we find a good one.
*/
- dcp::FrameInfo const info = read_frame_info (info_file, _first_nonexistant_frame, _film->three_d () ? EYES_LEFT : EYES_BOTH);
+ dcp::FrameInfo const info = read_frame_info (info_file, frame, _film->three_d () ? EYES_LEFT : EYES_BOTH);
bool ok = true;
@@ -489,14 +495,14 @@ ReelWriter::existing_picture_frame_ok (FILE* asset_file, FILE* info_file) const
size_t const read = fread (data.data().get(), 1, data.size(), asset_file);
LOG_GENERAL ("Read %1 bytes of asset data; wanted %2", read, info.size);
if (read != static_cast<size_t> (data.size ())) {
- LOG_GENERAL ("Existing frame %1 is incomplete", _first_nonexistant_frame);
+ LOG_GENERAL ("Existing frame %1 is incomplete", frame);
ok = false;
} else {
MD5Digester digester;
digester.add (data.data().get(), data.size());
LOG_GENERAL ("Hash %1 vs %2", digester.get(), info.hash);
if (digester.get() != info.hash) {
- LOG_GENERAL ("Existing frame %1 failed hash check", _first_nonexistant_frame);
+ LOG_GENERAL ("Existing frame %1 failed hash check", frame);
ok = false;
}
}
diff --git a/src/lib/reel_writer.h b/src/lib/reel_writer.h
index dd98f0c49..96f6ea049 100644
--- a/src/lib/reel_writer.h
+++ b/src/lib/reel_writer.h
@@ -87,7 +87,7 @@ private:
void write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const;
long frame_info_position (Frame frame, Eyes eyes) const;
void check_existing_picture_asset ();
- bool existing_picture_frame_ok (FILE* asset_file, FILE* info_file) const;
+ bool existing_picture_frame_ok (FILE* asset_file, FILE* info_file, int frame) const;
boost::shared_ptr<const Film> _film;