ReelAtmosAsset::ReelAtmosAsset (std::shared_ptr<AtmosAsset> asset, int64_t entry_point)
- : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
- , ReelFileAsset (asset)
+ : ReelFileAsset (asset, asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
, ReelEncryptableAsset (asset->key_id())
{
ReelAtmosAsset::ReelAtmosAsset (std::shared_ptr<const cxml::Node> node)
- : ReelAsset (node)
- , ReelFileAsset (node)
+ : ReelFileAsset (node)
, ReelEncryptableAsset (node)
{
node->ignore_child ("DataType");
/** @class ReelAtmosAsset
* @brief Part of a Reel's description which refers to a Atmos MXF
*/
-class ReelAtmosAsset : public ReelAsset, public ReelFileAsset, public ReelEncryptableAsset
+class ReelAtmosAsset : public ReelFileAsset, public ReelEncryptableAsset
{
public:
ReelAtmosAsset (std::shared_ptr<AtmosAsset> asset, int64_t entry_point);
ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
- : ReelAsset (asset->id(), edit_rate, intrinsic_duration, entry_point)
- , ReelFileAsset (asset)
+ : ReelFileAsset (asset, asset->id(), edit_rate, intrinsic_duration, entry_point)
{
}
ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr<const cxml::Node> node)
- : ReelAsset (node)
- , ReelFileAsset (node)
+ : ReelFileAsset (node)
{
_language = node->optional_string_child ("Language");
}
/** @class ReelClosedCaptionAsset
* @brief Part of a Reel's description which refers to a closed caption XML/MXF file
*/
-class ReelClosedCaptionAsset : public ReelAsset, public ReelFileAsset
+class ReelClosedCaptionAsset : public ReelFileAsset
{
public:
ReelClosedCaptionAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point);
using namespace dcp;
-ReelFileAsset::ReelFileAsset (shared_ptr<Asset> asset)
- : _asset_ref (asset)
+ReelFileAsset::ReelFileAsset (shared_ptr<Asset> asset, std::string id, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
+ : ReelAsset (id, edit_rate, intrinsic_duration, entry_point)
+ , _asset_ref (asset)
, _hash (asset->hash())
{
ReelFileAsset::ReelFileAsset (shared_ptr<const cxml::Node> node)
- : _asset_ref (remove_urn_uuid(node->string_child("Id")))
+ : ReelAsset (node)
+ , _asset_ref (remove_urn_uuid(node->string_child("Id")))
, _hash (node->optional_string_child ("Hash"))
{
#define LIBDCP_REEL_FILE_ASSET_H
+#include "reel_asset.h"
#include "ref.h"
#include <boost/optional.hpp>
#include <string>
namespace dcp {
-class ReelFileAsset
+class ReelFileAsset : public ReelAsset
{
public:
- explicit ReelFileAsset (std::shared_ptr<Asset> asset);
+ ReelFileAsset (std::shared_ptr<Asset> asset, std::string id, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
explicit ReelFileAsset (std::shared_ptr<const cxml::Node> node);
/** @return a Ref to our actual asset */
template <class T>
std::shared_ptr<T> asset_of_type () const {
- return std::dynamic_pointer_cast<T> (_asset_ref.asset ());
+ return std::dynamic_pointer_cast<T>(_asset_ref.asset());
}
template <class T>
std::shared_ptr<T> asset_of_type () {
- return std::dynamic_pointer_cast<T> (_asset_ref.asset ());
+ return std::dynamic_pointer_cast<T>(_asset_ref.asset());
}
/** Reference to the asset (MXF or XML file) that this reel entry
ReelPictureAsset::ReelPictureAsset (shared_ptr<PictureAsset> asset, int64_t entry_point)
- : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
- , ReelFileAsset (asset)
+ : ReelFileAsset (asset, asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
, ReelEncryptableAsset (asset->key_id())
, _frame_rate (asset->frame_rate ())
, _screen_aspect_ratio (asset->screen_aspect_ratio ())
ReelPictureAsset::ReelPictureAsset (shared_ptr<const cxml::Node> node)
- : ReelAsset (node)
- , ReelFileAsset (node)
+ : ReelFileAsset (node)
, ReelEncryptableAsset (node)
{
_frame_rate = Fraction (node->string_child ("FrameRate"));
/** @class ReelPictureAsset
* @brief Part of a Reel's description which refers to a picture asset
*/
-class ReelPictureAsset : public ReelAsset, public ReelFileAsset, public ReelEncryptableAsset
+class ReelPictureAsset : public ReelFileAsset, public ReelEncryptableAsset
{
public:
ReelPictureAsset (std::shared_ptr<PictureAsset> asset, int64_t entry_point);
ReelSoundAsset::ReelSoundAsset (shared_ptr<SoundAsset> asset, int64_t entry_point)
- : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
- , ReelFileAsset (asset)
+ : ReelFileAsset (asset, asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point)
, ReelEncryptableAsset (asset->key_id())
{
ReelSoundAsset::ReelSoundAsset (shared_ptr<const cxml::Node> node)
- : ReelAsset (node)
- , ReelFileAsset (node)
+ : ReelFileAsset (node)
, ReelEncryptableAsset (node)
{
node->ignore_child ("Language");
/** @class ReelSoundAsset
* @brief Part of a Reel's description which refers to a sound asset
*/
-class ReelSoundAsset : public ReelAsset, public ReelFileAsset, public ReelEncryptableAsset
+class ReelSoundAsset : public ReelFileAsset, public ReelEncryptableAsset
{
public:
ReelSoundAsset (std::shared_ptr<dcp::SoundAsset> content, int64_t entry_point);
ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
- : ReelAsset (asset->id(), edit_rate, intrinsic_duration, entry_point)
- , ReelFileAsset (asset)
+ : ReelFileAsset (asset, asset->id(), edit_rate, intrinsic_duration, entry_point)
{
}
ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr<const cxml::Node> node)
- : ReelAsset (node)
- , ReelFileAsset (node)
+ : ReelFileAsset (node)
{
_language = node->optional_string_child("Language");
}
/** @class ReelSubtitleAsset
* @brief Part of a Reel's description which refers to a subtitle XML/MXF file
*/
-class ReelSubtitleAsset : public ReelAsset, public ReelFileAsset
+class ReelSubtitleAsset : public ReelFileAsset
{
public:
ReelSubtitleAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);