summaryrefslogtreecommitdiff
path: root/src/lib/writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/writer.cc')
-rw-r--r--src/lib/writer.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 6601fb2fe..b3d2fdb1c 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -204,8 +204,10 @@ try
}
lock.lock ();
- if (_film->length ()) {
- _job->set_progress (float(_full_written + _fake_written + _repeat_written) / _film->time_to_video_frames (_film->length()));
+ if (_film->length_with_loop()) {
+ _job->set_progress (
+ float (_full_written + _fake_written + _repeat_written) / _film->time_to_video_frames (_film->length_with_loop())
+ );
}
++_last_written_frame;
@@ -358,15 +360,19 @@ Writer::check_existing_picture_mxf ()
/* Read the data from the MXF and hash it */
fseek (mxf, info.offset, SEEK_SET);
EncodedData data (info.size);
- fread (data.data(), 1, data.size(), mxf);
- string const existing_hash = md5_digest (data.data(), data.size());
+ size_t const read = fread (data.data(), 1, data.size(), mxf);
+ if (read != static_cast<size_t> (data.size ())) {
+ _film->log()->log (String::compose ("Existing frame %1 is incomplete", _first_nonexistant_frame));
+ break;
+ }
+ string const existing_hash = md5_digest (data.data(), data.size());
if (existing_hash != info.hash) {
- _film->log()->log (String::compose (N_("Existing frame %1 failed hash check"), _first_nonexistant_frame));
+ _film->log()->log (String::compose ("Existing frame %1 failed hash check", _first_nonexistant_frame));
break;
}
- _film->log()->log (String::compose (N_("Have existing frame %1"), _first_nonexistant_frame));
+ _film->log()->log (String::compose ("Have existing frame %1", _first_nonexistant_frame));
++_first_nonexistant_frame;
}