diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-06-30 11:55:53 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-03-21 16:41:12 +0000 |
| commit | b0849ca5ee5b26e72f78c5b5601a9a9a40177e01 (patch) | |
| tree | 9a5aba33a596270ab772f88ad070f9f5cb56d5f5 /src/lib | |
| parent | 11da1ba251863bb17bdfc52ab2b226f0d1929be4 (diff) | |
Fix build.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/dcp_video.cc | 2 | ||||
| -rw-r--r-- | src/lib/jpeg2000_encoder.cc | 10 | ||||
| -rw-r--r-- | src/lib/jpeg2000_encoder.h | 17 | ||||
| -rw-r--r-- | src/lib/openjpeg_encoder.cc | 32 | ||||
| -rw-r--r-- | src/lib/openjpeg_encoder.h | 2 | ||||
| -rw-r--r-- | src/lib/poznan_encoder.cc | 18 | ||||
| -rw-r--r-- | src/lib/poznan_encoder.h | 16 |
7 files changed, 48 insertions, 49 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<EncodedData> 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<JPEG2000Encoder> (new OpenJPEGEncoder ())); } catch (JPEG2000EncoderUnavailableException &) { - + } } @@ -67,11 +67,11 @@ JPEG2000Encoder::from_id (string id) return shared_ptr<JPEG2000Encoder> (); } -shared_ptr<EncodedData> -JPEG2000Encoder::encode (shared_ptr<const dcp::XYZImage> input, int bandwidth, int frame_rate, Resolution resolution, bool threed) +Data +JPEG2000Encoder::encode (shared_ptr<const dcp::OpenJPEGImage> 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<const dcp::XYZImage> 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 <dcp/types.h> #include <boost/shared_ptr.hpp> #include <boost/optional.hpp> #include <list> 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<EncodedData> encode ( - boost::shared_ptr<const dcp::XYZImage> input, + Data encode ( + boost::shared_ptr<const dcp::OpenJPEGImage> input, int bandwidth, int frame_rate, Resolution resolution, @@ -62,8 +61,8 @@ public: protected: - virtual boost::shared_ptr<EncodedData> do_encode ( - boost::shared_ptr<const dcp::XYZImage> input + virtual Data do_encode ( + boost::shared_ptr<const dcp::OpenJPEGImage> 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 <dcp/xyz_image.h> +#include <dcp/openjpeg_image.h> #include "i18n.h" @@ -34,8 +34,8 @@ OpenJPEGEncoder::name () const return _("OpenJPEG library"); } -shared_ptr<EncodedData> -OpenJPEGEncoder::do_encode (shared_ptr<const dcp::XYZImage> input) +Data +OpenJPEGEncoder::do_encode (shared_ptr<const dcp::OpenJPEGImage> 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<const dcp::XYZImage> 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<const dcp::XYZImage> 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<const dcp::XYZImage> 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<const dcp::XYZImage> input) throw EncodeError (N_("JPEG2000 encoding failed")); } - shared_ptr<EncodedData> 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<EncodedData> do_encode (boost::shared_ptr<const dcp::XYZImage> input); + Data do_encode (boost::shared_ptr<const dcp::OpenJPEGImage> 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 <poznan/tier2/markers.h> -#include <dcp/xyz_image.h> +#include <dcp/openjpeg_image.h> #include <dlfcn.h> #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<EncodedData> -PoznanEncoder::do_encode (shared_ptr<const dcp::XYZImage> input) +Data +PoznanEncoder::do_encode (shared_ptr<const dcp::OpenJPEGImage> input) { type_image* img = new type_image; @@ -167,7 +167,7 @@ PoznanEncoder::do_encode (shared_ptr<const dcp::XYZImage> 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<const dcp::XYZImage> input) std::cout << img->num_tiles << " tiles.\n"; std::cout << "got " << buffer.bytes_count << " bytes.\n"; - shared_ptr<EncodedData> 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<EncodedData> do_encode ( - boost::shared_ptr<const dcp::XYZImage> input + Data do_encode ( + boost::shared_ptr<const dcp::OpenJPEGImage> 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 *); |
