|
|
|
@ -837,6 +837,31 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) |
|
|
|
|
if (ff_MPV_common_init(s) < 0) |
|
|
|
|
return -1; |
|
|
|
|
|
|
|
|
|
s->avctx->coded_frame = &s->current_picture.f; |
|
|
|
|
|
|
|
|
|
if (s->msmpeg4_version) { |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->ac_stats, |
|
|
|
|
2 * 2 * (MAX_LEVEL + 1) * |
|
|
|
|
(MAX_RUN + 1) * 2 * sizeof(int), fail); |
|
|
|
|
} |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->avctx->stats_out, 256, fail); |
|
|
|
|
|
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix, 64 * 32 * sizeof(int), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_chroma_intra_matrix, 64 * 32 * sizeof(int), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix, 64 * 32 * sizeof(int), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_chroma_intra_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->input_picture, |
|
|
|
|
MAX_PICTURE_COUNT * sizeof(Picture *), fail); |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->reordered_input_picture, |
|
|
|
|
MAX_PICTURE_COUNT * sizeof(Picture *), fail); |
|
|
|
|
|
|
|
|
|
if (s->avctx->noise_reduction) { |
|
|
|
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset, |
|
|
|
|
2 * 64 * sizeof(uint16_t), fail); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ff_dct_encode_init(s); |
|
|
|
|
|
|
|
|
|
if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) |
|
|
|
@ -916,6 +941,9 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
fail: |
|
|
|
|
ff_MPV_encode_end(avctx); |
|
|
|
|
return AVERROR_UNKNOWN; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
av_cold int ff_MPV_encode_end(AVCodecContext *avctx) |
|
|
|
|