Revision 6f91bcd1 libavcodec/mpegvideo.c

View differences:

libavcodec/mpegvideo.c
430 430
            s->current_picture[i] = s->aux_picture[i];
431 431
        }
432 432
    } else {
433
        s->last_non_b_pict_type= s->pict_type;
433 434
        for(i=0;i<3;i++) {
434 435
            /* swap next and last */
435 436
            tmp = s->last_picture[i];
......
745 746
                        ref_picture, 0,
746 747
                        16);
747 748
#endif
748
        }else if(s->quarter_sample){
749
        }else if(s->quarter_sample && dir==0){ //FIXME
749 750
            qpel_motion(s, dest_y, dest_cb, dest_cr, 0,
750 751
                        ref_picture, 0,
751 752
                        0, pix_op, qpix_op,
......
930 931
    else if (s->h263_pred || s->h263_aic)
931 932
        s->mbintra_table[mb_x + mb_y*s->mb_width]=1;
932 933

  
933
    /* update motion predictor */
934
    /* update motion predictor, not for B-frames as they need the motion_val from the last P/S-Frame */
934 935
    if (s->out_format == FMT_H263) {
936
      if(s->pict_type!=B_TYPE){
935 937
        int xy, wrap, motion_x, motion_y;
936 938
        
937 939
        wrap = 2 * s->mb_width + 2;
......
954 956
            s->motion_val[xy + 1 + wrap][0] = motion_x;
955 957
            s->motion_val[xy + 1 + wrap][1] = motion_y;
956 958
        }
959
      }
957 960
    }
958 961
    
959 962
    if (!s->intra_only) {

Also available in: Unified diff