X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fcreate_cli.cc;h=f80af758a92e1cf036a1e5c2270592ee320a94dd;hp=41dd44d1a2dc1eae678a2e9a9fd90c27c466ffa4;hb=HEAD;hpb=8a112904ee3cbdcd8e6c88e0a46c67e8d387ba9e diff --git a/src/lib/create_cli.cc b/src/lib/create_cli.cc index 41dd44d1a..1c2f2c635 100644 --- a/src/lib/create_cli.cc +++ b/src/lib/create_cli.cc @@ -127,7 +127,7 @@ argument_option ( CreateCLI::CreateCLI (int argc, char* argv[]) : version (false) { - string dcp_content_type_string = "TST"; + optional dcp_content_type_string; string container_ratio_string; optional standard_string; int dcp_frame_rate_int = 0; @@ -137,7 +137,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) optional channel; optional gain; optional kdm; - optional cpl; + optional cpl; int i = 1; while (i < argc) { @@ -196,11 +196,13 @@ CreateCLI::CreateCLI (int argc, char* argv[]) argument_option(i, argc, argv, "-n", "--name", &claimed, &error, &_name); argument_option(i, argc, argv, "-t", "--template", &claimed, &error, &template_name_string); - argument_option(i, argc, argv, "-c", "--dcp-content-type", &claimed, &error, &dcp_content_type_string); + /* See comment below about --cpl */ + argument_option(i, argc, argv, "-c", "--dcp-content-type", &claimed, &error, &dcp_content_type_string, string_to_string); argument_option(i, argc, argv, "-f", "--dcp-frame-rate", &claimed, &error, &dcp_frame_rate_int); argument_option(i, argc, argv, "", "--container-ratio", &claimed, &error, &container_ratio_string); argument_option(i, argc, argv, "-s", "--still-length", &claimed, &error, &still_length, string_to_nonzero_int); - argument_option(i, argc, argv, "", "--standard", &claimed, &error, &standard_string); + /* See comment below about --cpl */ + argument_option(i, argc, argv, "", "--standard", &claimed, &error, &standard_string, string_to_string); argument_option(i, argc, argv, "", "--config", &claimed, &error, &config_dir, string_to_path); argument_option(i, argc, argv, "-o", "--output", &claimed, &error, &output_dir, string_to_path); argument_option(i, argc, argv, "", "--j2k-bandwidth", &claimed, &error, &j2k_bandwidth_int); @@ -273,10 +275,12 @@ CreateCLI::CreateCLI (int argc, char* argv[]) _j2k_bandwidth = j2k_bandwidth_int * 1000000; } - _dcp_content_type = DCPContentType::from_isdcf_name(dcp_content_type_string); - if (!_dcp_content_type) { - error = String::compose("%1: unrecognised DCP content type '%2'", argv[0], dcp_content_type_string); - return; + if (dcp_content_type_string) { + _dcp_content_type = DCPContentType::from_isdcf_name(*dcp_content_type_string); + if (!_dcp_content_type) { + error = String::compose("%1: unrecognised DCP content type '%2'", argv[0], *dcp_content_type_string); + return; + } } if (!container_ratio_string.empty()) { @@ -312,7 +316,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) } if (_name.empty()) { - _name = content[0].path.leaf().string(); + _name = content[0].path.filename().string(); } if (_j2k_bandwidth && (*_j2k_bandwidth < 10000000 || *_j2k_bandwidth > Config::instance()->maximum_j2k_bandwidth())) { @@ -337,13 +341,16 @@ CreateCLI::make_film() const * or not. */ film->set_interop(false); + film->set_dcp_content_type(DCPContentType::from_isdcf_name("TST")); } film->set_name(_name); if (_container_ratio) { film->set_container(_container_ratio); } - film->set_dcp_content_type(_dcp_content_type); + if (_dcp_content_type) { + film->set_dcp_content_type(_dcp_content_type); + } if (_standard) { film->set_interop(*_standard == dcp::Standard::INTEROP); } @@ -374,7 +381,7 @@ CreateCLI::make_film() const channels = std::max(channels, static_cast(*cli_content.channel) + 1); } } - if (channels % 1) { + if (channels % 2) { ++channels; }