diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-06-17 01:08:48 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-06-17 01:08:48 +0200 |
| commit | 54ca5a01f0648d2a5101fab0f50b41d8c90612e4 (patch) | |
| tree | d792cc132ab51f102883d737ac26788427abac19 /src/lib/reel_writer.cc | |
| parent | 30e262f486c8390b7c9a1a797471082f90adf61b (diff) | |
Allow more complete control over the libdcp/DCP-o-matic metadata written to various places.
Diffstat (limited to 'src/lib/reel_writer.cc')
| -rw-r--r-- | src/lib/reel_writer.cc | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 06d20e7c8..3697fc7b1 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -27,6 +27,7 @@ #include "digester.h" #include "font.h" #include "compose.hpp" +#include "config.h" #include "audio_buffers.h" #include "image.h" #include <dcp/mono_picture_asset.h> @@ -65,6 +66,23 @@ using namespace dcpomatic; int const ReelWriter::_info_size = 48; +static dcp::MXFMetadata +mxf_metadata () +{ + dcp::MXFMetadata meta; + Config* config = Config::instance(); + if (!config->dcp_company_name().empty()) { + meta.company_name = config->dcp_company_name (); + } + if (!config->dcp_product_name().empty()) { + meta.product_name = config->dcp_product_name (); + } + if (!config->dcp_product_version().empty()) { + meta.product_version = config->dcp_product_version (); + } + return meta; +} + /** @param job Related job, or 0 */ ReelWriter::ReelWriter ( shared_ptr<const Film> film, DCPTimePeriod period, shared_ptr<Job> job, int reel_index, int reel_count, optional<string> content_summary @@ -113,6 +131,7 @@ ReelWriter::ReelWriter ( } _picture_asset->set_size (_film->frame_size()); + _picture_asset->set_metadata (mxf_metadata()); if (_film->encrypted ()) { _picture_asset->set_key (_film->key()); @@ -136,6 +155,8 @@ ReelWriter::ReelWriter ( new dcp::SoundAsset (dcp::Fraction (_film->video_frame_rate(), 1), _film->audio_frame_rate (), _film->audio_channels (), standard) ); + _sound_asset->set_metadata (mxf_metadata()); + if (_film->encrypted ()) { _sound_asset->set_key (_film->key ()); } @@ -634,6 +655,7 @@ ReelWriter::write (PlayerText subs, TextType type, optional<DCPTextTrack> track, } else { shared_ptr<dcp::SMPTESubtitleAsset> s (new dcp::SMPTESubtitleAsset ()); s->set_content_title_text (_film->name ()); + s->set_metadata (mxf_metadata()); if (type == TEXT_OPEN_SUBTITLE && !lang.empty()) { s->set_language (lang); } else { |
