|
|
|
@ -78,19 +78,15 @@ int ff_mpeg_framesize_alloc(AVCodecContext *avctx, MotionEstContext *me, |
|
|
|
|
// at uvlinesize. It supports only YUV420 so 24x24 is enough
|
|
|
|
|
// linesize * interlaced * MBsize
|
|
|
|
|
// we also use this buffer for encoding in encode_mb_internal() needig an additional 32 lines
|
|
|
|
|
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, sc->edge_emu_buffer, alloc_size, EMU_EDGE_HEIGHT, |
|
|
|
|
fail); |
|
|
|
|
|
|
|
|
|
FF_ALLOCZ_ARRAY_OR_GOTO(avctx, me->scratchpad, alloc_size, 4 * 16 * 2, |
|
|
|
|
fail) |
|
|
|
|
if (!FF_ALLOCZ_TYPED_ARRAY(sc->edge_emu_buffer, alloc_size * EMU_EDGE_HEIGHT) || |
|
|
|
|
!FF_ALLOCZ_TYPED_ARRAY(me->scratchpad, alloc_size * 4 * 16 * 2)) |
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
me->temp = me->scratchpad; |
|
|
|
|
sc->rd_scratchpad = me->scratchpad; |
|
|
|
|
sc->b_scratchpad = me->scratchpad; |
|
|
|
|
sc->obmc_scratchpad = me->scratchpad + 16; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
fail: |
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|