diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 374c2d3cff..1a07b528bb 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -1130,6 +1130,8 @@ void h263_encode_mb(MpegEncContext * s, s->misc_bits++; s->last_bits++; } + s->skip_count++; + return; } put_bits(&s->pb, 1, 0); /* mb coded */ @@ -2032,7 +2034,7 @@ static void h263_encode_block(MpegEncContext * s, DCTELEM * block, int n) if (level == 128) //FIXME check rv10 put_bits(&s->pb, 8, 0xff); else - put_bits(&s->pb, 8, level & 0xff); + put_bits(&s->pb, 8, level); i = 1; } else { i = 0; @@ -2102,7 +2104,7 @@ static void h263_encode_block(MpegEncContext * s, DCTELEM * block, int n) assert(slevel != 0); - if(slevel < 128 && slevel > -128) + if(level < 128) put_bits(&s->pb, 8, slevel & 0xff); else{ put_bits(&s->pb, 8, 128); @@ -2110,8 +2112,7 @@ static void h263_encode_block(MpegEncContext * s, DCTELEM * block, int n) put_bits(&s->pb, 6, (slevel>>5)&0x3f); } }else{ - if(slevel < 64 && slevel > -64) { - /* 7-bit level */ + if(level < 64) { // 7-bit level put_bits(&s->pb, 1, 0); put_bits(&s->pb, 1, last); put_bits(&s->pb, 6, run); diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index ec29e4d8bf..b6720e0c88 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -3834,9 +3834,9 @@ static void encode_picture(MpegEncContext *s, int picture_number) s->me.dia_size= s->avctx->pre_dia_size; for(mb_y=s->mb_height-1; mb_y >=0 ; mb_y--) { + s->mb_y = mb_y; for(mb_x=s->mb_width-1; mb_x >=0 ; mb_x--) { s->mb_x = mb_x; - s->mb_y = mb_y; ff_pre_estimate_p_frame_motion(s, mb_x, mb_y); } } @@ -3846,13 +3846,13 @@ static void encode_picture(MpegEncContext *s, int picture_number) s->me.dia_size= s->avctx->dia_size; for(mb_y=0; mb_y < s->mb_height; mb_y++) { + s->mb_y = mb_y; s->block_index[0]= s->block_wrap[0]*(mb_y*2 + 1) - 1; s->block_index[1]= s->block_wrap[0]*(mb_y*2 + 1); s->block_index[2]= s->block_wrap[0]*(mb_y*2 + 2) - 1; s->block_index[3]= s->block_wrap[0]*(mb_y*2 + 2); for(mb_x=0; mb_x < s->mb_width; mb_x++) { s->mb_x = mb_x; - s->mb_y = mb_y; s->block_index[0]+=2; s->block_index[1]+=2; s->block_index[2]+=2; @@ -3867,9 +3867,6 @@ static void encode_picture(MpegEncContext *s, int picture_number) } }else /* if(s->pict_type == I_TYPE) */{ /* I-Frame */ - //FIXME do we need to zero them? - memset(s->current_picture.motion_val[0][0], 0, sizeof(int16_t)*(s->mb_width*2 + 2)*(s->mb_height*2 + 2)*2); - memset(s->p_mv_table , 0, sizeof(int16_t)*(s->mb_stride)*s->mb_height*2); for(i=0; imb_stride*s->mb_height; i++) s->mb_type[i]= CANDIDATE_MB_TYPE_INTRA; @@ -4026,6 +4023,8 @@ static void encode_picture(MpegEncContext *s, int picture_number) break; case FMT_H264: break; + default: + assert(0); } bits= get_bit_count(&s->pb); s->header_bits= bits - s->last_bits;