X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Ffilm.cc;fp=src%2Flib%2Ffilm.cc;h=25730ae1cbe8bff7e07da16c6eced81e099c7c79;hp=50b1b4fad309e18c7bd848f829fce4e159b8fad6;hb=3574212ee42b2bd924eb95d5c0f4f69ec9e0a2f0;hpb=24d54ea7fe1ba128cf8d3521d6738fc73a7c623e diff --git a/src/lib/film.cc b/src/lib/film.cc index 50b1b4fad..25730ae1c 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -81,6 +81,9 @@ using dcp::Size; using dcp::Signer; using dcp::raw_convert; +#define LOG_GENERAL(...) log()->log (String::compose (__VA_ARGS__), Log::TYPE_GENERAL); +#define LOG_GENERAL_NC(...) log()->log (__VA_ARGS__, Log::TYPE_GENERAL); + /* 5 -> 6 * AudioMapping XML changed. * 6 -> 7 @@ -256,43 +259,43 @@ Film::make_dcp () */ write_metadata (); - log()->log (String::compose ("DCP-o-matic %1 git %2 using %3", dcpomatic_version, dcpomatic_git_commit, dependency_version_summary())); + 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()->log (String::compose ("Starting to make DCP on %1", buffer)); + LOG_GENERAL ("Starting to make DCP on %1", buffer); } ContentList cl = content (); for (ContentList::const_iterator i = cl.begin(); i != cl.end(); ++i) { - log()->log (String::compose ("Content: %1", (*i)->technical_summary())); + LOG_GENERAL ("Content: %1", (*i)->technical_summary()); } - log()->log (String::compose ("DCP video rate %1 fps", video_frame_rate())); - log()->log (String::compose ("%1 threads", Config::instance()->num_local_encoding_threads())); - log()->log (String::compose ("J2K bandwidth %1", j2k_bandwidth())); + 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()->log ("DCP-o-matic built in debug mode."); + LOG_GENERAL_NC ("DCP-o-matic built in debug mode."); #else - log()->log ("DCP-o-matic built in optimised mode."); + LOG_GENERAL_NC ("DCP-o-matic built in optimised mode."); #endif #ifdef LIBDCP_DEBUG - log()->log ("libdcp built in debug mode."); + LOG_GENERAL_NC ("libdcp built in debug mode."); #else - log()->log ("libdcp built in optimised mode."); + LOG_GENERAL_NC ("libdcp built in optimised mode."); #endif #ifdef DCPOMATIC_WINDOWS OSVERSIONINFO info; info.dwOSVersionInfoSize = sizeof (info); GetVersionEx (&info); - log()->log (String::compose ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion)); + LOG_GENERAL ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion); #endif - log()->log (String::compose ("CPU: %1, %2 processors", cpu_info(), boost::thread::hardware_concurrency ())); + 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()->log (String::compose ("Mount: %1 %2", i->first, i->second)); + LOG_GENERAL ("Mount: %1 %2", i->first, i->second); } if (container() == 0) { @@ -766,11 +769,11 @@ Film::j2c_path (int f, Eyes e, bool t) const return file (p); } -/** @return List of subdirectories (not full paths) containing DCPs that can be successfully dcp::DCP::read() */ -list -Film::dcps () const +/** Find all the DCPs in our directory that can be libdcp::DCP::read() and return details of their CPLs */ +vector +Film::cpls () const { - list out; + vector out; boost::filesystem::path const dir = directory (); for (boost::filesystem::directory_iterator i = boost::filesystem::directory_iterator(dir); i != boost::filesystem::directory_iterator(); ++i) { @@ -782,7 +785,14 @@ Film::dcps () const try { dcp::DCP dcp (*i); dcp.read (); - out.push_back (i->path().leaf ()); + out.push_back ( + CPLSummary ( + i->path().leaf().string(), + dcp.cpls().front()->id(), + dcp.cpls().front()->annotation_text(), + dcp.cpls().front()->file() + ) + ); } catch (...) { } @@ -961,26 +971,15 @@ Film::frame_size () const dcp::EncryptedKDM Film::make_kdm ( shared_ptr target, - boost::filesystem::path dcp_dir, + boost::filesystem::path cpl_file, dcp::LocalTime from, dcp::LocalTime until ) const { - shared_ptr signer = make_signer (); - - dcp::DCP dcp (dir (dcp_dir.string ())); - - try { - dcp.read (); - } catch (...) { - throw KDMError (_("Could not read DCP to make KDM for")); - } - - dcp.cpls().front()->set_mxf_keys (key ()); - + shared_ptr cpl (new dcp::CPL (cpl_file)); return dcp::DecryptedKDM ( - dcp.cpls().front(), from, until, "DCP-o-matic", dcp.cpls().front()->content_title_text(), dcp::LocalTime().as_string() - ).encrypt (signer, target); + cpl, from, until, "DCP-o-matic", cpl->content_title_text(), dcp::LocalTime().as_string() + ).encrypt (make_signer(), target); } list