X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmotion_est.c;h=ed226c5d73ccaf02aef88ff1c694c38d7c40d55c;hb=7ed5d78d619e45b46ba003e8014767b05b73b7d2;hp=7e16880d95ce14e061dabdc683eb7bfba9737a7f;hpb=a649650a0ea0f6b735084fc0055d574af1600017;p=ffmpeg diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 7e16880d95c..ed226c5d73c 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -336,7 +336,7 @@ int ff_init_me(MpegEncContext *s){ c->mb_flags = get_flags(c, 0, c->avctx->mb_cmp &FF_CMP_CHROMA); /*FIXME s->no_rounding b_type*/ - if(s->flags&CODEC_FLAG_QPEL){ + if (s->avctx->flags & CODEC_FLAG_QPEL) { c->sub_motion_search= qpel_motion_search; c->qpel_avg = s->qdsp.avg_qpel_pixels_tab; if (s->no_rounding) @@ -996,7 +996,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s, mx <<=shift; my <<=shift; } - if((s->flags&CODEC_FLAG_4MV) + if ((s->avctx->flags & CODEC_FLAG_4MV) && !c->skip && varc>50<<8 && vard>10<<8){ if(h263_mv4_search(s, mx, my, shift) < INT_MAX) mb_type|=CANDIDATE_MB_TYPE_INTER4V; @@ -1004,7 +1004,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s, set_p_mv_tables(s, mx, my, 0); }else set_p_mv_tables(s, mx, my, 1); - if((s->flags&CODEC_FLAG_INTERLACED_ME) + if ((s->avctx->flags & CODEC_FLAG_INTERLACED_ME) && !c->skip){ //FIXME varc/d checks if(interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0) < INT_MAX) mb_type |= CANDIDATE_MB_TYPE_INTER_I; @@ -1017,7 +1017,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s, if(c->avctx->me_sub_cmp != c->avctx->mb_cmp && !c->skip) dmin= get_mb_score(s, mx, my, 0, 0, 0, 16, 1); - if((s->flags&CODEC_FLAG_4MV) + if ((s->avctx->flags & CODEC_FLAG_4MV) && !c->skip && varc>50<<8 && vard>10<<8){ int dmin4= h263_mv4_search(s, mx, my, shift); if(dmin4 < dmin){ @@ -1025,7 +1025,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s, dmin=dmin4; } } - if((s->flags&CODEC_FLAG_INTERLACED_ME) + if ((s->avctx->flags & CODEC_FLAG_INTERLACED_ME) && !c->skip){ //FIXME varc/d checks int dmin_i= interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0); if(dmin_i < dmin){ @@ -1553,7 +1553,7 @@ void ff_estimate_b_frame_motion(MpegEncContext * s, fbmin= bidir_refine(s, mb_x, mb_y) + penalty_factor; ff_dlog(s, "%d %d %d %d\n", dmin, fmin, bmin, fbmin); - if(s->flags & CODEC_FLAG_INTERLACED_ME){ + if (s->avctx->flags & CODEC_FLAG_INTERLACED_ME) { //FIXME mb type penalty c->skip=0; c->current_mv_penalty= c->mv_penalty[s->f_code] + MAX_MV; @@ -1684,7 +1684,7 @@ void ff_fix_long_p_mvs(MpegEncContext * s) if(c->avctx->me_range && range > c->avctx->me_range) range= c->avctx->me_range; - if(s->flags&CODEC_FLAG_4MV){ + if (s->avctx->flags & CODEC_FLAG_4MV) { const int wrap= s->b8_stride; /* clip / convert to intra 8x8 type MVs */