diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-21 03:14:10 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-21 03:14:10 +0100 |
| commit | d7c2644cfd074bb46922c1976044312ad07be1c7 (patch) | |
| tree | e8278517860ad78d4ddb38377d2a0c16ec8e8bff /src | |
| parent | b6dc9aed0dcb5928d0f34e5db68b0c98b48c6b6e (diff) | |
Add versioning; tweak libdcp version reporting; make makedcp more useful for testing.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/util.cc | 4 | ||||
| -rw-r--r-- | src/lib/version.h | 3 | ||||
| -rw-r--r-- | src/lib/wscript | 1 | ||||
| -rw-r--r-- | src/tools/makedcp.cc | 66 |
4 files changed, 56 insertions, 18 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc index 92861739c..7c80ca3c9 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -35,6 +35,7 @@ #include <magick/MagickCore.h> #include <magick/version.h> #include <libssh/libssh.h> +#include <libdcp/version.h> extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> @@ -269,7 +270,8 @@ dependency_version_summary () << "libpostproc " << ffmpeg_version_to_string (postproc_version()) << ", " << "libswscale " << ffmpeg_version_to_string (swscale_version()) << ", " << MagickVersion << ", " - << "libssh " << ssh_version (0); + << "libssh " << ssh_version (0) << ", " + << "libdcp " << libdcp::version << " git " << libdcp::git_commit; return s.str (); } diff --git a/src/lib/version.h b/src/lib/version.h new file mode 100644 index 000000000..71639e3bc --- /dev/null +++ b/src/lib/version.h @@ -0,0 +1,3 @@ + +extern char const * dvdomatic_version; +extern char const * dvdomatic_git_commit; diff --git a/src/lib/wscript b/src/lib/wscript index a263a13d1..65df3f4ac 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -52,5 +52,6 @@ def build(bld): transcode_job.cc transcoder.cc util.cc + version.cc """ obj.target = 'dvdomatic' diff --git a/src/tools/makedcp.cc b/src/tools/makedcp.cc index 15880cae9..5856ba0aa 100644 --- a/src/tools/makedcp.cc +++ b/src/tools/makedcp.cc @@ -20,6 +20,8 @@ #include <iostream> #include <iomanip> #include <getopt.h> +#include <libdcp/test_mode.h> +#include <libdcp/version.h> #include "format.h" #include "film.h" #include "filter.h" @@ -29,6 +31,7 @@ #include "ab_transcode_job.h" #include "util.h" #include "scaler.h" +#include "version.h" using namespace std; using namespace boost; @@ -36,24 +39,33 @@ using namespace boost; static void help (string n) { - cerr << "Syntax: " << n << " [--help] [--deps] [--film <film>]\n"; + cerr << "Syntax: " << n << " [OPTION] <FILM>\n" + << " -h, --help show this help\n" + << " -d, --deps list DVD-o-matic dependency details and quit\n" + << " -t, --test run in test mode (repeatable UUID generation and timestamps)\n" + << " -n, --no-progress do not print progress to stdout\n" + << "\n" + << "<FILM> is the film directory.\n"; } int main (int argc, char* argv[]) { string film_dir; + bool test_mode = false; + bool progress = true; + int option_index = 0; while (1) { static struct option long_options[] = { { "help", no_argument, 0, 'h'}, { "deps", no_argument, 0, 'd'}, - { "film", required_argument, 0, 'f'}, + { "test", no_argument, 0, 't'}, + { "no-progress", no_argument, 0, 'n'}, { 0, 0, 0, 0 } }; - int option_index = 0; - int c = getopt_long (argc, argv, "hdf:", long_options, &option_index); + int c = getopt_long (argc, argv, "hdtn", long_options, &option_index); if (c == -1) { break; @@ -66,19 +78,36 @@ main (int argc, char* argv[]) case 'd': cout << dependency_version_summary () << "\n"; exit (EXIT_SUCCESS); - case 'f': - film_dir = optarg; + case 't': + test_mode = true; + break; + case 'n': + progress = false; break; } } - if (film_dir.empty ()) { + if (optind >= argc) { help (argv[0]); exit (EXIT_FAILURE); } + + film_dir = argv[optind]; dvdomatic_setup (); + cout << "DVD-o-matic " << dvdomatic_version << " git " << dvdomatic_git_commit; + char buf[256]; + if (gethostname (buf, 256) == 0) { + cout << " on " << buf; + } + cout << "\n"; + + if (test_mode) { + libdcp::enable_test_mode (); + cout << dependency_version_summary() << "\n"; + } + Film* film = 0; try { film = new Film (film_dir, true); @@ -92,6 +121,7 @@ main (int argc, char* argv[]) cout << "A/B "; } cout << "DCP for " << film->name() << "\n"; + cout << "Test mode: " << (test_mode ? "yes" : "no") << "\n"; cout << "Content: " << film->content() << "\n"; pair<string, string> const f = Filter::ffmpeg_strings (film->filters ()); cout << "Filters: " << f.first << " " << f.second << "\n"; @@ -105,8 +135,8 @@ main (int argc, char* argv[]) while (!all_done) { sleep (5); - - if (!first) { + + if (!first && progress) { cout << "\033[" << jobs.size() << "A"; cout.flush (); } @@ -115,14 +145,16 @@ main (int argc, char* argv[]) all_done = true; for (list<shared_ptr<Job> >::iterator i = jobs.begin(); i != jobs.end(); ++i) { - cout << (*i)->name() << ": "; - - float const p = (*i)->overall_progress (); - - if (p >= 0) { - cout << (*i)->status() << " \n"; - } else { - cout << ": Running \n"; + if (progress) { + cout << (*i)->name() << ": "; + + float const p = (*i)->overall_progress (); + + if (p >= 0) { + cout << (*i)->status() << " \n"; + } else { + cout << ": Running \n"; + } } if (!(*i)->finished ()) { |
