Try to fix wavelet transform levels count for 4K (dcpomatic #1125).
authorCarl Hetherington <cth@carlh.net>
Sat, 2 Sep 2017 20:08:17 +0000 (21:08 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 2 Sep 2017 20:08:17 +0000 (21:08 +0100)
src/j2k.cc

index 4a154574db331840dfb8b89986249ae1475c5f9c..b3192025e9377cab5de02038ddbeb1a8a73ff46e 100644 (file)
@@ -274,6 +274,9 @@ dcp::compress_j2k (shared_ptr<const OpenJPEGImage> xyz, int bandwidth, int frame
        /* Set encoding parameters to default values */
        opj_cparameters_t parameters;
        opj_set_default_encoder_parameters (&parameters);
+       if (fourk) {
+               parameters.numresolution = 7;
+       }
        parameters.rsiz = fourk ? OPJ_PROFILE_CINEMA_4K : OPJ_PROFILE_CINEMA_2K;
        parameters.cp_comment = strdup ("libdcp");
 
@@ -352,6 +355,9 @@ dcp::compress_j2k (shared_ptr<const OpenJPEGImage> xyz, int bandwidth, int frame
        /* Set encoding parameters to default values */
        opj_cparameters_t parameters;
        opj_set_default_encoder_parameters (&parameters);
+       if (fourk) {
+               parameters.numresolution = 7;
+       }
 
        /* Set default cinema parameters */
        parameters.tile_size_on = false;