aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h263.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-12-04 18:46:49 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-12-04 18:46:49 +0000
commitcdb4e730e4f649379b164fe81446eb307053cb3c (patch)
treec3230444edb162f5ffc9c508716d10891de80a8d /libavcodec/h263.c
parentb40cd4e0e42d66195fef881e21832ba92a771cd5 (diff)
downloadffmpeg-cdb4e730e4f649379b164fe81446eb307053cb3c.tar.gz
cleanup
Originally committed as revision 2562 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h263.c')
-rw-r--r--libavcodec/h263.c49
1 files changed, 22 insertions, 27 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index ef44751d42..4f3fa13df2 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -1236,7 +1236,7 @@ void h263_encode_mb(MpegEncContext * s,
}
#endif
-int ff_h263_loop_filter(MpegEncContext * s){
+void ff_h263_loop_filter(MpegEncContext * s){
int qp_c;
const int linesize = s->linesize;
const int uvlinesize= s->uvlinesize;
@@ -3572,7 +3572,11 @@ static void preview_obmc(MpegEncContext *s){
}else{
get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1);
if (cbpc & 8) {
- skip_bits(&s->gb, 2);
+ if(s->modified_quant){
+ if(get_bits1(&s->gb)) skip_bits(&s->gb, 1);
+ else skip_bits(&s->gb, 5);
+ }else
+ skip_bits(&s->gb, 2);
}
if ((cbpc & 16) == 0) {
@@ -3624,12 +3628,24 @@ end:
s->gb= gb;
}
+static void h263_decode_dquant(MpegEncContext *s){
+ static const int8_t quant_tab[4] = { -1, -2, 1, 2 };
+
+ if(s->modified_quant){
+ if(get_bits1(&s->gb))
+ s->qscale= modified_quant_tab[get_bits1(&s->gb)][ s->qscale ];
+ else
+ s->qscale= get_bits(&s->gb, 5);
+ }else
+ s->qscale += quant_tab[get_bits(&s->gb, 2)];
+ ff_set_qscale(s, s->qscale);
+}
+
int ff_h263_decode_mb(MpegEncContext *s,
DCTELEM block[6][64])
{
int cbpc, cbpy, i, cbp, pred_x, pred_y, mx, my, dquant;
int16_t *mot_val;
- static int8_t quant_tab[4] = { -1, -2, 1, 2 };
const int xy= s->mb_x + s->mb_y * s->mb_stride;
assert(!s->h263_pred);
@@ -3668,14 +3684,7 @@ int ff_h263_decode_mb(MpegEncContext *s,
cbp = (cbpc & 3) | (cbpy << 2);
if (dquant) {
- if(s->modified_quant){
- if(get_bits1(&s->gb))
- s->qscale= modified_quant_tab[get_bits1(&s->gb)][ s->qscale ];
- else
- s->qscale= get_bits(&s->gb, 5);
- }else
- s->qscale += quant_tab[get_bits(&s->gb, 2)];
- ff_set_qscale(s, s->qscale);
+ h263_decode_dquant(s);
}
s->mv_dir = MV_DIR_FORWARD;
@@ -3783,14 +3792,7 @@ int ff_h263_decode_mb(MpegEncContext *s,
assert(!s->mb_intra);
if(IS_QUANT(mb_type)){
- if(s->modified_quant){ //FIXME factorize
- if(get_bits1(&s->gb))
- s->qscale= modified_quant_tab[get_bits1(&s->gb)][ s->qscale ];
- else
- s->qscale= get_bits(&s->gb, 5);
- }else
- s->qscale += quant_tab[get_bits(&s->gb, 2)];
- ff_set_qscale(s, s->qscale);
+ h263_decode_dquant(s);
}
if(IS_DIRECT(mb_type)){
@@ -3857,14 +3859,7 @@ intra:
}
cbp = (cbpc & 3) | (cbpy << 2);
if (dquant) {
- if(s->modified_quant){
- if(get_bits1(&s->gb))
- s->qscale= modified_quant_tab[get_bits1(&s->gb)][ s->qscale ];
- else
- s->qscale= get_bits(&s->gb, 5);
- }else
- s->qscale += quant_tab[get_bits(&s->gb, 2)];
- ff_set_qscale(s, s->qscale);
+ h263_decode_dquant(s);
}
}