diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 01e0d9930f895556dca64cd4dccc2aa327a8acce..827e2ad5b4336deb02bcda29b817199cffc182ce 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -3140,6 +3140,7 @@ static inline void clip_coeffs(MpegEncContext *s, DCTELEM *block, int last_index int i; const int maxlevel= s->max_qcoeff; const int minlevel= s->min_qcoeff; + int overflow=0; if(s->mb_intra){ i=1; //skip clipping of intra dc @@ -3150,11 +3151,19 @@ static inline void clip_coeffs(MpegEncContext *s, DCTELEM *block, int last_index const int j= s->intra_scantable.permutated[i]; int level = block[j]; - if (level>maxlevel) level=maxlevel; - else if(level<minlevel) level=minlevel; - + if (level>maxlevel){ + level=maxlevel; + overflow++; + }else if(level<minlevel){ + level=minlevel; + overflow++; + } + block[j]= level; } + + if(overflow && s->avctx->mb_decision == FF_MB_DECISION_SIMPLE) + av_log(s->avctx, AV_LOG_INFO, "warning, cliping %d dct coefficents to %d..%d\n", overflow, minlevel, maxlevel); } #if 0