Fix build.
authorCarl Hetherington <cth@carlh.net>
Tue, 30 Jun 2015 10:55:53 +0000 (11:55 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 21 Mar 2016 16:41:12 +0000 (16:41 +0000)
src/lib/dcp_video.cc
src/lib/jpeg2000_encoder.cc
src/lib/jpeg2000_encoder.h
src/lib/openjpeg_encoder.cc
src/lib/openjpeg_encoder.h
src/lib/poznan_encoder.cc
src/lib/poznan_encoder.h
test/poznan.cc

index f3ac4da00ff863414b00c0aace7d794afe628737..af4c8c3ab7e254817fc665d943dcae8c7c55fc00 100644 (file)
@@ -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
                );
 
index c7c39ea0e85ab2f03abfb0edb168f9119b61814b..fe6959cd535e8e7068906fa4b4a97a77998f3112 100644 (file)
@@ -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 ();
        }
 
index a05bd0ac5ab6240609cf97571bbc2e9eedd64b43..0f907e1ba0ac1c783167d4db2f07115044d40f99 100644 (file)
 #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 () {}
index 9cfd8146c5859b6278cb7f390d56814fc208795a..5094cf1508ed03657401dd9cd38f7137192053c8 100644 (file)
@@ -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);
index dd109e7c1baaf05f013c4ebf49811b3ca5208d67..0351abe4dc013eb22a4c80a9799b6f430a542a68 100644 (file)
@@ -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);
 };
index c5de41920be00a6cc40ace4ba42b1843e502292d..937566e8105312c871a0588a41c7899a537b668b 100644 (file)
 
 #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;
index 57d90c3d8cc7d91e6fafd5ae2b2d893206720494..2184e49ff3d3728a04db181acebb8e1f773a4523 100644 (file)
@@ -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 *);
index 67769dd8e3bab65f40efd5ef78cd50d0739dfe25..d96dcae1b8270f8db989f1a6cec25df91c1c360a 100644 (file)
@@ -11,7 +11,7 @@ using boost::shared_ptr;
 int main ()
 {
        JPEG2000Encoder::setup_encoders ();
-       
+
        shared_ptr<JPEG2000Encoder> encoder = JPEG2000Encoder::from_id ("poznan");
 
        shared_ptr<Image> rgb (new Image (PIX_FMT_RGB24, dcp::Size (1998, 1080), false));
@@ -42,8 +42,6 @@ int main ()
                }
        }
 
-       vector<PresetColourConversion> presets = Config::instance()->colour_conversions ();
-       shared_ptr<const dcp::XYZImage> xyz = dcp::rgb_to_xyz (rgb->data()[0], rgb->size(), rgb->stride()[0], presets.front().conversion);
-
-       shared_ptr<EncodedData> j2k = encoder->encode (xyz, 100000000, 24, RESOLUTION_2K, false);
+       shared_ptr<const dcp::OpenJPEGImage> 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);
 }