X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fj2k_encoder.cc;h=94728d6a9e6acccbe5839e4acc0c73d3d1b09530;hb=a5be11a965c2c38442e4e069874e7e21b5b43a5c;hp=bbd602dd097bf08a8a44ef312d6c624454e2de5a;hpb=ed0b3ee0c5a0ba11d3a1a1dfee8e71238bcab4bd;p=dcpomatic.git diff --git a/src/lib/j2k_encoder.cc b/src/lib/j2k_encoder.cc index bbd602dd0..94728d6a9 100644 --- a/src/lib/j2k_encoder.cc +++ b/src/lib/j2k_encoder.cc @@ -26,6 +26,7 @@ #include "util.h" #include "film.h" #include "log.h" +#include "dcpomatic_log.h" #include "config.h" #include "dcp_video.h" #include "cross.h" @@ -41,12 +42,6 @@ #include "i18n.h" -#define LOG_GENERAL(...) _film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_GENERAL); -#define LOG_GENERAL_NC(...) _film->log()->log (__VA_ARGS__, LogEntry::TYPE_GENERAL); -#define LOG_ERROR(...) _film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_ERROR); -#define LOG_TIMING(...) _film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_TIMING); -#define LOG_DEBUG_ENCODE(...) _film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_DEBUG_ENCODE); - using std::list; using std::cout; using boost::shared_ptr; @@ -134,9 +129,9 @@ J2KEncoder::end () LOG_GENERAL (N_("Encode left-over frame %1"), (*i)->index ()); try { _writer->write ( - (*i)->encode_locally (boost::bind (&Log::dcp_log, _film->log().get(), _1, _2)), - (*i)->index (), - (*i)->eyes () + (*i)->encode_locally(), + (*i)->index(), + (*i)->eyes() ); frame_done (); } catch (std::exception& e) { @@ -216,7 +211,7 @@ J2KEncoder::encode (shared_ptr pv, DCPTime time) LOG_DEBUG_ENCODE("Frame @ %1 FAKE", to_string(time)); _writer->fake_write (position, pv->eyes ()); frame_done (); - } else if (pv->has_j2k ()) { + } else if (pv->has_j2k() && !_film->reencode_j2k()) { LOG_DEBUG_ENCODE("Frame @ %1 J2K", to_string(time)); /* This frame already has J2K data, so just write it */ _writer->write (pv->j2k(), position, pv->eyes ()); @@ -233,8 +228,7 @@ J2KEncoder::encode (shared_ptr pv, DCPTime time) position, _film->video_frame_rate(), _film->j2k_bandwidth(), - _film->resolution(), - _film->log() + _film->resolution() ) )); @@ -338,7 +332,7 @@ try } else { try { LOG_TIMING ("start-local-encode thread=%1 frame=%2", thread_id(), vf->index()); - encoded = vf->encode_locally (boost::bind (&Log::dcp_log, _film->log().get(), _1, _2)); + encoded = vf->encode_locally (); LOG_TIMING ("finish-local-encode thread=%1 frame=%2", thread_id(), vf->index()); } catch (std::exception& e) { /* This is very bad, so don't cope with it, just pass it on */ @@ -412,7 +406,11 @@ J2KEncoder::servers_list_changed () } } - BOOST_FOREACH (EncodeServerDescription i, EncodeServerFinder::instance()->good_servers ()) { + BOOST_FOREACH (EncodeServerDescription i, EncodeServerFinder::instance()->servers()) { + if (!i.current_link_version()) { + continue; + } + LOG_GENERAL (N_("Adding %1 worker threads for remote %2"), i.threads(), i.host_name ()); for (int j = 0; j < i.threads(); ++j) { _threads.push_back (new boost::thread (boost::bind (&J2KEncoder::encoder_thread, this, i)));