diff options
Diffstat (limited to 'test/test.cc')
| -rw-r--r-- | test/test.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test.cc b/test/test.cc index 7e0f57340..699dea6c3 100644 --- a/test/test.cc +++ b/test/test.cc @@ -34,6 +34,7 @@ #include "lib/ratio.h" #include "lib/log_entry.h" #include <dcp/dcp.h> +#include <asdcp/AS_DCP.h> #include <sndfile.h> #include <libxml++/libxml++.h> #include <Magick++.h> @@ -163,6 +164,32 @@ check_wav_file (boost::filesystem::path ref, boost::filesystem::path check) } void +check_mxf_audio_file (boost::filesystem::path ref, boost::filesystem::path check) +{ + ASDCP::PCM::MXFReader ref_reader; + BOOST_REQUIRE (!ASDCP_FAILURE (ref_reader.OpenRead (ref.string().c_str()))); + + ASDCP::PCM::AudioDescriptor ref_desc; + BOOST_REQUIRE (!ASDCP_FAILURE (ref_reader.FillAudioDescriptor (ref_desc))); + + ASDCP::PCM::MXFReader check_reader; + BOOST_REQUIRE (!ASDCP_FAILURE (check_reader.OpenRead (check.string().c_str()))); + + ASDCP::PCM::AudioDescriptor check_desc; + BOOST_REQUIRE (!ASDCP_FAILURE (check_reader.FillAudioDescriptor (check_desc))); + + BOOST_REQUIRE_EQUAL (ref_desc.ContainerDuration, check_desc.ContainerDuration); + + ASDCP::PCM::FrameBuffer ref_buffer (Kumu::Megabyte); + ASDCP::PCM::FrameBuffer check_buffer (Kumu::Megabyte); + for (size_t i = 0; i < ref_desc.ContainerDuration; ++i) { + ref_reader.ReadFrame (i, ref_buffer, 0); + check_reader.ReadFrame (i, check_buffer, 0); + BOOST_REQUIRE (memcmp(ref_buffer.RoData(), check_buffer.RoData(), ref_buffer.Size()) == 0); + } +} + +void check_image (boost::filesystem::path ref, boost::filesystem::path check) { #ifdef DCPOMATIC_IMAGE_MAGICK |
