diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-06-03 14:30:42 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-06-03 14:30:42 +0100 |
| commit | c5b3d91fab31fde4c21e1cc5bb5adb1d6d26fcca (patch) | |
| tree | a88349c4c4e6e8304d92161529a5ca3dc5271a7b /src/lib/util.cc | |
| parent | fd26b3243015824bebe8ec41c6b4a0d81748e81a (diff) | |
Include audio mapping in the digest used to distinguish different
audio analyses so that the analyses are re-computed when the mapping
changes.
Reported-by: Matthias Damm
Diffstat (limited to 'src/lib/util.cc')
| -rw-r--r-- | src/lib/util.cc | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc index a5111b7dc..e81165365 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -44,7 +44,6 @@ #endif #include <glib.h> #include <openjpeg.h> -#include <openssl/md5.h> #include <magick/MagickCore.h> #include <magick/version.h> #include <libdcp/version.h> @@ -70,6 +69,7 @@ extern "C" { #include "job.h" #include "cross.h" #include "video_content.h" +#include "md5_digester.h" #ifdef DCPOMATIC_WINDOWS #include "stack.hpp" #endif @@ -424,23 +424,6 @@ split_at_spaces_considering_quotes (string s) return out; } -string -md5_digest (void const * data, int size) -{ - MD5_CTX md5_context; - MD5_Init (&md5_context); - MD5_Update (&md5_context, data, size); - unsigned char digest[MD5_DIGEST_LENGTH]; - MD5_Final (digest, &md5_context); - - stringstream s; - for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { - s << std::hex << std::setfill('0') << std::setw(2) << ((int) digest[i]); - } - - return s.str (); -} - /** @param job Optional job for which to report progress */ string md5_digest (vector<boost::filesystem::path> files, shared_ptr<Job> job) @@ -448,8 +431,7 @@ md5_digest (vector<boost::filesystem::path> files, shared_ptr<Job> job) boost::uintmax_t const buffer_size = 64 * 1024; char buffer[buffer_size]; - MD5_CTX md5_context; - MD5_Init (&md5_context); + MD5Digester digester; vector<int64_t> sizes; for (size_t i = 0; i < files.size(); ++i) { @@ -468,7 +450,7 @@ md5_digest (vector<boost::filesystem::path> files, shared_ptr<Job> job) while (remaining > 0) { int const t = min (remaining, buffer_size); fread (buffer, 1, t, f); - MD5_Update (&md5_context, buffer, t); + digester.add (buffer, t); remaining -= t; if (job) { @@ -479,15 +461,7 @@ md5_digest (vector<boost::filesystem::path> files, shared_ptr<Job> job) fclose (f); } - unsigned char digest[MD5_DIGEST_LENGTH]; - MD5_Final (digest, &md5_context); - - stringstream s; - for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { - s << std::hex << std::setfill('0') << std::setw(2) << ((int) digest[i]); - } - - return s.str (); + return digester.get (); } static bool |
