#include "cinema.h"
#include "compose.hpp"
#include "config.h"
+#include "constants.h"
#include "cross.h"
#include "dcp_content.h"
#include "dcp_content_type.h"
#include "text_content.h"
#include "transcode_job.h"
#include "upload_job.h"
-#include "util.h"
#include "video_content.h"
#include "version.h"
#include <libcxml/cxml.h>
: _playlist (new Playlist)
, _use_isdcf_name (Config::instance()->use_isdcf_name_by_default())
, _dcp_content_type (Config::instance()->default_dcp_content_type ())
- , _container (Config::instance()->default_container ())
+ , _container(Ratio::from_id("185"))
, _resolution (Resolution::TWO_K)
, _encrypted (false)
, _context_id (dcp::make_uuid ())
, _user_explicit_container (false)
, _user_explicit_resolution (false)
, _name_language (dcp::LanguageTag("en-US"))
+ , _release_territory(Config::instance()->default_territory())
, _version_number (1)
, _status (dcp::Status::FINAL)
+ , _audio_language(Config::instance()->default_audio_language())
, _state_version (current_state_version)
, _dirty (false)
, _tolerant (false)
_sign_language_video_language = dcp::LanguageTag(*sign_language_video_language);
}
- _version_number = f.optional_number_child<int>("VersionNumber").get_value_or(0);
+ _version_number = f.optional_number_child<int>("VersionNumber").get_value_or(1);
auto status = f.optional_string_child("Status");
if (status) {
auto raw_name = name ();
+ auto to_upper = [](string s) {
+ transform(s.begin(), s.end(), s.begin(), ::toupper);
+ return s;
+ };
+
/* Split the raw name up into words */
vector<string> words;
split (words, raw_name, is_any_of (" _-"));
isdcf_name += "_" + container()->isdcf_name();
}
+ auto content_list = content();
+
/* XXX: this uses the first bit of content only */
/* Interior aspect ratio. The standard says we don't do this for trailers, for some strange reason */
if (dcp_content_type() && dcp_content_type()->libdcp_kind() != dcp::ContentKind::TRAILER) {
- auto cl = content();
- auto first_video = std::find_if(cl.begin(), cl.end(), [](shared_ptr<Content> c) { return static_cast<bool>(c->video); });
- if (first_video != cl.end()) {
+ auto first_video = std::find_if(content_list.begin(), content_list.end(), [](shared_ptr<Content> c) { return static_cast<bool>(c->video); });
+ if (first_video != content_list.end()) {
auto first_ratio = lrintf((*first_video)->video->scaled_size(frame_size()).ratio() * 100);
auto container_ratio = lrintf(container()->ratio() * 100);
if (first_ratio != container_ratio) {
auto burnt_in = true;
auto ccap = false;
- for (auto i: content()) {
+ for (auto i: content_list) {
for (auto j: i->text) {
if (j->type() == TextType::OPEN_SUBTITLE && j->use() && !j->burn()) {
burnt_in = false;
if (_release_territory) {
auto territory = _release_territory->subtag();
isdcf_name += "_" + to_upper (territory);
- if (_ratings.empty ()) {
- isdcf_name += "-NR";
- } else {
+ if (!_ratings.empty()) {
auto label = _ratings[0].label;
boost::erase_all(label, "+");
boost::erase_all(label, "-");
}
auto vf = false;
- for (auto i: content()) {
+ for (auto i: content_list) {
auto dc = dynamic_pointer_cast<const DCPContent>(i);
if (!dc) {
continue;