X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Futil.cc;h=ed0de75959578cdd5016118c6c27f23c1d913b8a;hb=cd5ed3bbb45fc41e2c414276477eed2448d5a699;hp=e1eb7323c4363e1ec5aa601c8961172bca4f26be;hpb=12f089b89fff8409cd012cab1ba4eb8b619e554e;p=dcpomatic.git diff --git a/src/lib/util.cc b/src/lib/util.cc index e1eb7323c..ed0de7595 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -34,6 +34,7 @@ #include "cross.h" #include "crypto.h" #include "dcp_content_type.h" +#include "dcpomatic_log.h" #include "digester.h" #include "exceptions.h" #include "ffmpeg_image_proxy.h" @@ -410,8 +411,8 @@ LIBDCP_ENABLE_WARNINGS optional(), false, false, false, dcp::Colour(), 42, 1, dcp::Time(), dcp::Time(), 0, dcp::HAlign::CENTER, 0, dcp::VAlign::CENTER, dcp::Direction::LTR, "Hello dolly", dcp::Effect::NONE, dcp::Colour(), dcp::Time(), dcp::Time(), 0 ); - subs.push_back (StringText(ss, 0)); - render_text (subs, list>(), dcp::Size(640, 480), DCPTime(), 24); + subs.push_back (StringText(ss, 0, {})); + render_text (subs, dcp::Size(640, 480), DCPTime(), 24); #endif Ratio::setup_ratios (); @@ -424,6 +425,8 @@ LIBDCP_ENABLE_WARNINGS curl_global_init (CURL_GLOBAL_ALL); ui_thread = boost::this_thread::get_id (); + + capture_asdcp_logs (); } #ifdef DCPOMATIC_WINDOWS @@ -708,7 +711,7 @@ split_get_request (string url) static string -asset_filename (shared_ptr asset, string type, int reel_index, int reel_count, optional summary) +asset_filename (shared_ptr asset, string type, int reel_index, int reel_count, optional summary, string extension) { dcp::NameFormat::Map values; values['t'] = type; @@ -717,28 +720,35 @@ asset_filename (shared_ptr asset, string type, int reel_index, int r if (summary) { values['c'] = careful_string_filter(summary.get()); } - return Config::instance()->dcp_asset_filename_format().get(values, "_" + asset->id() + ".mxf"); + return Config::instance()->dcp_asset_filename_format().get(values, "_" + asset->id() + extension); } string video_asset_filename (shared_ptr asset, int reel_index, int reel_count, optional summary) { - return asset_filename(asset, "j2c", reel_index, reel_count, summary); + return asset_filename(asset, "j2c", reel_index, reel_count, summary, ".mxf"); } string audio_asset_filename (shared_ptr asset, int reel_index, int reel_count, optional summary) { - return asset_filename(asset, "pcm", reel_index, reel_count, summary); + return asset_filename(asset, "pcm", reel_index, reel_count, summary, ".mxf"); +} + + +string +subtitle_asset_filename (shared_ptr asset, int reel_index, int reel_count, optional summary, string extension) +{ + return asset_filename(asset, "sub", reel_index, reel_count, summary, extension); } string atmos_asset_filename (shared_ptr asset, int reel_index, int reel_count, optional summary) { - return asset_filename(asset, "atmos", reel_index, reel_count, summary); + return asset_filename(asset, "atmos", reel_index, reel_count, summary, ".mxf"); } @@ -1141,3 +1151,30 @@ start_of_thread (string) } #endif + +class LogSink : public Kumu::ILogSink +{ +public: + LogSink () {} + LogSink (LogSink const&) = delete; + LogSink& operator= (LogSink const&) = delete; + + void WriteEntry(const Kumu::LogEntry& entry) override { + Kumu::AutoMutex L(m_lock); + WriteEntryToListeners(entry); + if (entry.TestFilter(m_filter)) { + string buffer; + entry.CreateStringWithOptions(buffer, m_options); + LOG_GENERAL("asdcplib: %1", buffer); + } + } +}; + + +void +capture_asdcp_logs () +{ + static LogSink log_sink; + Kumu::SetDefaultLogSink(&log_sink); +} +