diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-27 23:34:55 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-27 23:35:24 +0300 |
commit | 6df3e3a9591975ea9442183b331f2ca99fdc9ae8 (patch) | |
tree | ebeeac38171dc29393a8c9d844a7db039fc1b311 /source/blender/imbuf/intern/jp2.c | |
parent | 2b632dd8c2ca3fc7ad04f9c35bf1ef6f462ba5e5 (diff) |
Jpeg2000: Fixed for DCP pipeline
Profile and color space were not properly set.
Diffstat (limited to 'source/blender/imbuf/intern/jp2.c')
-rw-r--r-- | source/blender/imbuf/intern/jp2.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c index 7cb7636573b..570ca5ba06e 100644 --- a/source/blender/imbuf/intern/jp2.c +++ b/source/blender/imbuf/intern/jp2.c @@ -58,6 +58,11 @@ typedef struct img_folder { float *rates; } img_fol_t; +enum { + DCP_CINEMA2K = 3, + DCP_CINEMA4K = 4, +}; + static int check_jp2(const unsigned char *mem) /* J2K_CFMT */ { return memcmp(JP2_HEAD, mem, sizeof(JP2_HEAD)) ? 0 : 1; @@ -459,7 +464,6 @@ static void cinema_parameters(opj_cparameters_t *parameters) /* 9-7 transform */ parameters->irreversible = 1; - } static void cinema_setup_encoder(opj_cparameters_t *parameters, opj_image_t *image, img_fol_t *img_fol) @@ -479,6 +483,9 @@ static void cinema_setup_encoder(opj_cparameters_t *parameters, opj_image_t *ima image->comps[0].w, image->comps[0].h); parameters->cp_rsiz = STD_RSIZ; } + else { + parameters->cp_rsiz = DCP_CINEMA2K; + } break; case CINEMA4K_24: @@ -494,6 +501,9 @@ static void cinema_setup_encoder(opj_cparameters_t *parameters, opj_image_t *ima image->comps[0].w, image->comps[0].h); parameters->cp_rsiz = STD_RSIZ; } + else { + parameters->cp_rsiz = DCP_CINEMA2K; + } parameters->numpocs = initialise_4K_poc(parameters->POC, parameters->numresolution); break; case OFF: @@ -607,7 +617,7 @@ static opj_image_t *ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters) cinema_parameters(parameters); } - color_space = CLRSPC_SYCC; + color_space = (ibuf->foptions.flag & JP2_YCC) ? CLRSPC_SYCC : CLRSPC_SRGB; prec = 12; numcomps = 3; } |