mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
mpegvideo: move encoding-only initialization from common_init() to encode_init()
This commit is contained in:
parent
bedf952bb8
commit
1f8eb69079
@ -1037,37 +1037,6 @@ av_cold int ff_MPV_common_init(MpegEncContext *s)
|
||||
|
||||
s->stream_codec_tag = avpriv_toupper4(s->avctx->stream_codec_tag);
|
||||
|
||||
if (s->width && s->height) {
|
||||
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_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_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,
|
||||
MAX_PICTURE_COUNT * sizeof(Picture), fail);
|
||||
for (i = 0; i < MAX_PICTURE_COUNT; i++) {
|
||||
|
@ -716,6 +716,29 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
|
||||
if (ARCH_X86)
|
||||
ff_MPV_encode_init_x86(s);
|
||||
|
||||
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_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_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_h263dsp_init(&s->h263dsp);
|
||||
if (!s->dct_quantize)
|
||||
s->dct_quantize = ff_dct_quantize_c;
|
||||
@ -802,6 +825,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)
|
||||
|
Loading…
Reference in New Issue
Block a user