summaryrefslogtreecommitdiff
path: root/src/lib/film.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/film.cc')
-rw-r--r--src/lib/film.cc68
1 files changed, 38 insertions, 30 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 9dce80071..fb3026039 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -90,8 +90,10 @@ using libdcp::raw_convert;
* Subtitle offset changed to subtitle y offset, and subtitle x offset added.
* 7 -> 8
* Use <Scale> tag in <VideoContent> rather than <Ratio>.
+ * 8 -> 9
+ * DCI -> ISDCF
*/
-int const Film::current_state_version = 8;
+int const Film::current_state_version = 9;
/** Construct a Film object in a given directory.
*
@@ -100,7 +102,7 @@ int const Film::current_state_version = 8;
Film::Film (boost::filesystem::path dir, bool log)
: _playlist (new Playlist)
- , _use_dci_name (true)
+ , _use_isdcf_name (true)
, _dcp_content_type (Config::instance()->default_dcp_content_type ())
, _container (Config::instance()->default_container ())
, _resolution (RESOLUTION_2K)
@@ -109,7 +111,7 @@ Film::Film (boost::filesystem::path dir, bool log)
, _signed (true)
, _encrypted (false)
, _j2k_bandwidth (Config::instance()->default_j2k_bandwidth ())
- , _dci_metadata (Config::instance()->default_dci_metadata ())
+ , _isdcf_metadata (Config::instance()->default_isdcf_metadata ())
, _video_frame_rate (24)
, _audio_channels (6)
, _three_d (false)
@@ -118,7 +120,7 @@ Film::Film (boost::filesystem::path dir, bool log)
, _state_version (current_state_version)
, _dirty (false)
{
- set_dci_date_today ();
+ set_isdcf_date_today ();
_playlist->Changed.connect (bind (&Film::playlist_changed, this));
_playlist->ContentChanged.connect (bind (&Film::playlist_content_changed, this, _1, _2));
@@ -245,7 +247,7 @@ Film::audio_analysis_dir () const
void
Film::make_dcp ()
{
- set_dci_date_today ();
+ set_isdcf_date_today ();
if (dcp_name().find ("/") != string::npos) {
throw BadSettingError (_("name"), _("cannot contain slashes"));
@@ -349,10 +351,10 @@ Film::metadata () const
root->add_child("Version")->add_child_text (raw_convert<string> (current_state_version));
root->add_child("Name")->add_child_text (_name);
- root->add_child("UseDCIName")->add_child_text (_use_dci_name ? "1" : "0");
+ root->add_child("UseISDCFName")->add_child_text (_use_isdcf_name ? "1" : "0");
if (_dcp_content_type) {
- root->add_child("DCPContentType")->add_child_text (_dcp_content_type->dci_name ());
+ root->add_child("DCPContentType")->add_child_text (_dcp_content_type->isdcf_name ());
}
if (_container) {
@@ -363,9 +365,9 @@ Film::metadata () const
root->add_child("Scaler")->add_child_text (_scaler->id ());
root->add_child("WithSubtitles")->add_child_text (_with_subtitles ? "1" : "0");
root->add_child("J2KBandwidth")->add_child_text (raw_convert<string> (_j2k_bandwidth));
- _dci_metadata.as_xml (root->add_child ("DCIMetadata"));
+ _isdcf_metadata.as_xml (root->add_child ("ISDCFMetadata"));
root->add_child("VideoFrameRate")->add_child_text (raw_convert<string> (_video_frame_rate));
- root->add_child("DCIDate")->add_child_text (boost::gregorian::to_iso_string (_dci_date));
+ root->add_child("ISDCFDate")->add_child_text (boost::gregorian::to_iso_string (_isdcf_date));
root->add_child("AudioChannels")->add_child_text (raw_convert<string> (_audio_channels));
root->add_child("ThreeD")->add_child_text (_three_d ? "1" : "0");
root->add_child("SequenceVideo")->add_child_text (_sequence_video ? "1" : "0");
@@ -407,12 +409,20 @@ Film::read_metadata ()
}
_name = f.string_child ("Name");
- _use_dci_name = f.bool_child ("UseDCIName");
+ if (_state_version >= 9) {
+ _use_isdcf_name = f.bool_child ("UseISDCFName");
+ _isdcf_metadata = ISDCFMetadata (f.node_child ("ISDCFMetadata"));
+ _isdcf_date = boost::gregorian::from_undelimited_string (f.string_child ("ISDCFDate"));
+ } else {
+ _use_isdcf_name = f.bool_child ("UseDCIName");
+ _isdcf_metadata = ISDCFMetadata (f.node_child ("DCIMetadata"));
+ _isdcf_date = boost::gregorian::from_undelimited_string (f.string_child ("DCIDate"));
+ }
{
optional<string> c = f.optional_string_child ("DCPContentType");
if (c) {
- _dcp_content_type = DCPContentType::from_dci_name (c.get ());
+ _dcp_content_type = DCPContentType::from_isdcf_name (c.get ());
}
}
@@ -427,9 +437,7 @@ Film::read_metadata ()
_scaler = Scaler::from_id (f.string_child ("Scaler"));
_with_subtitles = f.bool_child ("WithSubtitles");
_j2k_bandwidth = f.number_child<int> ("J2KBandwidth");
- _dci_metadata = DCIMetadata (f.node_child ("DCIMetadata"));
_video_frame_rate = f.number_child<int> ("VideoFrameRate");
- _dci_date = boost::gregorian::from_undelimited_string (f.string_child ("DCIDate"));
_signed = f.optional_bool_child("Signed").get_value_or (true);
_encrypted = f.bool_child ("Encrypted");
_audio_channels = f.number_child<int> ("AudioChannels");
@@ -476,9 +484,9 @@ Film::file (boost::filesystem::path f) const
return p;
}
-/** @return a DCI-compliant name for a DCP of this film */
+/** @return a ISDCF-compliant name for a DCP of this film */
string
-Film::dci_name (bool if_created_now) const
+Film::isdcf_name (bool if_created_now) const
{
stringstream d;
@@ -497,8 +505,8 @@ Film::dci_name (bool if_created_now) const
d << fixed_name;
if (dcp_content_type()) {
- d << "_" << dcp_content_type()->dci_name();
- d << "-" << dci_metadata().content_version;
+ d << "_" << dcp_content_type()->isdcf_name();
+ d << "-" << isdcf_metadata().content_version;
}
if (three_d ()) {
@@ -510,10 +518,10 @@ Film::dci_name (bool if_created_now) const
}
if (container()) {
- d << "_" << container()->dci_name();
+ d << "_" << container()->isdcf_name();
}
- DCIMetadata const dm = dci_metadata ();
+ ISDCFMetadata const dm = isdcf_metadata ();
if (!dm.audio_language.empty ()) {
d << "_" << dm.audio_language;
@@ -561,7 +569,7 @@ Film::dci_name (bool if_created_now) const
if (if_created_now) {
d << "_" << boost::gregorian::to_iso_string (boost::gregorian::day_clock::local_day ());
} else {
- d << "_" << boost::gregorian::to_iso_string (_dci_date);
+ d << "_" << boost::gregorian::to_iso_string (_isdcf_date);
}
if (!dm.facility.empty ()) {
@@ -579,8 +587,8 @@ Film::dci_name (bool if_created_now) const
string
Film::dcp_name (bool if_created_now) const
{
- if (use_dci_name()) {
- return dci_name (if_created_now);
+ if (use_isdcf_name()) {
+ return isdcf_name (if_created_now);
}
return name();
@@ -602,10 +610,10 @@ Film::set_name (string n)
}
void
-Film::set_use_dci_name (bool u)
+Film::set_use_isdcf_name (bool u)
{
- _use_dci_name = u;
- signal_changed (USE_DCI_NAME);
+ _use_isdcf_name = u;
+ signal_changed (USE_ISDCF_NAME);
}
void
@@ -651,10 +659,10 @@ Film::set_j2k_bandwidth (int b)
}
void
-Film::set_dci_metadata (DCIMetadata m)
+Film::set_isdcf_metadata (ISDCFMetadata m)
{
- _dci_metadata = m;
- signal_changed (DCI_METADATA);
+ _isdcf_metadata = m;
+ signal_changed (ISDCF_METADATA);
}
void
@@ -708,9 +716,9 @@ Film::signal_changed (Property p)
}
void
-Film::set_dci_date_today ()
+Film::set_isdcf_date_today ()
{
- _dci_date = boost::gregorian::day_clock::local_day ();
+ _isdcf_date = boost::gregorian::day_clock::local_day ();
}
boost::filesystem::path