return 1;
// ERROR
else
- return -1;
+ return AVERROR(EINVAL);
}
void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number)
put_bits(&s->pb, 20, 0x10); /* PSC */
- temp_ref = s->picture_number * (int64_t)30000 * s->avctx->time_base.num /
- (1001 * (int64_t)s->avctx->time_base.den); // FIXME maybe this should use a timestamp
+ temp_ref = s->picture_number * 30000LL * s->avctx->time_base.num /
+ (1001LL * s->avctx->time_base.den); // FIXME maybe this should use a timestamp
put_sbits(&s->pb, 5, temp_ref); /* TemporalReference */
put_bits(&s->pb, 1, 0); /* split screen off */
/* mvd indicates if this block is motion compensated */
mvd = motion_x | motion_y;
- if ((cbp | mvd | s->dquant) == 0) {
+ if ((cbp | mvd) == 0) {
/* skip macroblock */
s->skip_count++;
s->mb_skip_run++;
s->last_mv[0][0][0] = 0;
s->last_mv[0][0][1] = 0;
+ s->qscale -= s->dquant;
return;
}
}
h->mtype += 3;
if (s->loop_filter)
h->mtype += 3;
- if (cbp || s->dquant)
+ if (cbp)
h->mtype++;
av_assert1(h->mtype > 1);
}
- if (s->dquant)
+ if (s->dquant && cbp) {
h->mtype++;
+ } else
+ s->qscale -= s->dquant;
put_bits(&s->pb,
ff_h261_mtype_bits[h->mtype],