diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-01-23 09:48:00 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-01-23 09:48:00 +0100 |
| commit | a65c9be7a5c455111b44b24690fe162413268b9f (patch) | |
| tree | e6ffc7792fe6040f3691695688ee5ce24b330458 /src/atmos_asset.cc | |
| parent | 302a059052e2e55345e91b5300e2389b87bd7f0a (diff) | |
Small bits of pre-release tidying.
Diffstat (limited to 'src/atmos_asset.cc')
| -rw-r--r-- | src/atmos_asset.cc | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/atmos_asset.cc b/src/atmos_asset.cc index 4b13ab4d..b8743092 100644 --- a/src/atmos_asset.cc +++ b/src/atmos_asset.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington <cth@carlh.net> + Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net> This file is part of libdcp. @@ -31,17 +31,20 @@ files in the program, then also delete it here. */ + #include "atmos_asset.h" #include "atmos_asset_reader.h" #include "atmos_asset_writer.h" #include "exceptions.h" #include <asdcp/AS_DCP.h> + using std::string; using std::shared_ptr; using std::make_shared; using namespace dcp; + AtmosAsset::AtmosAsset (Fraction edit_rate, int first_frame, int max_channel_count, int max_object_count, int atmos_version) : MXF (Standard::SMPTE) , _edit_rate (edit_rate) @@ -55,19 +58,20 @@ AtmosAsset::AtmosAsset (Fraction edit_rate, int first_frame, int max_channel_cou } + AtmosAsset::AtmosAsset (boost::filesystem::path file) : Asset (file) , MXF (Standard::SMPTE) { ASDCP::ATMOS::MXFReader reader; - Kumu::Result_t r = reader.OpenRead (file.string().c_str()); + auto r = reader.OpenRead (file.string().c_str()); if (ASDCP_FAILURE (r)) { - boost::throw_exception (MXFFileError ("could not open MXF file for reading", file.string(), r)); + boost::throw_exception (MXFFileError("could not open MXF file for reading", file.string(), r)); } ASDCP::ATMOS::AtmosDescriptor desc; if (ASDCP_FAILURE (reader.FillAtmosDescriptor (desc))) { - boost::throw_exception (ReadError ("could not read Atmos MXF information")); + boost::throw_exception (ReadError("could not read Atmos MXF information")); } _edit_rate = Fraction (desc.EditRate.Numerator, desc.EditRate.Denominator); @@ -77,33 +81,37 @@ AtmosAsset::AtmosAsset (boost::filesystem::path file) _max_object_count = desc.MaxObjectCount; char id[64]; - Kumu::bin2UUIDhex (desc.AtmosID, ASDCP::UUIDlen, id, sizeof (id)); + Kumu::bin2UUIDhex (desc.AtmosID, ASDCP::UUIDlen, id, sizeof(id)); _atmos_id = id; _atmos_version = desc.AtmosVersion; ASDCP::WriterInfo info; - if (ASDCP_FAILURE (reader.FillWriterInfo (info))) { + if (ASDCP_FAILURE (reader.FillWriterInfo(info))) { boost::throw_exception (ReadError ("could not read audio MXF information")); } _id = read_writer_info (info); } + string AtmosAsset::static_pkl_type (Standard) { return "application/mxf"; } + shared_ptr<AtmosAssetReader> AtmosAsset::start_read () const { return make_shared<AtmosAssetReader>(this, key(), Standard::SMPTE); } + shared_ptr<AtmosAssetWriter> AtmosAsset::start_write (boost::filesystem::path file) { - return shared_ptr<AtmosAssetWriter> (new AtmosAssetWriter (this, file)); + /* Can't use make_shared here since the constructor is protected */ + return shared_ptr<AtmosAssetWriter>(new AtmosAssetWriter(this, file)); } |
