return 0;
}
+static inline int get_qscale(MpegEncContext *s)
+{
+ int qscale;
+ if (s->mpeg2) {
+ if (s->q_scale_type) {
+ qscale = non_linear_qscale[get_bits(&s->gb, 5)];
+ } else {
+ qscale = get_bits(&s->gb, 5) << 1;
+ }
+ } else {
+ /* for mpeg1, we use the generic unquant code */
+ qscale = get_bits(&s->gb, 5);
+ }
+ return qscale;
+}
+
/* motion type (for mpeg2) */
#define MT_FIELD 1
#define MT_FRAME 2
}
if (mb_type & MB_QUANT) {
- if (s->mpeg2) {
- if (s->q_scale_type) {
- s->qscale = non_linear_qscale[get_bits(&s->gb, 5)];
- } else {
- s->qscale = get_bits(&s->gb, 5) << 1;
- }
- } else {
- /* for mpeg1, we use the generic unquant code */
- s->qscale = get_bits(&s->gb, 5);
- }
+ s->qscale = get_qscale(s);
}
if (mb_type & MB_INTRA) {
if (s->concealment_motion_vectors) {
init_get_bits(&s->gb, buf, buf_size);
- s->qscale = get_bits(&s->gb, 5);
+ s->qscale = get_qscale(s);
/* extra slice info */
while (get_bits1(&s->gb) != 0) {
skip_bits(&s->gb, 8);