diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-08-18 22:11:59 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-08-18 22:11:59 +0100 |
| commit | b89cc774a89867caa97db4b082655569c7d69432 (patch) | |
| tree | 7a2381e431ac37c1e23752ad5970ded4dd99f56a /src/lib | |
| parent | e4b30a67b690755a3cd44678bd0671f06af8a36e (diff) | |
Add colour conversion identifier to video identifier.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/colour_conversion.cc | 21 | ||||
| -rw-r--r-- | src/lib/colour_conversion.h | 1 | ||||
| -rw-r--r-- | src/lib/video_content.cc | 3 |
3 files changed, 24 insertions, 1 deletions
diff --git a/src/lib/colour_conversion.cc b/src/lib/colour_conversion.cc index cc25ccc67..5f8064dab 100644 --- a/src/lib/colour_conversion.cc +++ b/src/lib/colour_conversion.cc @@ -23,6 +23,7 @@ #include <libcxml/cxml.h> #include "config.h" #include "colour_conversion.h" +#include "util.h" #include "i18n.h" @@ -116,6 +117,26 @@ ColourConversion::preset () const return i; } +string +ColourConversion::identifier () const +{ + double numbers[12]; + + int n = 0; + numbers[n++] = input_gamma; + numbers[n++] = input_gamma_linearised; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + numbers[n++] = matrix (i, j); + } + } + numbers[n++] = output_gamma; + + assert (n == 12); + + return md5_digest (numbers, 12 * sizeof (double)); +} + PresetColourConversion::PresetColourConversion () : name (_("Untitled")) { diff --git a/src/lib/colour_conversion.h b/src/lib/colour_conversion.h index f6b5bc9f3..893148466 100644 --- a/src/lib/colour_conversion.h +++ b/src/lib/colour_conversion.h @@ -45,6 +45,7 @@ public: ColourConversion (boost::shared_ptr<cxml::Node>); virtual void as_xml (xmlpp::Node *) const; + std::string identifier () const; boost::optional<size_t> preset () const; diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 8b0ec4c99..3f6e171a5 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -225,7 +225,8 @@ VideoContent::identifier () const << "_" << crop().left << "_" << crop().right << "_" << crop().top - << "_" << crop().bottom; + << "_" << crop().bottom + << "_" << colour_conversion().identifier (); if (ratio()) { s << "_" << ratio()->id (); |
