X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fmxf.h;h=f0ad4bd837cf2671312a6194a9467f195ae271b7;hb=491ac453512ac1982f62fc0d2a310586427601d7;hp=525ac701c1b0542d13dfc57b63cc8da35a08f49b;hpb=5cb09148a9d3456727459b7d41b8c36b0ca277b9;p=libdcp.git diff --git a/src/mxf.h b/src/mxf.h index 525ac701..f0ad4bd8 100644 --- a/src/mxf.h +++ b/src/mxf.h @@ -30,6 +30,10 @@ namespace ASDCP { class AESDecContext; } +/* Undefine some stuff that the OS X 10.5 SDK defines */ +#undef Key +#undef set_key + namespace dcp { @@ -45,13 +49,10 @@ public: MXF (boost::filesystem::path file); ~MXF (); - /** @return the 4-character key type for this MXF (MDIK, MDAK, etc.) */ - virtual std::string key_type () const = 0; - bool equals ( - boost::shared_ptr other, + boost::shared_ptr other, EqualityOptions opt, - boost::function note + NoteHandler note ) const; /** Fill in a ADSCP::WriteInfo struct. @@ -101,13 +102,29 @@ public: return _metadata; } -protected: - std::string pkl_type () const { - return "application/x-smpte-mxf"; + Fraction edit_rate () const { + return _edit_rate; + } + + /** @return The total length of this content in video frames. + * The amount of content presented may be less than this. + */ + int64_t intrinsic_duration () const { + return _intrinsic_duration; } +protected: + friend class MXFWriter; + + std::string pkl_type (Standard standard) const; void read_writer_info (ASDCP::WriterInfo const &); + Fraction _edit_rate; + /** The total length of this content in video frames. The amount of + * content presented may be less than this. + */ + int64_t _intrinsic_duration; + ASDCP::AESEncContext* _encryption_context; ASDCP::AESDecContext* _decryption_context; /** ID of the key used for encryption/decryption, or an empty string */