X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fmono_picture_mxf.cc;h=09311a01fb0a9cf39e131ee4a051e646879c91b4;hb=edf35a7acb05289dc024733efd6e13205def5174;hp=699cfc230ea335b7e9fe3e87987609e065de79ac;hpb=2cc2026701c9e8268ba154ec9330c5d56cbdc240;p=libdcp.git diff --git a/src/mono_picture_mxf.cc b/src/mono_picture_mxf.cc index 699cfc23..09311a01 100644 --- a/src/mono_picture_mxf.cc +++ b/src/mono_picture_mxf.cc @@ -22,13 +22,14 @@ #include "AS_DCP.h" #include "KM_fileio.h" #include "exceptions.h" +#include "dcp_assert.h" #include "mono_picture_frame.h" +#include "compose.hpp" using std::string; using std::vector; using boost::shared_ptr; using boost::dynamic_pointer_cast; -using boost::lexical_cast; using namespace dcp; MonoPictureMXF::MonoPictureMXF (boost::filesystem::path file) @@ -46,6 +47,13 @@ MonoPictureMXF::MonoPictureMXF (boost::filesystem::path file) } read_picture_descriptor (desc); + + ASDCP::WriterInfo info; + if (ASDCP_FAILURE (reader.FillWriterInfo (info))) { + boost::throw_exception (DCPReadError ("could not read video MXF information")); + } + + read_writer_info (info); } MonoPictureMXF::MonoPictureMXF (Fraction edit_rate) @@ -61,8 +69,12 @@ MonoPictureMXF::get_frame (int n) const } bool -MonoPictureMXF::equals (shared_ptr other, EqualityOptions opt, boost::function note) const +MonoPictureMXF::equals (shared_ptr other, EqualityOptions opt, NoteHandler note) const { + if (!dynamic_pointer_cast (other)) { + return false; + } + if (!MXF::equals (other, opt, note)) { return false; } @@ -93,14 +105,14 @@ MonoPictureMXF::equals (shared_ptr other, EqualityOptions opt, bo } shared_ptr other_picture = dynamic_pointer_cast (other); - assert (other_picture); + DCP_ASSERT (other_picture); for (int i = 0; i < _intrinsic_duration; ++i) { if (i >= other_picture->intrinsic_duration()) { return false; } - note (PROGRESS, "Comparing video frame " + lexical_cast (i) + " of " + lexical_cast (_intrinsic_duration)); + note (DCP_PROGRESS, String::compose ("Comparing video frame %1 of %2", i, _intrinsic_duration)); shared_ptr frame_A = get_frame (i); shared_ptr frame_B = other_picture->get_frame (i); @@ -128,9 +140,3 @@ MonoPictureMXF::cpl_node_name () const { return "MainPicture"; } - -int -MonoPictureMXF::edit_rate_factor () const -{ - return 1; -}