/*
- Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
Taken from code Copyright (C) 2010-2011 Terrence Meiczinger
This program is free software; you can redistribute it and/or modify
#include "config.h"
#include "exceptions.h"
#include "server.h"
-#include "util.h"
-#include "scaler.h"
+#include "dcpomatic_socket.h"
#include "image.h"
#include "log.h"
#include "cross.h"
#include "player_video.h"
-#include "encoded_data.h"
+#include "raw_convert.h"
+#include "data.h"
#include <libcxml/cxml.h>
-#include <dcp/xyz_frame.h>
+#include <dcp/xyz_image.h>
#include <dcp/rgb_xyz.h>
#include <dcp/colour_matrix.h>
-#include <dcp/raw_convert.h>
#include <boost/array.hpp>
#include <boost/asio.hpp>
#include <boost/filesystem.hpp>
using boost::shared_ptr;
using boost::lexical_cast;
using dcp::Size;
-using dcp::raw_convert;
#define DCI_COEFFICENT (48.0 / 52.37)
/** J2K-encode this frame on the local host.
* @return Encoded data.
*/
-shared_ptr<EncodedData>
+shared_ptr<Data>
DCPVideo::encode_locally (dcp::NoteHandler note)
{
- shared_ptr<dcp::XYZFrame> xyz;
+ shared_ptr<dcp::XYZImage> xyz;
+ shared_ptr<Image> image = _frame->image (AV_PIX_FMT_RGB48LE, _burn_subtitles, note);
if (_frame->colour_conversion()) {
xyz = dcp::rgb_to_xyz (
- _frame->image (AV_PIX_FMT_RGB48LE, _burn_subtitles, note),
+ image->data()[0],
+ image->size(),
+ image->stride()[0],
_frame->colour_conversion().get()
);
} else {
- xyz = dcp::xyz_to_xyz (_frame->image (AV_PIX_FMT_RGB48LE, _burn_subtitles, note));
+ xyz = dcp::xyz_to_xyz (image->data()[0], image->size(), image->stride()[0]);
}
/* Set the max image and component sizes based on frame_rate */
break;
}
- shared_ptr<EncodedData> enc (new LocallyEncodedData (cio->buffer, cio_tell (cio)));
+ shared_ptr<Data> enc (new Data (cio->buffer, cio_tell (cio)));
opj_cio_close (cio);
free (parameters.cp_comment);
* @param serv Server to send to.
* @return Encoded data.
*/
-shared_ptr<EncodedData>
+shared_ptr<Data>
DCPVideo::encode_remotely (ServerDescription serv)
{
boost::asio::io_service io_service;
/* Read the response (JPEG2000-encoded data); this blocks until the data
is ready and sent back.
*/
- shared_ptr<EncodedData> e (new RemotelyEncodedData (socket->read_uint32 ()));
- socket->read (e->data(), e->size());
+ shared_ptr<Data> e (new Data (socket->read_uint32 ()));
+ socket->read (e->data().get(), e->size());
LOG_GENERAL (N_("Finished remotely-encoded frame %1"), _index);