mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/mpeg4video: Reorder operations to reduce accesses to err_recognition
About 9 cpu cycle faster mpeg4_decode_mb() Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b71528d896
commit
39de31ccb6
|
@ -230,21 +230,21 @@ static inline int ff_mpeg4_pred_dc(MpegEncContext *s, int n, int level,
|
||||||
} else {
|
} else {
|
||||||
level += pred;
|
level += pred;
|
||||||
ret = level;
|
ret = level;
|
||||||
if (s->avctx->err_recognition & (AV_EF_BITSTREAM | AV_EF_AGGRESSIVE)) {
|
}
|
||||||
|
level *= scale;
|
||||||
|
if (level & (~2047)) {
|
||||||
|
if (!s->encoding && (s->avctx->err_recognition & (AV_EF_BITSTREAM | AV_EF_AGGRESSIVE))) {
|
||||||
if (level < 0) {
|
if (level < 0) {
|
||||||
av_log(s->avctx, AV_LOG_ERROR,
|
av_log(s->avctx, AV_LOG_ERROR,
|
||||||
"dc<0 at %dx%d\n", s->mb_x, s->mb_y);
|
"dc<0 at %dx%d\n", s->mb_x, s->mb_y);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (level * scale > 2048 + scale) {
|
if (level > 2048 + scale) {
|
||||||
av_log(s->avctx, AV_LOG_ERROR,
|
av_log(s->avctx, AV_LOG_ERROR,
|
||||||
"dc overflow at %dx%d\n", s->mb_x, s->mb_y);
|
"dc overflow at %dx%d\n", s->mb_x, s->mb_y);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
level *= scale;
|
|
||||||
if (level & (~2047)) {
|
|
||||||
if (level < 0)
|
if (level < 0)
|
||||||
level = 0;
|
level = 0;
|
||||||
else if (!(s->workaround_bugs & FF_BUG_DC_CLIP))
|
else if (!(s->workaround_bugs & FF_BUG_DC_CLIP))
|
||||||
|
|
Loading…
Reference in New Issue