From 5500e2034203773e15bb3ec0ad8abcd4661fed82 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 3 Feb 2015 01:01:32 +0000 Subject: [PATCH] Move log environment dump stuff out into its own file. --- src/lib/environment_info.cc | 127 ++++++++++++++++++++++++++++++++++++ src/lib/environment_info.h | 20 ++++++ src/lib/film.cc | 41 +----------- src/lib/util.cc | 46 ------------- src/lib/util.h | 1 - src/lib/wscript | 1 + src/tools/dcpomatic_cli.cc | 7 +- 7 files changed, 151 insertions(+), 92 deletions(-) create mode 100644 src/lib/environment_info.cc create mode 100644 src/lib/environment_info.h diff --git a/src/lib/environment_info.cc b/src/lib/environment_info.cc new file mode 100644 index 000000000..d10e23727 --- /dev/null +++ b/src/lib/environment_info.cc @@ -0,0 +1,127 @@ +/* + Copyright (C) 2012-2015 Carl Hetherington + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "log.h" +#include "compose.hpp" +#include "version.h" +#include "cross.h" +#include +#include +#include +#ifdef DCPOMATIC_IMAGE_MAGICK +#include +#else +#include +#include +#endif +#include +extern "C" { +#include +#include +#include +#include +#include +} +#include + +#include "i18n.h" + +#define LOG_GENERAL(...) log->log (String::compose (__VA_ARGS__), Log::TYPE_GENERAL); +#define LOG_GENERAL_NC(...) log->log (__VA_ARGS__, Log::TYPE_GENERAL); + +using std::string; +using std::list; +using std::pair; +using boost::shared_ptr; + +/** @param v Version as used by FFmpeg. + * @return A string representation of v. + */ +static +string +ffmpeg_version_to_string (int v) +{ + SafeStringStream s; + s << ((v & 0xff0000) >> 16) << N_(".") << ((v & 0xff00) >> 8) << N_(".") << (v & 0xff); + return s.str (); +} + + +/** Return a user-readable string summarising the versions of our dependencies */ +static +string +dependency_version_summary () +{ + SafeStringStream s; + s << N_("libopenjpeg ") << opj_version () << N_(", ") + << N_("libavcodec ") << ffmpeg_version_to_string (avcodec_version()) << N_(", ") + << N_("libavfilter ") << ffmpeg_version_to_string (avfilter_version()) << N_(", ") + << N_("libavformat ") << ffmpeg_version_to_string (avformat_version()) << N_(", ") + << N_("libavutil ") << ffmpeg_version_to_string (avutil_version()) << N_(", ") + << N_("libswscale ") << ffmpeg_version_to_string (swscale_version()) << N_(", ") + << MagickVersion << N_(", ") + << N_("libssh ") << ssh_version (0) << N_(", ") + << N_("libdcp ") << dcp::version << N_(" git ") << dcp::git_commit; + + return s.str (); +} + +void +environment_info (shared_ptr log) +{ + LOG_GENERAL ("DCP-o-matic %1 git %2 using %3", dcpomatic_version, dcpomatic_git_commit, dependency_version_summary()); + + { + char buffer[128]; + gethostname (buffer, sizeof (buffer)); + LOG_GENERAL ("Host name %1", buffer); + } + +#ifdef DCPOMATIC_DEBUG + LOG_GENERAL_NC ("DCP-o-matic built in debug mode."); +#else + LOG_GENERAL_NC ("DCP-o-matic built in optimised mode."); +#endif +#ifdef LIBDCP_DEBUG + LOG_GENERAL_NC ("libdcp built in debug mode."); +#else + LOG_GENERAL_NC ("libdcp built in optimised mode."); +#endif + +#ifdef DCPOMATIC_WINDOWS + OSVERSIONINFO info; + info.dwOSVersionInfoSize = sizeof (info); + GetVersionEx (&info); + LOG_GENERAL ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion); +#endif + +#if __GNUC__ +#if __x86_64__ + LOG_GENERAL_NC ("Built for 64-bit"); +#else + LOG_GENERAL_NC ("Built for 32-bit"); +#endif +#endif + + LOG_GENERAL ("CPU: %1, %2 processors", cpu_info(), boost::thread::hardware_concurrency ()); + list > const m = mount_info (); + for (list >::const_iterator i = m.begin(); i != m.end(); ++i) { + LOG_GENERAL ("Mount: %1 %2", i->first, i->second); + } +} diff --git a/src/lib/environment_info.h b/src/lib/environment_info.h new file mode 100644 index 000000000..7cd541bfc --- /dev/null +++ b/src/lib/environment_info.h @@ -0,0 +1,20 @@ +/* + Copyright (C) 2012-2015 Carl Hetherington + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +extern void environment_info (boost::shared_ptr log); diff --git a/src/lib/film.cc b/src/lib/film.cc index e19d98df0..c695a7d4b 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -33,7 +33,6 @@ #include "examine_content_job.h" #include "scaler.h" #include "config.h" -#include "version.h" #include "ui_signaller.h" #include "playlist.h" #include "player.h" @@ -42,6 +41,7 @@ #include "cross.h" #include "cinema.h" #include "safe_stringstream.h" +#include "environment_info.h" #include #include #include @@ -277,13 +277,7 @@ Film::make_dcp () throw BadSettingError (_("name"), _("cannot contain slashes")); } - LOG_GENERAL ("DCP-o-matic %1 git %2 using %3", dcpomatic_version, dcpomatic_git_commit, dependency_version_summary()); - - { - char buffer[128]; - gethostname (buffer, sizeof (buffer)); - LOG_GENERAL ("Starting to make DCP on %1", buffer); - } + environment_info (log ()); ContentList cl = content (); for (ContentList::const_iterator i = cl.begin(); i != cl.end(); ++i) { @@ -292,37 +286,6 @@ Film::make_dcp () LOG_GENERAL ("DCP video rate %1 fps", video_frame_rate()); LOG_GENERAL ("%1 threads", Config::instance()->num_local_encoding_threads()); LOG_GENERAL ("J2K bandwidth %1", j2k_bandwidth()); -#ifdef DCPOMATIC_DEBUG - LOG_GENERAL_NC ("DCP-o-matic built in debug mode."); -#else - LOG_GENERAL_NC ("DCP-o-matic built in optimised mode."); -#endif -#ifdef LIBDCP_DEBUG - LOG_GENERAL_NC ("libdcp built in debug mode."); -#else - LOG_GENERAL_NC ("libdcp built in optimised mode."); -#endif - -#ifdef DCPOMATIC_WINDOWS - OSVERSIONINFO info; - info.dwOSVersionInfoSize = sizeof (info); - GetVersionEx (&info); - LOG_GENERAL ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion); -#endif - -#if __GNUC__ -#if __x86_64__ - LOG_GENERAL_NC ("Built for 64-bit"); -#else - LOG_GENERAL_NC ("Built for 32-bit"); -#endif -#endif - - LOG_GENERAL ("CPU: %1, %2 processors", cpu_info(), boost::thread::hardware_concurrency ()); - list > const m = mount_info (); - for (list >::const_iterator i = m.begin(); i != m.end(); ++i) { - LOG_GENERAL ("Mount: %1 %2", i->first, i->second); - } if (container() == 0) { throw MissingSettingError (_("container")); diff --git a/src/lib/util.cc b/src/lib/util.cc index c298a1946..6bb16c442 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -36,28 +36,11 @@ #include "md5_digester.h" #include "audio_processor.h" #include "safe_stringstream.h" -#include #include #include #include -extern "C" { -#include -#include -#include -#include -#include -} #include -#include #include -#ifdef DCPOMATIC_IMAGE_MAGICK -#include -#else -#include -#include -#endif -#include -#include #include #include #include @@ -187,17 +170,6 @@ seconds_to_approximate_hms (int s) return ap.str (); } -/** @param v Version as used by FFmpeg. - * @return A string representation of v. - */ -static string -ffmpeg_version_to_string (int v) -{ - SafeStringStream s; - s << ((v & 0xff0000) >> 16) << N_(".") << ((v & 0xff00) >> 8) << N_(".") << (v & 0xff); - return s.str (); -} - double seconds (struct timeval t) { @@ -592,24 +564,6 @@ wrapped_av_malloc (size_t s) return p; } -/** Return a user-readable string summarising the versions of our dependencies */ -string -dependency_version_summary () -{ - SafeStringStream s; - s << N_("libopenjpeg ") << opj_version () << N_(", ") - << N_("libavcodec ") << ffmpeg_version_to_string (avcodec_version()) << N_(", ") - << N_("libavfilter ") << ffmpeg_version_to_string (avfilter_version()) << N_(", ") - << N_("libavformat ") << ffmpeg_version_to_string (avformat_version()) << N_(", ") - << N_("libavutil ") << ffmpeg_version_to_string (avutil_version()) << N_(", ") - << N_("libswscale ") << ffmpeg_version_to_string (swscale_version()) << N_(", ") - << MagickVersion << N_(", ") - << N_("libssh ") << ssh_version (0) << N_(", ") - << N_("libdcp ") << dcp::version << N_(" git ") << dcp::git_commit; - - return s.str (); -} - ContentTimePeriod subtitle_period (AVSubtitle const & sub) { diff --git a/src/lib/util.h b/src/lib/util.h index c17dbf05b..bfb39fc1d 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -56,7 +56,6 @@ struct AVSubtitle; extern std::string seconds_to_hms (int); extern std::string seconds_to_approximate_hms (int); -extern std::string dependency_version_summary (); extern double seconds (struct timeval); extern void dcpomatic_setup (); extern void dcpomatic_setup_gettext_i18n (std::string); diff --git a/src/lib/wscript b/src/lib/wscript index bad426258..322f87792 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -31,6 +31,7 @@ sources = """ dolby_cp750.cc encoder.cc encoded_data.cc + environment_info.cc examine_content_job.cc exceptions.cc file_group.cc diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index 44abf4116..2a2db9842 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -48,7 +48,6 @@ help (string n) cerr << "Syntax: " << n << " [OPTION] \n" << " -v, --version show DCP-o-matic version\n" << " -h, --help show this help\n" - << " -d, --deps list DCP-o-matic dependency details and quit\n" << " -f, --flags show flags passed to C++ compiler on build\n" << " -n, --no-progress do not print progress to stdout\n" << " -r, --no-remote do not use any remote servers\n" @@ -70,7 +69,6 @@ main (int argc, char* argv[]) static struct option long_options[] = { { "version", no_argument, 0, 'v'}, { "help", no_argument, 0, 'h'}, - { "deps", no_argument, 0, 'd'}, { "flags", no_argument, 0, 'f'}, { "no-progress", no_argument, 0, 'n'}, { "no-remote", no_argument, 0, 'r'}, @@ -78,7 +76,7 @@ main (int argc, char* argv[]) { 0, 0, 0, 0 } }; - int c = getopt_long (argc, argv, "vhdfnrk", long_options, &option_index); + int c = getopt_long (argc, argv, "vhfnrk", long_options, &option_index); if (c == -1) { break; @@ -91,9 +89,6 @@ main (int argc, char* argv[]) case 'h': help (argv[0]); exit (EXIT_SUCCESS); - case 'd': - cout << dependency_version_summary () << "\n"; - exit (EXIT_SUCCESS); case 'f': cout << dcpomatic_cxx_flags << "\n"; exit (EXIT_SUCCESS); -- 2.30.2