|
|
|
@ -496,6 +496,17 @@ void ff_clean_h263_qscales(MpegEncContext *s){ |
|
|
|
|
if(qscale_table[ s->mb_index2xy[i] ] - qscale_table[ s->mb_index2xy[i+1] ] >2) |
|
|
|
|
qscale_table[ s->mb_index2xy[i] ]= qscale_table[ s->mb_index2xy[i+1] ]+2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(s->codec_id != CODEC_ID_H263P){ |
|
|
|
|
for(i=1; i<s->mb_num; i++){ |
|
|
|
|
int mb_xy= s->mb_index2xy[i]; |
|
|
|
|
|
|
|
|
|
if(qscale_table[mb_xy] != qscale_table[s->mb_index2xy[i-1]] && (s->mb_type[mb_xy]&CANDIDATE_MB_TYPE_INTER4V)){ |
|
|
|
|
s->mb_type[mb_xy]&= ~CANDIDATE_MB_TYPE_INTER4V; |
|
|
|
|
s->mb_type[mb_xy]|= CANDIDATE_MB_TYPE_INTER; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -507,15 +518,6 @@ void ff_clean_mpeg4_qscales(MpegEncContext *s){ |
|
|
|
|
|
|
|
|
|
ff_clean_h263_qscales(s); |
|
|
|
|
|
|
|
|
|
for(i=1; i<s->mb_num; i++){ |
|
|
|
|
int mb_xy= s->mb_index2xy[i]; |
|
|
|
|
|
|
|
|
|
if(qscale_table[mb_xy] != qscale_table[s->mb_index2xy[i-1]] && (s->mb_type[mb_xy]&CANDIDATE_MB_TYPE_INTER4V)){ |
|
|
|
|
s->mb_type[mb_xy]&= ~CANDIDATE_MB_TYPE_INTER4V; |
|
|
|
|
s->mb_type[mb_xy]|= CANDIDATE_MB_TYPE_INTER; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(s->pict_type== B_TYPE){ |
|
|
|
|
int odd=0; |
|
|
|
|
/* ok, come on, this isnt funny anymore, theres more code for handling this mpeg4 mess than
|
|
|
|
|