* 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) | ||||