From b0849ca5ee5b26e72f78c5b5601a9a9a40177e01 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 30 Jun 2015 11:55:53 +0100 Subject: [PATCH] Fix build. --- src/lib/dcp_video.cc | 2 +- src/lib/jpeg2000_encoder.cc | 10 +++++----- src/lib/jpeg2000_encoder.h | 17 ++++++++--------- src/lib/openjpeg_encoder.cc | 32 ++++++++++++++++---------------- src/lib/openjpeg_encoder.h | 2 +- src/lib/poznan_encoder.cc | 18 +++++++++--------- src/lib/poznan_encoder.h | 16 ++++++++-------- test/poznan.cc | 8 +++----- 8 files changed, 51 insertions(+), 54 deletions(-) diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc index f3ac4da00..af4c8c3ab 100644 --- a/src/lib/dcp_video.cc +++ b/src/lib/dcp_video.cc @@ -130,7 +130,7 @@ DCPVideo::encode_locally (dcp::NoteHandler note) encoder = JPEG2000Encoder::all().front (); } - shared_ptr enc = encoder->encode ( + Data enc = encoder->encode ( xyz, _j2k_bandwidth, _frames_per_second, _resolution, _frame->eyes() == EYES_LEFT || _frame->eyes() == EYES_RIGHT ); diff --git a/src/lib/jpeg2000_encoder.cc b/src/lib/jpeg2000_encoder.cc index c7c39ea0e..fe6959cd5 100644 --- a/src/lib/jpeg2000_encoder.cc +++ b/src/lib/jpeg2000_encoder.cc @@ -45,7 +45,7 @@ JPEG2000Encoder::setup_encoders () try { _encoders.push_back (shared_ptr (new OpenJPEGEncoder ())); } catch (JPEG2000EncoderUnavailableException &) { - + } } @@ -67,11 +67,11 @@ JPEG2000Encoder::from_id (string id) return shared_ptr (); } -shared_ptr -JPEG2000Encoder::encode (shared_ptr input, int bandwidth, int frame_rate, Resolution resolution, bool threed) +Data +JPEG2000Encoder::encode (shared_ptr input, int bandwidth, int frame_rate, Resolution resolution, bool threed) { std::cout << "Encoding with " << name() << "\n"; - + if (!_bandwidth || _bandwidth.get() != bandwidth || !_frame_rate || _frame_rate.get() != frame_rate || !_resolution || _resolution.get() != resolution || @@ -81,7 +81,7 @@ JPEG2000Encoder::encode (shared_ptr input, int bandwidth, i _frame_rate = frame_rate; _resolution = resolution; _threed = threed; - + parameters_changed (); } diff --git a/src/lib/jpeg2000_encoder.h b/src/lib/jpeg2000_encoder.h index a05bd0ac5..0f907e1ba 100644 --- a/src/lib/jpeg2000_encoder.h +++ b/src/lib/jpeg2000_encoder.h @@ -21,22 +21,21 @@ #define DCPOMATIC_JPEG2000_ENCODER_H #include "types.h" +#include "data.h" #include #include #include #include namespace dcp { - class XYZImage; + class OpenJPEGImage; } -class EncodedData; - class JPEG2000Encoder { public: virtual ~JPEG2000Encoder () {} - + /** @return Internationalised descriptive name for this encoder */ virtual std::string name () const = 0; /** @return Non-internationalised ID for this encoder */ @@ -44,11 +43,11 @@ public: /** @param input XYZ input frame. * @param note_handler Handler for notes about the encode. - + * @return Encoded JPEG2000 data. */ - boost::shared_ptr encode ( - boost::shared_ptr input, + Data encode ( + boost::shared_ptr input, int bandwidth, int frame_rate, Resolution resolution, @@ -62,8 +61,8 @@ public: protected: - virtual boost::shared_ptr do_encode ( - boost::shared_ptr input + virtual Data do_encode ( + boost::shared_ptr input ) = 0; virtual void parameters_changed () {} diff --git a/src/lib/openjpeg_encoder.cc b/src/lib/openjpeg_encoder.cc index 9cfd8146c..5094cf150 100644 --- a/src/lib/openjpeg_encoder.cc +++ b/src/lib/openjpeg_encoder.cc @@ -19,9 +19,9 @@ */ #include "openjpeg_encoder.h" -#include "encoded_data.h" +#include "data.h" #include "exceptions.h" -#include +#include #include "i18n.h" @@ -34,8 +34,8 @@ OpenJPEGEncoder::name () const return _("OpenJPEG library"); } -shared_ptr -OpenJPEGEncoder::do_encode (shared_ptr input) +Data +OpenJPEGEncoder::do_encode (shared_ptr input) { /* Set the max image and component sizes based on frame_rate */ int max_cs_len = ((float) _bandwidth.get()) / 8 / _frame_rate.get(); @@ -59,11 +59,11 @@ OpenJPEGEncoder::do_encode (shared_ptr input) parameters.tile_size_on = false; parameters.cp_tdx = 1; parameters.cp_tdy = 1; - + /* Tile part */ parameters.tp_flag = 'C'; parameters.tp_on = 1; - + /* Tile and Image shall be at (0,0) */ parameters.cp_tx0 = 0; parameters.cp_ty0 = 0; @@ -74,19 +74,19 @@ OpenJPEGEncoder::do_encode (shared_ptr input) parameters.cblockw_init = 32; parameters.cblockh_init = 32; parameters.csty |= 0x01; - + /* The progression order shall be CPRL */ parameters.prog_order = CPRL; - + /* No ROI */ parameters.roi_compno = -1; - + parameters.subsampling_dx = 1; parameters.subsampling_dy = 1; - + /* 9-7 transform */ parameters.irreversible = 1; - + parameters.tcp_rates[0] = 0; parameters.tcp_numlayers++; parameters.cp_disto_alloc = 1; @@ -94,27 +94,27 @@ OpenJPEGEncoder::do_encode (shared_ptr input) if (_resolution.get() == RESOLUTION_4K) { parameters.numpocs = 2; parameters.POC[0].tile = 1; - parameters.POC[0].resno0 = 0; + parameters.POC[0].resno0 = 0; parameters.POC[0].compno0 = 0; parameters.POC[0].layno1 = 1; parameters.POC[0].resno1 = parameters.numresolution - 1; parameters.POC[0].compno1 = 3; parameters.POC[0].prg1 = CPRL; parameters.POC[1].tile = 1; - parameters.POC[1].resno0 = parameters.numresolution - 1; + parameters.POC[1].resno0 = parameters.numresolution - 1; parameters.POC[1].compno0 = 0; parameters.POC[1].layno1 = 1; parameters.POC[1].resno1 = parameters.numresolution; parameters.POC[1].compno1 = 3; parameters.POC[1].prg1 = CPRL; } - + parameters.cp_comment = strdup (N_("DCP-o-matic")); parameters.cp_cinema = _resolution.get() == RESOLUTION_2K ? CINEMA2K_24 : CINEMA4K_24; /* 3 components, so use MCT */ parameters.tcp_mct = 1; - + /* set max image */ parameters.max_comp_size = max_comp_size; parameters.tcp_rates[0] = ((float) (3 * input->size().width * input->size().height * 12)) / (max_cs_len * 8); @@ -138,7 +138,7 @@ OpenJPEGEncoder::do_encode (shared_ptr input) throw EncodeError (N_("JPEG2000 encoding failed")); } - shared_ptr enc (new LocallyEncodedData (cio->buffer, cio_tell (cio))); + Data enc (cio->buffer, cio_tell (cio)); opj_cio_close (cio); free (parameters.cp_comment); diff --git a/src/lib/openjpeg_encoder.h b/src/lib/openjpeg_encoder.h index dd109e7c1..0351abe4d 100644 --- a/src/lib/openjpeg_encoder.h +++ b/src/lib/openjpeg_encoder.h @@ -30,5 +30,5 @@ public: } protected: - boost::shared_ptr do_encode (boost::shared_ptr input); + Data do_encode (boost::shared_ptr input); }; diff --git a/src/lib/poznan_encoder.cc b/src/lib/poznan_encoder.cc index c5de41920..937566e81 100644 --- a/src/lib/poznan_encoder.cc +++ b/src/lib/poznan_encoder.cc @@ -19,10 +19,10 @@ #include "poznan_encoder.h" #include "exceptions.h" -#include "encoded_data.h" +#include "data.h" #include "raw_convert.h" #include -#include +#include #include #include "i18n.h" @@ -41,7 +41,7 @@ PoznanEncoder::PoznanEncoder () void* tier2 = open_library ("tier2"); void* types = open_library ("types"); void* misc = open_library ("misc"); - + _init_device = (void (*)(type_parameters *)) dlsym (config, "init_device"); _color_coder_lossy = (void (*)(type_image *)) dlsym (preprocessing, "color_coder_lossy"); _fwt = (void (*)(type_tile *)) dlsym (dwt, "fwt"); @@ -54,7 +54,7 @@ PoznanEncoder::PoznanEncoder () _cuda_h_allocate_mem = (void (*)(void **, uint64_t)) dlsym (misc, "cuda_h_allocate_mem"); _cuda_memcpy_htd = (void (*)(void *, void *, uint64_t)) dlsym (misc, "cuda_memcpy_htd"); _cuda_h_free = (void (*)(void *)) dlsym (misc, "cuda_h_free"); - + if ( !_init_device || !_color_coder_lossy || !_fwt || !_quantize_tile || !_encode_tile || !_set_coding_parameters || !_init_tiles || @@ -115,7 +115,7 @@ PoznanEncoder::parameters_changed () _param.param_mct_klt_iterations = 10000; _param.param_mct_klt_border_eigenvalue = 0.000001; _param.param_mct_klt_err = 1.0e-7; - + _init_device (&_param); } @@ -125,8 +125,8 @@ PoznanEncoder::name () const return _("CUDA (GPU) encoder (Poznan Supercomputing and Networking Center)"); } -shared_ptr -PoznanEncoder::do_encode (shared_ptr input) +Data +PoznanEncoder::do_encode (shared_ptr input) { type_image* img = new type_image; @@ -167,7 +167,7 @@ PoznanEncoder::do_encode (shared_ptr input) _cuda_memcpy_htd (c->img_data, c->img_data_d, pixels * sizeof (type_data)); _cuda_h_free (c->img_data); } - + std::cout << "Tile " << tile->width << "x" << tile->height << "\n"; _fwt (tile); _quantize_tile (tile); @@ -179,7 +179,7 @@ PoznanEncoder::do_encode (shared_ptr input) std::cout << img->num_tiles << " tiles.\n"; std::cout << "got " << buffer.bytes_count << " bytes.\n"; - shared_ptr encoded (new EncodedData (buffer.data, buffer.bytes_count)); + Data encoded (buffer.data, buffer.bytes_count); /* XXX! */ static int shit = 0; diff --git a/src/lib/poznan_encoder.h b/src/lib/poznan_encoder.h index 57d90c3d8..2184e49ff 100644 --- a/src/lib/poznan_encoder.h +++ b/src/lib/poznan_encoder.h @@ -26,7 +26,7 @@ class PoznanEncoder : public JPEG2000Encoder { public: PoznanEncoder (); - + std::string name () const; std::string id () const { @@ -35,22 +35,22 @@ public: protected: - boost::shared_ptr do_encode ( - boost::shared_ptr input + Data do_encode ( + boost::shared_ptr input ); void parameters_changed (); - + private: void* open_library (std::string name); - + type_parameters _param; void (*_init_device) (type_parameters *); void (*_color_coder_lossy) (type_image *); - void (*_fwt) (type_tile *); - void (*_quantize_tile) (type_tile *); - void (*_encode_tile) (type_tile *); + void (*_fwt) (type_tile *); + void (*_quantize_tile) (type_tile *); + void (*_encode_tile) (type_tile *); void (*_set_coding_parameters) (type_image *, type_parameters *); void (*_init_tiles) (type_image **, type_parameters *); void (*_init_buffer) (type_buffer *); diff --git a/test/poznan.cc b/test/poznan.cc index 67769dd8e..d96dcae1b 100644 --- a/test/poznan.cc +++ b/test/poznan.cc @@ -11,7 +11,7 @@ using boost::shared_ptr; int main () { JPEG2000Encoder::setup_encoders (); - + shared_ptr encoder = JPEG2000Encoder::from_id ("poznan"); shared_ptr rgb (new Image (PIX_FMT_RGB24, dcp::Size (1998, 1080), false)); @@ -42,8 +42,6 @@ int main () } } - vector presets = Config::instance()->colour_conversions (); - shared_ptr xyz = dcp::rgb_to_xyz (rgb->data()[0], rgb->size(), rgb->stride()[0], presets.front().conversion); - - shared_ptr j2k = encoder->encode (xyz, 100000000, 24, RESOLUTION_2K, false); + shared_ptr xyz = dcp::rgb_to_xyz (rgb->data()[0], rgb->size(), rgb->stride()[0], ColourConversion::rec709_to_xyz ()); + Data j2k = encoder->encode (xyz, 100000000, 24, RESOLUTION_2K, false); } -- 2.30.2