diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-07-25 15:28:11 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-07-25 15:28:11 +0200 |
| commit | d21b1e6f9cbf10148b38e1bc3ca3d4920e39a432 (patch) | |
| tree | b078b7f282c4050ee262ce0e7e340ea5897a1158 /src | |
| parent | e0a7c171e09e2a1034f2443c7d5cf7c6b5971471 (diff) | |
Cleanup: move EqualityOptions into its own file.
Diffstat (limited to 'src')
| -rw-r--r-- | src/asset.cc | 1 | ||||
| -rw-r--r-- | src/asset.h | 1 | ||||
| -rw-r--r-- | src/cpl.cc | 1 | ||||
| -rw-r--r-- | src/dcp.h | 1 | ||||
| -rw-r--r-- | src/equality_options.h | 90 | ||||
| -rw-r--r-- | src/interop_subtitle_asset.cc | 1 | ||||
| -rw-r--r-- | src/mono_picture_asset.cc | 1 | ||||
| -rw-r--r-- | src/picture_asset.cc | 1 | ||||
| -rw-r--r-- | src/reel.cc | 1 | ||||
| -rw-r--r-- | src/reel_asset.cc | 1 | ||||
| -rw-r--r-- | src/reel_file_asset.cc | 1 | ||||
| -rw-r--r-- | src/smpte_subtitle_asset.cc | 1 | ||||
| -rw-r--r-- | src/sound_asset.cc | 1 | ||||
| -rw-r--r-- | src/stereo_picture_asset.cc | 1 | ||||
| -rw-r--r-- | src/subtitle.cc | 1 | ||||
| -rw-r--r-- | src/subtitle.h | 3 | ||||
| -rw-r--r-- | src/subtitle_image.cc | 1 | ||||
| -rw-r--r-- | src/types.h | 39 | ||||
| -rw-r--r-- | src/wscript | 1 |
19 files changed, 109 insertions, 39 deletions
diff --git a/src/asset.cc b/src/asset.cc index abf9c9c8..213d4878 100644 --- a/src/asset.cc +++ b/src/asset.cc @@ -41,6 +41,7 @@ #include "asset_map.h" #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "pkl.h" #include "raw_convert.h" diff --git a/src/asset.h b/src/asset.h index b88b1167..06e12936 100644 --- a/src/asset.h +++ b/src/asset.h @@ -61,6 +61,7 @@ namespace dcp { class AssetMap; +class EqualityOptions; /** @class Asset @@ -41,6 +41,7 @@ #include "compose.hpp" #include "cpl.h" #include "dcp_assert.h" +#include "equality_options.h" #include "local_time.h" #include "metadata.h" #include "raw_convert.h" @@ -72,6 +72,7 @@ class CPL; class CertificateChain; class Content; class DecryptedKDM; +class EqualityOptions; class PKL; class ReadError; class Reel; diff --git a/src/equality_options.h b/src/equality_options.h new file mode 100644 index 00000000..f20e1eb5 --- /dev/null +++ b/src/equality_options.h @@ -0,0 +1,90 @@ +/* + Copyright (C) 2012-2023 Carl Hetherington <cth@carlh.net> + + This file is part of libdcp. + + libdcp is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + libdcp is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with libdcp. If not, see <http://www.gnu.org/licenses/>. + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the + OpenSSL library under certain conditions as described in each + individual source file, and distribute linked combinations + including the two. + + You must obey the GNU General Public License in all respects + for all of the code used other than OpenSSL. If you modify + file(s) with this exception, you may extend this exception to your + version of the file(s), but you are not obligated to do so. If you + do not wish to do so, delete this exception statement from your + version. If you delete this exception statement from all source + files in the program, then also delete it here. +*/ + + +/** @file src/equality_options.h + * @brief Class to describe what equality means when calling Asset::equals(). + */ + + +#ifndef LIBDCP_EQUALITY_OPTIONS_H +#define LIBDCP_EQUALITY_OPTIONS_H + + +namespace dcp { + + +/** @class EqualityOptions + * @brief A class to describe what "equality" means for a particular test. + * + * When comparing things, we want to be able to ignore some differences; + * this class expresses those differences. + * + * It also contains some settings for how the comparison should be done. + */ +class EqualityOptions +{ +public: + /** Construct an EqualityOptions where nothing at all can differ */ + EqualityOptions() = default; + + /** The maximum allowable mean difference in pixel value between two images */ + double max_mean_pixel_error = 0; + /** The maximum standard deviation of the differences in pixel value between two images */ + double max_std_dev_pixel_error = 0; + /** The maximum difference in audio sample value between two soundtracks */ + int max_audio_sample_error = 0; + /** true if the <AnnotationText> nodes of CPLs are allowed to differ */ + bool cpl_annotation_texts_can_differ = false; + /** true if the <AnnotationText> nodes of Reels are allowed to differ */ + bool reel_annotation_texts_can_differ = false; + /** true if <Hash>es in Reels can differ */ + bool reel_hashes_can_differ = false; + /** true if asset hashes can differ */ + bool asset_hashes_can_differ = false; + /** true if IssueDate nodes can differ */ + bool issue_dates_can_differ = false; + bool load_font_nodes_can_differ = false; + bool keep_going = false; + /** true to save the last pair of different image subtitles to the current working directory */ + bool export_differing_subtitles = false; + /** The maximum allowable absolute difference between the vertical position of subtitles */ + float max_subtitle_vertical_position_error = 0; +}; + + +} + + +#endif + diff --git a/src/interop_subtitle_asset.cc b/src/interop_subtitle_asset.cc index e7c1432b..d26143a4 100644 --- a/src/interop_subtitle_asset.cc +++ b/src/interop_subtitle_asset.cc @@ -39,6 +39,7 @@ #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "font_asset.h" #include "file.h" #include "interop_load_font_node.h" diff --git a/src/mono_picture_asset.cc b/src/mono_picture_asset.cc index 934d3aa9..55d3f6ba 100644 --- a/src/mono_picture_asset.cc +++ b/src/mono_picture_asset.cc @@ -39,6 +39,7 @@ #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "mono_picture_asset.h" #include "mono_picture_asset_reader.h" diff --git a/src/picture_asset.cc b/src/picture_asset.cc index 426dbdb1..8dc472ea 100644 --- a/src/picture_asset.cc +++ b/src/picture_asset.cc @@ -39,6 +39,7 @@ #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "j2k_transcode.h" #include "openjpeg_image.h" diff --git a/src/reel.cc b/src/reel.cc index 33a852cc..a8481d59 100644 --- a/src/reel.cc +++ b/src/reel.cc @@ -39,6 +39,7 @@ #include "decrypted_kdm.h" #include "decrypted_kdm_key.h" +#include "equality_options.h" #include "interop_subtitle_asset.h" #include "mono_picture_asset.h" #include "picture_asset.h" diff --git a/src/reel_asset.cc b/src/reel_asset.cc index 5b8f3126..3a3ae731 100644 --- a/src/reel_asset.cc +++ b/src/reel_asset.cc @@ -40,6 +40,7 @@ #include "asset.h" #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "raw_convert.h" #include "reel_asset.h" #include "warnings.h" diff --git a/src/reel_file_asset.cc b/src/reel_file_asset.cc index 51b94879..5fefda27 100644 --- a/src/reel_file_asset.cc +++ b/src/reel_file_asset.cc @@ -38,6 +38,7 @@ #include "asset.h" +#include "equality_options.h" #include "reel_file_asset.h" #include "warnings.h" LIBDCP_DISABLE_WARNINGS diff --git a/src/smpte_subtitle_asset.cc b/src/smpte_subtitle_asset.cc index d5838cd5..7e2bcb73 100644 --- a/src/smpte_subtitle_asset.cc +++ b/src/smpte_subtitle_asset.cc @@ -40,6 +40,7 @@ #include "compose.hpp" #include "crypto_context.h" #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "raw_convert.h" #include "smpte_load_font_node.h" diff --git a/src/sound_asset.cc b/src/sound_asset.cc index d14d3702..57110b4f 100644 --- a/src/sound_asset.cc +++ b/src/sound_asset.cc @@ -39,6 +39,7 @@ #include "compose.hpp" #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "sound_asset.h" #include "sound_asset_reader.h" diff --git a/src/stereo_picture_asset.cc b/src/stereo_picture_asset.cc index 19382902..3fec58ff 100644 --- a/src/stereo_picture_asset.cc +++ b/src/stereo_picture_asset.cc @@ -38,6 +38,7 @@ #include "dcp_assert.h" +#include "equality_options.h" #include "exceptions.h" #include "stereo_picture_asset.h" #include "stereo_picture_asset_reader.h" diff --git a/src/subtitle.cc b/src/subtitle.cc index ecf36464..248d0cff 100644 --- a/src/subtitle.cc +++ b/src/subtitle.cc @@ -39,6 +39,7 @@ #include "compose.hpp" #include "dcp_time.h" +#include "equality_options.h" #include "subtitle.h" diff --git a/src/subtitle.h b/src/subtitle.h index 5b7a4f13..7dae7f1d 100644 --- a/src/subtitle.h +++ b/src/subtitle.h @@ -47,6 +47,9 @@ namespace dcp { +class EqualityOptions; + + class Subtitle { public: diff --git a/src/subtitle_image.cc b/src/subtitle_image.cc index f8f8b570..1ef2e697 100644 --- a/src/subtitle_image.cc +++ b/src/subtitle_image.cc @@ -37,6 +37,7 @@ */ +#include "equality_options.h" #include "subtitle_image.h" #include "util.h" diff --git a/src/types.h b/src/types.h index c7256d0f..98c26955 100644 --- a/src/types.h +++ b/src/types.h @@ -229,45 +229,6 @@ extern bool operator== (Fraction const & a, Fraction const & b); extern bool operator!= (Fraction const & a, Fraction const & b); -/** @class EqualityOptions - * @brief A class to describe what "equality" means for a particular test. - * - * When comparing things, we want to be able to ignore some differences; - * this class expresses those differences. - * - * It also contains some settings for how the comparison should be done. - */ -class EqualityOptions -{ -public: - /** Construct an EqualityOptions where nothing at all can differ */ - EqualityOptions() = default; - - /** The maximum allowable mean difference in pixel value between two images */ - double max_mean_pixel_error = 0; - /** The maximum standard deviation of the differences in pixel value between two images */ - double max_std_dev_pixel_error = 0; - /** The maximum difference in audio sample value between two soundtracks */ - int max_audio_sample_error = 0; - /** true if the <AnnotationText> nodes of CPLs are allowed to differ */ - bool cpl_annotation_texts_can_differ = false; - /** true if the <AnnotationText> nodes of Reels are allowed to differ */ - bool reel_annotation_texts_can_differ = false; - /** true if <Hash>es in Reels can differ */ - bool reel_hashes_can_differ = false; - /** true if asset hashes can differ */ - bool asset_hashes_can_differ = false; - /** true if IssueDate nodes can differ */ - bool issue_dates_can_differ = false; - bool load_font_nodes_can_differ = false; - bool keep_going = false; - /** true to save the last pair of different image subtitles to the current working directory */ - bool export_differing_subtitles = false; - /** The maximum allowable absolute difference between the vertical position of subtitles */ - float max_subtitle_vertical_position_error = 0; -}; - - enum class NoteType { PROGRESS, ERROR, diff --git a/src/wscript b/src/wscript index d16e15fc..a90b2d4e 100644 --- a/src/wscript +++ b/src/wscript @@ -151,6 +151,7 @@ def build(bld): decrypted_kdm.h decrypted_kdm_key.h encrypted_kdm.h + equality_options.h exceptions.h file.h font_asset.h |
