mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +00:00
simplify
Originally committed as revision 3178 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fdbbf2e0fc
commit
b37e98c8a2
@ -58,7 +58,6 @@ typedef struct H261Context{
|
||||
|
||||
void ff_h261_loop_filter(H261Context * h){
|
||||
MpegEncContext * const s = &h->s;
|
||||
int i;
|
||||
const int linesize = s->linesize;
|
||||
const int uvlinesize= s->uvlinesize;
|
||||
uint8_t *dest_y = s->dest[0];
|
||||
@ -229,11 +228,25 @@ static int h261_decode_mb_skipped(H261Context *h,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int decode_mv_component(GetBitContext *gb, int v){
|
||||
int mv_diff = get_vlc2(gb, h261_mv_vlc.table, H261_MV_VLC_BITS, 2);
|
||||
mv_diff = mvmap[mv_diff];
|
||||
|
||||
if(mv_diff && !get_bits1(gb))
|
||||
mv_diff= -mv_diff;
|
||||
|
||||
v += mv_diff;
|
||||
if (v <=-16) v+= 32;
|
||||
else if(v >= 16) v-= 32;
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
static int h261_decode_mb(H261Context *h,
|
||||
DCTELEM block[6][64])
|
||||
{
|
||||
MpegEncContext * const s = &h->s;
|
||||
int i, cbp, mv_x_diff, mv_y_diff, sign, xy;
|
||||
int i, cbp, xy;
|
||||
|
||||
cbp = 63;
|
||||
// Read mba
|
||||
@ -288,36 +301,8 @@ static int h261_decode_mb(H261Context *h,
|
||||
h->current_mv_y = 0;
|
||||
}
|
||||
|
||||
mv_x_diff = get_vlc2(&s->gb, h261_mv_vlc.table, H261_MV_VLC_BITS, 2);
|
||||
mv_x_diff = mvmap[mv_x_diff];
|
||||
|
||||
if(mv_x_diff != 0){
|
||||
sign = get_bits1(&s->gb);
|
||||
|
||||
if(!sign)
|
||||
mv_x_diff= -mv_x_diff;
|
||||
}
|
||||
|
||||
mv_y_diff = get_vlc2(&s->gb, h261_mv_vlc.table, H261_MV_VLC_BITS, 2);
|
||||
mv_y_diff = mvmap[mv_y_diff];
|
||||
|
||||
if(mv_y_diff != 0){
|
||||
sign = get_bits1(&s->gb);
|
||||
|
||||
if(!sign)
|
||||
mv_y_diff= -mv_y_diff;
|
||||
}
|
||||
|
||||
//mv's are in the range -15...15
|
||||
if((h->current_mv_x + mv_x_diff > -16) && (h->current_mv_x + mv_x_diff < 16) )
|
||||
h->current_mv_x += mv_x_diff;
|
||||
else
|
||||
h->current_mv_x += (mv_x_diff + (mv_x_diff > 0 ? -32 : 32));
|
||||
|
||||
if((h->current_mv_y + mv_y_diff > -16) && (h->current_mv_y + mv_y_diff < 16) )
|
||||
h->current_mv_y += mv_y_diff;
|
||||
else
|
||||
h->current_mv_y += (mv_y_diff + (mv_y_diff>0 ? -32 : 32));
|
||||
h->current_mv_x= decode_mv_component(&s->gb, h->current_mv_x);
|
||||
h->current_mv_y= decode_mv_component(&s->gb, h->current_mv_y);
|
||||
}
|
||||
|
||||
// Read cbp
|
||||
|
Loading…
Reference in New Issue
Block a user