mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit '5dd8c08fd5e4c04d7a08d8934f0098a8a4a35c28'
* commit '5dd8c08fd5e4c04d7a08d8934f0098a8a4a35c28': mpeg: Change ff_convert_matrix() to take an MpegEncContext parameter Conflicts: libavcodec/mpegvideo.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
1fd0e9a56d
@ -212,14 +212,14 @@ static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias)
|
|||||||
int j = ctx->m.dsp.idct_permutation[ff_zigzag_direct[i]];
|
int j = ctx->m.dsp.idct_permutation[ff_zigzag_direct[i]];
|
||||||
weight_matrix[j] = ctx->cid_table->luma_weight[i];
|
weight_matrix[j] = ctx->cid_table->luma_weight[i];
|
||||||
}
|
}
|
||||||
ff_convert_matrix(&ctx->m.dsp, ctx->qmatrix_l, ctx->qmatrix_l16,
|
ff_convert_matrix(&ctx->m, ctx->qmatrix_l, ctx->qmatrix_l16,
|
||||||
weight_matrix, ctx->m.intra_quant_bias, 1,
|
weight_matrix, ctx->m.intra_quant_bias, 1,
|
||||||
ctx->m.avctx->qmax, 1);
|
ctx->m.avctx->qmax, 1);
|
||||||
for (i = 1; i < 64; i++) {
|
for (i = 1; i < 64; i++) {
|
||||||
int j = ctx->m.dsp.idct_permutation[ff_zigzag_direct[i]];
|
int j = ctx->m.dsp.idct_permutation[ff_zigzag_direct[i]];
|
||||||
weight_matrix[j] = ctx->cid_table->chroma_weight[i];
|
weight_matrix[j] = ctx->cid_table->chroma_weight[i];
|
||||||
}
|
}
|
||||||
ff_convert_matrix(&ctx->m.dsp, ctx->qmatrix_c, ctx->qmatrix_c16,
|
ff_convert_matrix(&ctx->m, ctx->qmatrix_c, ctx->qmatrix_c16,
|
||||||
weight_matrix, ctx->m.intra_quant_bias, 1,
|
weight_matrix, ctx->m.intra_quant_bias, 1,
|
||||||
ctx->m.avctx->qmax, 1);
|
ctx->m.avctx->qmax, 1);
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ void ff_set_qscale(MpegEncContext * s, int qscale);
|
|||||||
|
|
||||||
int ff_dct_common_init(MpegEncContext *s);
|
int ff_dct_common_init(MpegEncContext *s);
|
||||||
int ff_dct_encode_init(MpegEncContext *s);
|
int ff_dct_encode_init(MpegEncContext *s);
|
||||||
void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][64],
|
void ff_convert_matrix(MpegEncContext *s, int (*qmat)[64], uint16_t (*qmat16)[2][64],
|
||||||
const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra);
|
const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra);
|
||||||
int ff_dct_quantize_c(MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow);
|
int ff_dct_quantize_c(MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow);
|
||||||
|
|
||||||
|
@ -71,11 +71,12 @@ const AVOption ff_mpv_generic_options[] = {
|
|||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64],
|
void ff_convert_matrix(MpegEncContext *s, int (*qmat)[64],
|
||||||
uint16_t (*qmat16)[2][64],
|
uint16_t (*qmat16)[2][64],
|
||||||
const uint16_t *quant_matrix,
|
const uint16_t *quant_matrix,
|
||||||
int bias, int qmin, int qmax, int intra)
|
int bias, int qmin, int qmax, int intra)
|
||||||
{
|
{
|
||||||
|
DSPContext *dsp = &s->dsp;
|
||||||
int qscale;
|
int qscale;
|
||||||
int shift = 0;
|
int shift = 0;
|
||||||
|
|
||||||
@ -886,10 +887,10 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
|
|||||||
/* precompute matrix */
|
/* precompute matrix */
|
||||||
/* for mjpeg, we do include qscale in the matrix */
|
/* for mjpeg, we do include qscale in the matrix */
|
||||||
if (s->out_format != FMT_MJPEG) {
|
if (s->out_format != FMT_MJPEG) {
|
||||||
ff_convert_matrix(&s->dsp, s->q_intra_matrix, s->q_intra_matrix16,
|
ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
|
||||||
s->intra_matrix, s->intra_quant_bias, avctx->qmin,
|
s->intra_matrix, s->intra_quant_bias, avctx->qmin,
|
||||||
31, 1);
|
31, 1);
|
||||||
ff_convert_matrix(&s->dsp, s->q_inter_matrix, s->q_inter_matrix16,
|
ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16,
|
||||||
s->inter_matrix, s->inter_quant_bias, avctx->qmin,
|
s->inter_matrix, s->inter_quant_bias, avctx->qmin,
|
||||||
31, 0);
|
31, 0);
|
||||||
}
|
}
|
||||||
@ -3560,9 +3561,9 @@ static int encode_picture(MpegEncContext *s, int picture_number)
|
|||||||
s->c_dc_scale_table= ff_mpeg2_dc_scale_table[s->intra_dc_precision];
|
s->c_dc_scale_table= ff_mpeg2_dc_scale_table[s->intra_dc_precision];
|
||||||
s->chroma_intra_matrix[0] =
|
s->chroma_intra_matrix[0] =
|
||||||
s->intra_matrix[0] = ff_mpeg2_dc_scale_table[s->intra_dc_precision][8];
|
s->intra_matrix[0] = ff_mpeg2_dc_scale_table[s->intra_dc_precision][8];
|
||||||
ff_convert_matrix(&s->dsp, s->q_intra_matrix, s->q_intra_matrix16,
|
ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
|
||||||
s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
||||||
ff_convert_matrix(&s->dsp, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
|
ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
|
||||||
s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
||||||
s->qscale= 8;
|
s->qscale= 8;
|
||||||
}
|
}
|
||||||
@ -3579,9 +3580,9 @@ static int encode_picture(MpegEncContext *s, int picture_number)
|
|||||||
s->c_dc_scale_table= c;
|
s->c_dc_scale_table= c;
|
||||||
s->intra_matrix[0] = 13;
|
s->intra_matrix[0] = 13;
|
||||||
s->chroma_intra_matrix[0] = 14;
|
s->chroma_intra_matrix[0] = 14;
|
||||||
ff_convert_matrix(&s->dsp, s->q_intra_matrix, s->q_intra_matrix16,
|
ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
|
||||||
s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
||||||
ff_convert_matrix(&s->dsp, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
|
ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
|
||||||
s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
|
||||||
s->qscale= 8;
|
s->qscale= 8;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user