class CPL : public Asset
{
public:
- CPL (std::string annotation_text, ContentKind content_kind);
+ CPL (std::string annotation_text, ContentKind content_kind, Standard standard);
/** Construct a CPL object from a XML file */
explicit CPL (boost::filesystem::path file);
std::shared_ptr<const Asset> other,
EqualityOptions options,
NoteHandler note
- ) const;
+ ) const override;
/** Add a reel to this CPL
* @param reel Reel to add
/** Write an CompositonPlaylist XML file
*
* @param file Filename to write
- * @param standard INTEROP or SMPTE
* @param signer Signer to sign the CPL, or 0 to add no signature
*/
void write_xml (
boost::filesystem::path file,
- Standard standard,
std::shared_ptr<const CertificateChain>
) const;
void set_additional_subtitle_languages (std::vector<dcp::LanguageTag> const& lang);
- boost::optional<Standard> standard () const {
+ Standard standard () const {
return _standard;
}
protected:
/** @return type string for PKLs for this asset */
- std::string pkl_type (Standard standard) const;
+ std::string pkl_type (Standard standard) const override;
private:
friend struct ::verify_invalid_language3;
ContentKind _content_kind; ///< <ContentKind>
std::vector<ContentVersion> _content_versions;
std::vector<Rating> _ratings;
+ /** ID for CompositionMetadataAsset tag; either a random one, ready for writing a new tag,
+ * or the one read in from the existing CPL.
+ */
+ std::string _cpl_metadata_id = make_uuid();
/** Human-readable name of the composition, without any metadata (i.e. no -FTR-EN-XX- etc.) */
boost::optional<std::string> _full_content_title_text;
boost::optional<std::string> _full_content_title_text_language;
std::vector<std::shared_ptr<Reel>> _reels;
/** Standard of CPL that was read in */
- boost::optional<Standard> _standard;
+ Standard _standard;
};