47 #include <boost/function.hpp>
61 struct dcp_add_kdm_test;
69 class ReelPictureAsset;
72 class ReelMarkersAsset;
73 class ReelClosedCaptionAsset;
85 std::shared_ptr<ReelPictureAsset> picture,
86 std::shared_ptr<ReelSoundAsset> sound = std::shared_ptr<ReelSoundAsset> (),
87 std::shared_ptr<ReelTextAsset> subtitle = std::shared_ptr<ReelTextAsset> (),
88 std::shared_ptr<ReelMarkersAsset> markers = std::shared_ptr<ReelMarkersAsset> (),
89 std::shared_ptr<ReelAtmosAsset> atmos = std::shared_ptr<ReelAtmosAsset> ()
91 : _main_picture (picture)
93 , _main_subtitle (subtitle)
94 , _main_markers (markers)
98 explicit Reel (std::shared_ptr<const cxml::Node>, dcp::Standard standard);
100 std::shared_ptr<ReelPictureAsset> main_picture ()
const {
101 return _main_picture;
104 std::shared_ptr<ReelSoundAsset> main_sound ()
const {
108 std::shared_ptr<ReelTextAsset> main_subtitle ()
const {
109 return _main_subtitle;
112 std::shared_ptr<ReelTextAsset> main_caption()
const {
113 return _main_caption;
116 std::shared_ptr<ReelMarkersAsset> main_markers ()
const {
117 return _main_markers;
120 std::vector<std::shared_ptr<ReelTextAsset>> closed_subtitles()
const {
121 return _closed_subtitles;
124 std::vector<std::shared_ptr<ReelTextAsset>> closed_captions ()
const {
125 return _closed_captions;
128 std::shared_ptr<ReelAtmosAsset> atmos ()
const {
132 int64_t duration ()
const;
134 void add (std::shared_ptr<ReelAsset> asset);
136 std::vector<std::shared_ptr<ReelAsset>> assets ()
const;
138 xmlpp::Element* write_to_cpl (xmlpp::Element* node, Standard standard)
const;
140 bool any_encrypted ()
const;
141 bool all_encrypted ()
const;
143 bool equals(std::shared_ptr<const Reel> other,
EqualityOptions const& opt, NoteHandler notes)
const;
147 void resolve_refs (std::vector<std::shared_ptr<Asset>>);
150 friend struct ::dcp_add_kdm_test;
154 std::shared_ptr<ReelPictureAsset> _main_picture;
155 std::shared_ptr<ReelSoundAsset> _main_sound;
156 std::shared_ptr<ReelTextAsset> _main_subtitle;
157 std::shared_ptr<ReelTextAsset> _main_caption;
158 std::shared_ptr<ReelMarkersAsset> _main_markers;
159 std::vector<std::shared_ptr<ReelTextAsset>> _closed_subtitles;
160 std::vector<std::shared_ptr<ReelTextAsset>> _closed_captions;
161 std::shared_ptr<ReelAtmosAsset> _atmos;
163 std::vector<dcp::DecryptedKDM> _kdms;
A class to describe what "equality" means for a particular test.
Some part of a DCP that has a UUID.
A reel within a DCP; the part which actually refers to picture, sound, subtitle, marker and Atmos dat...
Namespace for everything in libdcp.