|
|
@@ -222,6 +222,7 @@ typedef struct ProresThreadData { |
|
|
|
DECLARE_ALIGNED(16, int16_t, blocks)[MAX_PLANES][64 * 4 * MAX_MBS_PER_SLICE]; |
|
|
|
DECLARE_ALIGNED(16, uint16_t, emu_buf)[16 * 16]; |
|
|
|
int16_t custom_q[64]; |
|
|
|
int16_t custom_chroma_q[64]; |
|
|
|
struct TrellisNode *nodes; |
|
|
|
} ProresThreadData; |
|
|
|
|
|
|
@@ -232,6 +233,7 @@ typedef struct ProresContext { |
|
|
|
int16_t quants[MAX_STORED_Q][64]; |
|
|
|
int16_t quants_chroma[MAX_STORED_Q][64]; |
|
|
|
int16_t custom_q[64]; |
|
|
|
int16_t custom_chroma_q[64]; |
|
|
|
const uint8_t *quant_mat; |
|
|
|
const uint8_t *quant_chroma_mat; |
|
|
|
const uint8_t *scantable; |
|
|
@@ -574,7 +576,7 @@ static int encode_slice(AVCodecContext *avctx, const AVFrame *pic, |
|
|
|
qmat_chroma = ctx->quants_chroma[quant]; |
|
|
|
} else { |
|
|
|
qmat = ctx->custom_q; |
|
|
|
qmat_chroma = ctx->custom_q; |
|
|
|
qmat_chroma = ctx->custom_chroma_q; |
|
|
|
for (i = 0; i < 64; i++) { |
|
|
|
qmat[i] = ctx->quant_mat[i] * quant; |
|
|
|
qmat_chroma[i] = ctx->quant_chroma_mat[i] * quant; |
|
|
@@ -902,7 +904,7 @@ static int find_slice_quant(AVCodecContext *avctx, |
|
|
|
qmat_chroma = ctx->quants_chroma[q]; |
|
|
|
} else { |
|
|
|
qmat = td->custom_q; |
|
|
|
qmat_chroma = td->custom_q; |
|
|
|
qmat_chroma = td->custom_chroma_q; |
|
|
|
for (i = 0; i < 64; i++) { |
|
|
|
qmat[i] = ctx->quant_mat[i] * q; |
|
|
|
qmat_chroma[i] = ctx->quant_chroma_mat[i] * q; |
|
|
|