Some const correctness for decompress_j2k
authorCarl Hetherington <cth@carlh.net>
Sun, 14 Feb 2021 19:55:37 +0000 (20:55 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 14 Feb 2021 19:55:37 +0000 (20:55 +0100)
src/j2k_transcode.cc
src/j2k_transcode.h

index dafe8fdf65ae6948bd60f9c9e22044d9610edb19..9b7210aafd7ff229d434f09487805c6b36a11e2e 100644 (file)
@@ -57,18 +57,25 @@ using namespace dcp;
 
 
 shared_ptr<dcp::OpenJPEGImage>
-dcp::decompress_j2k (ArrayData data, int reduce)
+dcp::decompress_j2k (Data const& data, int reduce)
 {
        return dcp::decompress_j2k (data.data(), data.size(), reduce);
 }
 
 
+shared_ptr<dcp::OpenJPEGImage>
+dcp::decompress_j2k (shared_ptr<const Data> data, int reduce)
+{
+       return dcp::decompress_j2k (data->data(), data->size(), reduce);
+}
+
+
 #ifdef LIBDCP_OPENJPEG2
 
 class ReadBuffer
 {
 public:
-       ReadBuffer (uint8_t* data, int64_t size)
+       ReadBuffer (uint8_t const * data, int64_t size)
                : _data (data)
                , _size (size)
                , _offset (0)
@@ -83,7 +90,7 @@ public:
        }
 
 private:
-       uint8_t* _data;
+       uint8_t const * _data;
        OPJ_SIZE_T _size;
        OPJ_SIZE_T _offset;
 };
@@ -118,7 +125,7 @@ compress_error_callback (char const * msg, void *)
 
 
 shared_ptr<dcp::OpenJPEGImage>
-dcp::decompress_j2k (uint8_t* data, int64_t size, int reduce)
+dcp::decompress_j2k (uint8_t const * data, int64_t size, int reduce)
 {
        DCP_ASSERT (reduce >= 0);
 
index 0687706d66504f700af6831b44b90ef6134ac483..52a0b46ef40141ebdc76dd7b1a36854f016728c4 100644 (file)
@@ -48,8 +48,6 @@ 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
@@ -59,7 +57,10 @@ extern std::shared_ptr<OpenJPEGImage> decompress_j2k (uint8_t* data, int64_t siz
  *  This is useful for scaling 4K DCP images down to 2K.
  *  @return OpenJPEGImage
  */
-extern std::shared_ptr<OpenJPEGImage> decompress_j2k (ArrayData data, int reduce);
+extern std::shared_ptr<OpenJPEGImage> decompress_j2k (uint8_t const * data, int64_t size, int reduce);
+
+extern std::shared_ptr<OpenJPEGImage> decompress_j2k (Data const& data, int reduce);
+extern std::shared_ptr<OpenJPEGImage> decompress_j2k (std::shared_ptr<const Data> 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.