using std::stringstream;
using std::multimap;
using std::vector;
-using std::cerr;
using boost::shared_ptr;
using boost::algorithm::is_any_of;
using boost::algorithm::split;
using boost::thread;
using boost::bind;
+using libdcp::Size;
/** Create a server description from a string of metadata returned from as_metadata().
* @param v Metadata.
return -1;
}
- Size in_size (get_required_int (kv, "input_width"), get_required_int (kv, "input_height"));
+ libdcp::Size in_size (get_required_int (kv, "input_width"), get_required_int (kv, "input_height"));
int pixel_format_int = get_required_int (kv, "input_pixel_format");
- Size out_size (get_required_int (kv, "output_width"), get_required_int (kv, "output_height"));
+ libdcp::Size out_size (get_required_int (kv, "output_width"), get_required_int (kv, "output_height"));
int padding = get_required_int (kv, "padding");
int subtitle_offset = get_required_int (kv, "subtitle_offset");
float subtitle_scale = get_required_float (kv, "subtitle_scale");
int colour_lut_index = get_required_int (kv, "colour_lut");
int j2k_bandwidth = get_required_int (kv, "j2k_bandwidth");
Position subtitle_position (get_optional_int (kv, "subtitle_x"), get_optional_int (kv, "subtitle_y"));
- Size subtitle_size (get_optional_int (kv, "subtitle_width"), get_optional_int (kv, "subtitle_height"));
+ libdcp::Size subtitle_size (get_optional_int (kv, "subtitle_width"), get_optional_int (kv, "subtitle_height"));
/* This checks that colour_lut_index is within range */
colour_lut_index_to_name (colour_lut_index);
PixelFormat pixel_format = (PixelFormat) pixel_format_int;
Scaler const * scaler = Scaler::from_id (scaler_id);
- shared_ptr<Image> image (new AlignedImage (pixel_format, in_size));
+ shared_ptr<Image> image (new SimpleImage (pixel_format, in_size, true));
image->read_from_socket (socket);
shared_ptr<Subtitle> sub;
if (subtitle_size.width && subtitle_size.height) {
- shared_ptr<Image> subtitle_image (new AlignedImage (PIX_FMT_RGBA, subtitle_size));
+ shared_ptr<Image> subtitle_image (new SimpleImage (PIX_FMT_RGBA, subtitle_size, true));
subtitle_image->read_from_socket (socket);
sub.reset (new Subtitle (subtitle_position, subtitle_image));
}
);
shared_ptr<EncodedData> encoded = dcp_video_frame.encode_locally ();
- encoded->send (socket);
+ try {
+ encoded->send (socket);
+ } catch (std::exception& e) {
+ _log->log (String::compose (
+ "Send failed; frame %1, data size %2, pixel format %3, image size %4x%5, %6 components",
+ frame, encoded->size(), image->pixel_format(), image->size().width, image->size().height, image->components()
+ )
+ );
+ throw;
+ }
return frame;
}
try {
frame = process (socket);
} catch (std::exception& e) {
- cerr << "Error: " << e.what() << "\n";
+ _log->log (String::compose ("Error: %1", e.what()));
}
socket.reset ();