summaryrefslogtreecommitdiff
path: root/src/atmos_asset.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-01-23 09:48:00 +0100
committerCarl Hetherington <cth@carlh.net>2021-01-23 09:48:00 +0100
commita65c9be7a5c455111b44b24690fe162413268b9f (patch)
treee6ffc7792fe6040f3691695688ee5ce24b330458 /src/atmos_asset.cc
parent302a059052e2e55345e91b5300e2389b87bd7f0a (diff)
Small bits of pre-release tidying.
Diffstat (limited to 'src/atmos_asset.cc')
-rw-r--r--src/atmos_asset.cc22
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));
}