From: Carl Hetherington Date: Thu, 23 Dec 2021 22:33:56 +0000 (+0100) Subject: Extract simple_digest(). X-Git-Tag: checked-for-v2.16.x~123 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=9da422177392fb9e036bf6ead51f71ee6f3b7d9c;hp=9f666a0f0191406ef444b48916ae4bb15bd1fca1 Extract simple_digest(). --- diff --git a/src/lib/content.cc b/src/lib/content.cc index 5b5f0753c..2292c1f9d 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -169,15 +169,11 @@ Content::as_xml (xmlpp::Node* node, bool with_paths) const string Content::calculate_digest () const { - boost::mutex::scoped_lock lm (_mutex); - auto p = _paths; - lm.unlock (); - /* Some content files are very big, so we use a poor man's digest here: a digest of the first and last 1e6 bytes with the size of the first file tacked on the end as a string. */ - return digest_head_tail(p, 1000000) + raw_convert(boost::filesystem::file_size(p.front())); + return simple_digest (paths()); } diff --git a/src/lib/util.cc b/src/lib/util.cc index c165a5129..64fdd6a37 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -529,6 +529,14 @@ digest_head_tail (vector files, boost::uintmax_t size) return digester.get (); } + +string +simple_digest (vector paths) +{ + return digest_head_tail(paths, 1000000) + raw_convert(boost::filesystem::file_size(paths.front())); +} + + /** Round a number up to the nearest multiple of another number. * @param c Index. * @param stride Array of numbers to round, indexed by c. diff --git a/src/lib/util.h b/src/lib/util.h index 10c5678ff..1296dc789 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -94,6 +94,7 @@ extern void dcpomatic_setup (); extern void dcpomatic_setup_path_encoding (); extern void dcpomatic_setup_gettext_i18n (std::string); extern std::string digest_head_tail (std::vector, boost::uintmax_t size); +extern std::string simple_digest (std::vector paths); extern void ensure_ui_thread (); extern std::string audio_channel_name (int); extern std::string short_audio_channel_name (int);