static inline int get_qscale(MpegEncContext *s)
{
int qscale = get_bits(&s->gb, 5);
- if (s->codec_id == CODEC_ID_MPEG2VIDEO) {
- if (s->q_scale_type) {
- return non_linear_qscale[qscale];
- } else {
- return qscale << 1;
- }
+ if (s->q_scale_type) {
+ return non_linear_qscale[qscale];
+ } else {
+ return qscale << 1;
}
- return qscale;
}
/* motion type (for mpeg2) */
} else if(level != 0) {
i += run;
j = scantable[i];
- level= (level*qscale*quant_matrix[j])>>3;
+ level= (level*qscale*quant_matrix[j])>>4;
level= (level-1)|1;
level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
LAST_SKIP_BITS(re, &s->gb, 1);
j = scantable[i];
if(level<0){
level= -level;
- level= (level*qscale*quant_matrix[j])>>3;
+ level= (level*qscale*quant_matrix[j])>>4;
level= (level-1)|1;
level= -level;
}else{
- level= (level*qscale*quant_matrix[j])>>3;
+ level= (level*qscale*quant_matrix[j])>>4;
level= (level-1)|1;
}
}
v= SHOW_UBITS(re, &s->gb, 2);
if (v & 2) {
LAST_SKIP_BITS(re, &s->gb, 2);
- level= (3*qscale*quant_matrix[0])>>4;
+ level= (3*qscale*quant_matrix[0])>>5;
level= (level-1)|1;
if(v&1)
level= -level;
} else if(level != 0) {
i += run;
j = scantable[i];
- level= ((level*2+1)*qscale*quant_matrix[j])>>4;
+ level= ((level*2+1)*qscale*quant_matrix[j])>>5;
level= (level-1)|1;
level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
LAST_SKIP_BITS(re, &s->gb, 1);
j = scantable[i];
if(level<0){
level= -level;
- level= ((level*2+1)*qscale*quant_matrix[j])>>4;
+ level= ((level*2+1)*qscale*quant_matrix[j])>>5;
level= (level-1)|1;
level= -level;
}else{
- level= ((level*2+1)*qscale*quant_matrix[j])>>4;
+ level= ((level*2+1)*qscale*quant_matrix[j])>>5;
level= (level-1)|1;
}
}
if (/*s->mb_y<<field_pic == s->mb_height &&*/ !s->first_field) {
/* end of image */
- if(s->codec_id == CODEC_ID_MPEG2VIDEO){
- s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_MPEG2;
- }else
- s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_MPEG1;
+ s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_MPEG2;
ff_er_frame_end(s);