diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-01-24 04:15:26 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-01-24 04:15:26 +0100 |
| commit | ceaf7bc52712cb60708ed5eb5c62c5e463dd8e89 (patch) | |
| tree | c55e4b85ee30138ce83263045d77d01631378b2e /src/j2k.h | |
| parent | 6c37cc1979b2a01205a888c4c98f3334685ee8dd (diff) | |
Tidying.
Diffstat (limited to 'src/j2k.h')
| -rw-r--r-- | src/j2k.h | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net> This file is part of libdcp. @@ -32,16 +32,39 @@ */ +/** @file src/j2k.h + * @brief Methods to encode and decode JPEG2000 + */ + + #include "array_data.h" #include <memory> #include <stdint.h> + namespace dcp { + class OpenJPEGImage; + extern std::shared_ptr<OpenJPEGImage> decompress_j2k (uint8_t* data, int64_t size, int reduce); + +/** Decompress a JPEG2000 image to a bitmap + * @param data JPEG2000 data + * @param size Size of data in bytes + * @param reduce A power of 2 by which to reduce the size of the decoded image; + * e.g. 0 reduces by (2^0 == 1), ie keeping the same size. + * 1 reduces by (2^1 == 2), ie halving the size of the image. + * This is useful for scaling 4K DCP images down to 2K. + * @return OpenJPEGImage + */ extern std::shared_ptr<OpenJPEGImage> decompress_j2k (ArrayData data, int reduce); + +/** @xyz Picture to compress. Parts of xyz's data WILL BE OVERWRITTEN by libopenjpeg so xyz cannot be re-used + * after this call; see opj_j2k_encode where if l_reuse_data is false it will set l_tilec->data = l_img_comp->data. + */ extern ArrayData compress_j2k (std::shared_ptr<const OpenJPEGImage>, int bandwith, int frames_per_second, bool threed, bool fourk, std::string comment = "libdcp"); + } |
