Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -353,6 +353,7 @@ static av_cold int init_matrices(MpegEncContext *s, AVCodecContext *avctx) · 352 unmodified lines | |||
| 353 | { | 353 | { |
| 354 | const int nb_matrices = 1 + (s->out_format == FMT_MJPEG) + !s->intra_only; | 354 | const int nb_matrices = 1 + (s->out_format == FMT_MJPEG) + !s->intra_only; |
| 355 | const uint16_t *intra_matrix, *inter_matrix; | 355 | const uint16_t *intra_matrix, *inter_matrix; |
| 356 | int ret; | ||
| 356 | 357 | ||
| 357 | if (!ALLOCZ_ARRAYS(s->q_intra_matrix, 32, nb_matrices) || | 358 | if (!ALLOCZ_ARRAYS(s->q_intra_matrix, 32, nb_matrices) || |
| 358 | !ALLOCZ_ARRAYS(s->q_intra_matrix16, 32, nb_matrices)) | 359 | !ALLOCZ_ARRAYS(s->q_intra_matrix16, 32, nb_matrices)) |
| @@ -399,6 +400,19 @@ static av_cold int init_matrices(MpegEncContext *s, AVCodecContext *avctx) · 40 unmodified lines | |||
| 399 | s->inter_matrix[j] = inter_matrix[i]; | 400 | s->inter_matrix[j] = inter_matrix[i]; |
| 400 | } | 401 | } |
| 401 | 402 | ||
| 403 | /* precompute matrix */ | ||
| 404 | ret = ff_check_codec_matrices(avctx, FF_MATRIX_TYPE_INTRA | FF_MATRIX_TYPE_INTER, 1, 255); | ||
| 405 | if (ret < 0) | ||
| 406 | return ret; | ||
| 407 | |||
| 408 | ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, | ||
| 409 | s->intra_matrix, s->intra_quant_bias, avctx->qmin, | ||
| 410 | 31, 1); | ||
| 411 | if (s->q_inter_matrix) | ||
| 412 | ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16, | ||
| 413 | s->inter_matrix, s->inter_quant_bias, avctx->qmin, | ||
| 414 | 31, 0); | ||
| 415 | |||
| 402 | return 0; | 416 | return 0; |
| 403 | } | 417 | } |
| 404 | 418 | ||
| @@ -1017,22 +1031,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) · 612 unmodified lines | |||
| 1017 | #endif | 1031 | #endif |
| 1018 | } | 1032 | } |
| 1019 | 1033 | ||
| 1020 | /* precompute matrix */ | ||
| 1021 | /* for mjpeg, we do include qscale in the matrix */ | ||
| 1022 | if (s->out_format != FMT_MJPEG) { | ||
| 1023 | ret = ff_check_codec_matrices(avctx, FF_MATRIX_TYPE_INTRA | FF_MATRIX_TYPE_INTER, 1, 255); | ||
| 1024 | if (ret < 0) | ||
| 1025 | return ret; | ||
| 1026 | |||
| 1027 | ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, | ||
| 1028 | s->intra_matrix, s->intra_quant_bias, avctx->qmin, | ||
| 1029 | 31, 1); | ||
| 1030 | if (s->q_inter_matrix) | ||
| 1031 | ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16, | ||
| 1032 | s->inter_matrix, s->inter_quant_bias, avctx->qmin, | ||
| 1033 | 31, 0); | ||
| 1034 | } | ||
| 1035 | |||
| 1036 | if ((ret = ff_rate_control_init(s)) < 0) | 1034 | if ((ret = ff_rate_control_init(s)) < 0) |
| 1037 | return ret; | 1035 | return ret; |
| 1038 | 1036 | ||