X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcreate_cli.cc;h=878ee6fddd7fb7ce8ff6719366028164a577b802;hb=5b109e2e90a8a05a1565a8a7983dbe1355740027;hp=94e984fcf81ef1ee6347e5e01fc732188eef0725;hpb=64a9030f3869e01c488a291da1c036d4e7615388;p=dcpomatic.git diff --git a/src/lib/create_cli.cc b/src/lib/create_cli.cc index 94e984fcf..878ee6fdd 100644 --- a/src/lib/create_cli.cc +++ b/src/lib/create_cli.cc @@ -21,6 +21,7 @@ #include "create_cli.h" #include "dcp_content_type.h" #include "ratio.h" +#include "config.h" #include "compose.hpp" #include #include @@ -47,8 +48,10 @@ string CreateCLI::_help = " --no-use-isdcf-name do not use an ISDCF name; use the specified name unmodified\n" " --no-sign do not sign the DCP\n" " --config directory containing config.xml and cinemas.xml\n" + " --fourk make a 4K DCP rather than a 2K one\n" " -o, --output output directory\n" " --threed make a 3D DCP\n" + " --j2k-bandwidth J2K bandwidth in Mbit/s\n" " --left-eye next piece of content is for the left eye\n" " --right-eye next piece of content is for the right eye\n"; @@ -75,13 +78,13 @@ CreateCLI::CreateCLI (int argc, char* argv[]) , encrypt (false) , threed (false) , dcp_content_type (0) - , dcp_frame_rate (24) , container_ratio (0) , content_ratio (0) , still_length (10) , standard (dcp::SMPTE) , no_use_isdcf_name (false) , no_sign (false) + , fourk (false) { string dcp_content_type_string = "TST"; string content_ratio_string; @@ -91,6 +94,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) string template_name_string; string config_dir_string; string output_dir_string; + int j2k_bandwidth_int = 0; VideoFrameType next_frame_type = VIDEO_FRAME_TYPE_2D; int i = 1; @@ -122,6 +126,9 @@ CreateCLI::CreateCLI (int argc, char* argv[]) } else if (a == "--right-eye") { next_frame_type = VIDEO_FRAME_TYPE_3D_RIGHT; claimed = true; + } else if (a == "--fourk") { + fourk = true; + claimed = true; } argument_option(i, argc, argv, "-n", "--name", &claimed, &error, &name); @@ -134,6 +141,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) argument_option(i, argc, argv, "", "--standard", &claimed, &error, &standard_string); argument_option(i, argc, argv, "", "--config", &claimed, &error, &config_dir_string); argument_option(i, argc, argv, "-o", "--output", &claimed, &error, &output_dir_string); + argument_option(i, argc, argv, "", "--j2k-bandwidth", &claimed, &error, &j2k_bandwidth_int); if (!claimed) { if (a.length() > 2 && a.substr(0, 2) == "--") { @@ -167,6 +175,10 @@ CreateCLI::CreateCLI (int argc, char* argv[]) dcp_frame_rate = dcp_frame_rate_int; } + if (j2k_bandwidth_int) { + 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); @@ -207,4 +219,9 @@ CreateCLI::CreateCLI (int argc, char* argv[]) if (name.empty()) { name = content[0].path.leaf().string(); } + + if (j2k_bandwidth && (*j2k_bandwidth < 10000000 || *j2k_bandwidth > Config::instance()->maximum_j2k_bandwidth())) { + error = String::compose("%1: j2k-bandwidth must be between 10 and %2 Mbit/s", argv[0], (Config::instance()->maximum_j2k_bandwidth() / 1000000)); + return; + } }