Jpeg2000: Fixed for DCP pipeline

Profile and color space were not properly set.
This commit is contained in:
Sergey Sharybin 2015-07-27 22:34:55 +02:00
parent 2b632dd8c2
commit 6df3e3a959
Notes: blender-bot 2023-02-14 08:49:50 +01:00
Referenced by issue #45611, Dupliframes last object Z-fighting
1 changed files with 12 additions and 2 deletions

View File

@ -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;
}