rendered paste body /* Allocate mcdeint specific buffers */
if( pv->mcdeint_mode >= 0 )
{
avcodec_init();
avcodec_register_all();
AVCodec * enc = avcodec_find_encoder( CODEC_ID_SNOW );
int i;
for (i = 0; i < 3; i++ )
{
AVCodecContext * avctx_enc;
avctx_enc = pv->mcdeint_avctx_enc = avcodec_alloc_context();
avctx_enc->width = width;
avctx_enc->height = height;
avctx_enc->time_base = (AVRational){1,25}; // meaningless
avctx_enc->gop_size = 300;
avctx_enc->max_b_frames = 0;
avctx_enc->pix_fmt = PIX_FMT_YUV420P;
avctx_enc->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_LOW_DELAY;
avctx_enc->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
avctx_enc->global_quality = 1;
avctx_enc->flags2 = CODEC_FLAG2_MEMC_ONLY;
avctx_enc->me_cmp = FF_CMP_SAD; //SSE;
avctx_enc->me_sub_cmp = FF_CMP_SAD; //SSE;
avctx_enc->mb_cmp = FF_CMP_SSE;
switch( pv->mcdeint_mode )
{
case 3:
avctx_enc->refs = 3;
case 2:
avctx_enc->me_method = ME_ITER;
case 1:
avctx_enc->flags |= CODEC_FLAG_4MV;
avctx_enc->dia_size =2;
case 0:
avctx_enc->flags |= CODEC_FLAG_QPEL;
}
avcodec_open(avctx_enc, enc);
}
pv->mcdeint_frame = avcodec_alloc_frame();
pv->mcdeint_outbuf_size = width * height * 10;
pv->mcdeint_outbuf = malloc( pv->mcdeint_outbuf_size );
}