summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-06-17 01:08:48 +0200
committerCarl Hetherington <cth@carlh.net>2020-06-17 01:08:48 +0200
commit54ca5a01f0648d2a5101fab0f50b41d8c90612e4 (patch)
treed792cc132ab51f102883d737ac26788427abac19 /src/lib/reel_writer.cc
parent30e262f486c8390b7c9a1a797471082f90adf61b (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.cc24
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 {