* commit '1f8eb69079880ef1f394c498dfdf471f91222a06': mpegvideo: move encoding-only initialization from common_init() to encode_init() Conflicts: libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.2-rc1
@@ -1048,30 +1048,6 @@ av_cold int ff_MPV_common_init(MpegEncContext *s) | |||||
s->stream_codec_tag = avpriv_toupper4(s->avctx->stream_codec_tag); | s->stream_codec_tag = avpriv_toupper4(s->avctx->stream_codec_tag); | ||||
s->avctx->coded_frame = &s->current_picture.f; | |||||
if (s->encoding) { | |||||
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_ALLOCZ_OR_GOTO(s->avctx, s->picture, | FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, | ||||
MAX_PICTURE_COUNT * sizeof(Picture), fail); | MAX_PICTURE_COUNT * sizeof(Picture), fail); | ||||
for (i = 0; i < MAX_PICTURE_COUNT; i++) { | for (i = 0; i < MAX_PICTURE_COUNT; i++) { | ||||
@@ -837,6 +837,31 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) | |||||
if (ff_MPV_common_init(s) < 0) | if (ff_MPV_common_init(s) < 0) | ||||
return -1; | 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); | ff_dct_encode_init(s); | ||||
if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) | 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; | return 0; | ||||
fail: | |||||
ff_MPV_encode_end(avctx); | |||||
return AVERROR_UNKNOWN; | |||||
} | } | ||||
av_cold int ff_MPV_encode_end(AVCodecContext *avctx) | av_cold int ff_MPV_encode_end(AVCodecContext *avctx) | ||||