X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_video.cc;h=217b72183c2af0b2d61b945d0b60ba3551c34933;hb=9d1d1cea1cdf17b4cc2208800ca22288f979d3ec;hp=9daeb45c8af0ce5afc46d9d7051d7335ba9b4362;hpb=3799e91d126d243d41c44dcb0ca1bfa66b53a57e;p=dcpomatic.git diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc index 9daeb45c8..217b72183 100644 --- a/src/lib/dcp_video.cc +++ b/src/lib/dcp_video.cc @@ -42,15 +42,15 @@ #include "log.h" #include "player_video.h" #include "rng.h" -#include "warnings.h" #include #include #include #include #include -DCPOMATIC_DISABLE_WARNINGS +#include +LIBDCP_DISABLE_WARNINGS #include -DCPOMATIC_ENABLE_WARNINGS +LIBDCP_ENABLE_WARNINGS #include #include #include @@ -71,9 +71,6 @@ using namespace boost::placeholders; #endif -#define DCI_COEFFICENT (48.0 / 52.37) - - /** Construct a DCP video frame. * @param frame Input frame. * @param index Index of the frame within the DCP. @@ -101,18 +98,17 @@ DCPVideo::DCPVideo (shared_ptr frame, shared_ptr -DCPVideo::convert_to_xyz (shared_ptr frame, dcp::NoteHandler note) +DCPVideo::convert_to_xyz (shared_ptr frame) { shared_ptr xyz; - auto image = frame->image (bind(&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, Image::Alignment::PADDED, false); + auto image = frame->image (bind(&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, false); if (frame->colour_conversion()) { xyz = dcp::rgb_to_xyz ( image->data()[0], image->size(), image->stride()[0], - frame->colour_conversion().get(), - note + frame->colour_conversion().get() ); } else { xyz = make_shared(image->data()[0], image->size(), image->stride()[0]); @@ -125,16 +121,16 @@ DCPVideo::convert_to_xyz (shared_ptr frame, dcp::NoteHandler * @return Encoded data. */ ArrayData -DCPVideo::encode_locally () +DCPVideo::encode_locally () const { auto const comment = Config::instance()->dcp_j2k_comment(); ArrayData enc = {}; /* This was empirically derived by a user: see #1902 */ int const minimum_size = 16384; - LOG_GENERAL ("Using minimum frame size %1", minimum_size); + LOG_DEBUG_ENCODE("Using minimum frame size %1", minimum_size); - auto xyz = convert_to_xyz (_frame, boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); + auto xyz = convert_to_xyz(_frame); int noise_amount = 2; int pixel_skip = 16; while (true) { @@ -148,7 +144,7 @@ DCPVideo::encode_locally () ); if (enc.size() >= minimum_size) { - LOG_GENERAL (N_("Frame %1 encoded size was OK (%2)"), _index, enc.size()); + LOG_DEBUG_ENCODE(N_("Frame %1 encoded size was OK (%2)"), _index, enc.size()); break; } @@ -159,7 +155,7 @@ DCPVideo::encode_locally () * convert_to_xyz() again because compress_j2k() corrupts its xyz parameter. */ - xyz = convert_to_xyz (_frame, boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); + xyz = convert_to_xyz(_frame); auto size = xyz->size (); auto pixels = size.width * size.height; dcpomatic::RNG rng(42); @@ -204,7 +200,7 @@ DCPVideo::encode_locally () * @return Encoded data. */ ArrayData -DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) +DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) const { boost::asio::io_service io_service; boost::asio::ip::tcp::resolver resolver (io_service); @@ -212,6 +208,7 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query); auto socket = make_shared(timeout); + socket->set_send_buffer_size (512 * 1024); socket->connect (*endpoint_iterator); @@ -228,7 +225,7 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) /* Send XML metadata */ auto xml = doc.write_to_string ("UTF-8"); - socket->write (xml.length() + 1); + socket->write(xml.bytes() + 1); socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1); /* Send binary data */