summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/reel_writer.cc')
-rw-r--r--src/lib/reel_writer.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index a27d7f63e..3a8a95ab1 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -29,6 +29,7 @@
#include "film_util.h"
#include "image.h"
#include "image_png.h"
+#include "info_file_checker.h"
#include "job.h"
#include "j2k_frame_info.h"
#include "log.h"
@@ -757,10 +758,23 @@ try
}
int64_t total_done = 0;
+
+ auto progress = [&total_done, total_size, set_progress](int64_t done, int64_t) {
+ set_progress(total_done + done, total_size);
+ };
+
for (auto asset: assets) {
- asset->hash([&total_done, total_size, set_progress](int64_t done, int64_t) {
- set_progress(total_done + done, total_size);
- });
+ if (asset == _j2k_picture_asset && Config::instance()->check_disk_writes()) {
+ try {
+ InfoFileChecker checker(_info_file);
+ asset->hash(progress, boost::bind(&InfoFileChecker::check, &checker, _1, _2, _3));
+ } catch (OpenFileError&) {
+ LOG_ERROR_NC("Could not open info file to check disk writes");
+ asset->hash(progress);
+ }
+ } else {
+ asset->hash(progress);
+ }
total_done += asset->file() ? boost::filesystem::file_size(*asset->file()) : 0;
}