Mercurial > libavcodec.hg
changeset 1757:3906ddbaffec libavcodec
optimization & bugfix extracted from the 4k line diff between ffmpeg 0.4.7 and http://www.alicestreet.com/ffh263.html
the other parts of the diff where
1. spelling fixes (rejected as only a small part of it could be applied automatically)
2. cosmetics (reindention, function reordering, var renaming, ...) with bugs (rejected)
3. rtp related stuff (rejetced as it breaks several codecs)
4. some changes to the intra/inter decission & scene change detection (quality tests needed first)
author | michael |
---|---|
date | Sat, 24 Jan 2004 23:47:33 +0000 |
parents | 43a856190778 |
children | d49aae2f9027 |
files | h263.c mpegvideo.c |
diffstat | 2 files changed, 9 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/h263.c Sat Jan 24 22:22:42 2004 +0000 +++ b/h263.c Sat Jan 24 23:47:33 2004 +0000 @@ -1130,6 +1130,8 @@ s->misc_bits++; s->last_bits++; } + s->skip_count++; + return; } put_bits(&s->pb, 1, 0); /* mb coded */ @@ -2032,7 +2034,7 @@ 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 @@ 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 @@ 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);
--- a/mpegvideo.c Sat Jan 24 22:22:42 2004 +0000 +++ b/mpegvideo.c Sat Jan 24 23:47:33 2004 +0000 @@ -3834,9 +3834,9 @@ 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 @@ 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 @@ } }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; i<s->mb_stride*s->mb_height; i++) s->mb_type[i]= CANDIDATE_MB_TYPE_INTRA; @@ -4026,6 +4023,8 @@ break; case FMT_H264: break; + default: + assert(0); } bits= get_bit_count(&s->pb); s->header_bits= bits - s->last_bits;