X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Freel_picture_asset.h;h=1611221fc32a777be7f0a174e91aa6a46aedeff0;hb=f0a6d7b5b8d16b8b47917cd30b340917f5c62fc5;hp=7ab92228f369eadd209d9f5be5b62342c697aa24;hpb=da228f37426ac999f02e03e558acef5501b22361;p=libdcp.git diff --git a/src/reel_picture_asset.h b/src/reel_picture_asset.h index 7ab92228..1611221f 100644 --- a/src/reel_picture_asset.h +++ b/src/reel_picture_asset.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2015 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,38 +24,54 @@ #ifndef LIBDCP_REEL_PICTURE_ASSET_H #define LIBDCP_REEL_PICTURE_ASSET_H -#include "reel_mxf_asset.h" -#include "picture_mxf.h" +#include "reel_mxf.h" +#include "reel_asset.h" +#include "picture_asset.h" namespace dcp { /** @class ReelPictureAsset - * @brief Part of a Reel's description which refers to a picture MXF. + * @brief Part of a Reel's description which refers to a picture asset. */ -class ReelPictureAsset : public ReelMXFAsset +class ReelPictureAsset : public ReelAsset, public ReelMXF { public: ReelPictureAsset (); - ReelPictureAsset (boost::shared_ptr content, int64_t entry_point); + ReelPictureAsset (boost::shared_ptr asset, int64_t entry_point); ReelPictureAsset (boost::shared_ptr); virtual void write_to_cpl (xmlpp::Node* node, Standard standard) const; + virtual bool equals (boost::shared_ptr, EqualityOptions, NoteHandler) const; - boost::shared_ptr mxf () { - return boost::dynamic_pointer_cast (_content.object ()); + /** @return the PictureAsset that this object refers to */ + boost::shared_ptr asset () const { + return asset_of_type (); } + /** @return the PictureAsset that this object refers to */ + boost::shared_ptr asset () { + return asset_of_type (); + } + + /** @return picture frame rate */ Fraction frame_rate () const { return _frame_rate; } + /** Set the ScreenAspectRatio of this asset. + * @param a New aspect ratio. + */ void set_screen_aspect_ratio (Fraction a) { _screen_aspect_ratio = a; } + Fraction screen_aspect_ratio () const { + return _screen_aspect_ratio; + } + private: std::string key_type () const; - + Fraction _frame_rate; Fraction _screen_aspect_ratio; };