diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-10-03 11:00:30 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-10-03 11:00:30 +0100 |
| commit | aa81915df29d59ac69276a23ce68e599cae64e70 (patch) | |
| tree | 238efa37c010922a20c14249cd3d371f216ba2d8 /src | |
| parent | ec7448895a77f67189e775c8eb0365cc3d636780 (diff) | |
Allow some error in audio when comparing.
Diffstat (limited to 'src')
| -rw-r--r-- | src/sound_asset.cc | 7 | ||||
| -rw-r--r-- | src/types.h | 7 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/sound_asset.cc b/src/sound_asset.cc index 9f27a894..833d89dc 100644 --- a/src/sound_asset.cc +++ b/src/sound_asset.cc @@ -254,16 +254,13 @@ SoundAsset::equals (shared_ptr<const Asset> other, EqualityOptions opt, list<str } if (memcmp (buffer_A.RoData(), buffer_B.RoData(), buffer_A.Size()) != 0) { - notes.push_back ("PCM data for MXF frame " + lexical_cast<string>(i) + " differ"); - for (uint32_t i = 0; i < buffer_A.Size(); ++i) { int const d = abs (buffer_A.RoData()[i] - buffer_B.RoData()[i]); - if (d) { - notes.push_back ("First difference is " + lexical_cast<string> (d)); + if (d > opt.max_audio_sample_error) { + notes.push_back ("PCM data difference of " + lexical_cast<string> (d)); return false; } } - return false; } } diff --git a/src/types.h b/src/types.h index 71ab797b..3acded36 100644 --- a/src/types.h +++ b/src/types.h @@ -86,8 +86,15 @@ extern bool operator== (Fraction const & a, Fraction const & b); extern bool operator!= (Fraction const & a, Fraction const & b); struct EqualityOptions { + EqualityOptions () + : max_mean_pixel_error (0) + , max_std_dev_pixel_error (0) + , max_audio_sample_error (0) + {} + double max_mean_pixel_error; double max_std_dev_pixel_error; + int max_audio_sample_error; }; class Color |
