# HG changeset patch # User arpi_esp # Date 1011882843 0 # Node ID f8802ed5332b45f4bba49f5a5219479c06b099bf # Parent 1fe6b64feefb2728f02897d19ce45d6d68571ec4 (commit by michael) quantizer range bugfix (mpeg1 & mpeg4 encoding) diff -r 1fe6b64feefb -r f8802ed5332b mpegvideo.c --- a/mpegvideo.c Mon Jan 21 17:46:42 2002 +0000 +++ b/mpegvideo.c Thu Jan 24 14:34:03 2002 +0000 @@ -1066,6 +1066,21 @@ { int i, j, level, last_non_zero, q; const int *qmat; + int minLevel, maxLevel; + + if(s->avctx!=NULL && s->avctx->codec->id==CODEC_ID_MPEG4){ + /* mpeg4 */ + minLevel= -2048; + maxLevel= 2047; + }else if(s->out_format==FMT_MPEG1){ + /* mpeg1 */ + minLevel= -255; + maxLevel= 255; + }else{ + /* h263 / msmpeg4 */ + minLevel= -128; + maxLevel= 127; + } av_fdct (block); @@ -1138,10 +1153,10 @@ h263: -128..127 mpeg4: -2048..2047 */ - if (level > 127) - level = 127; - else if (level < -128) - level = -128; + if (level > maxLevel) + level = maxLevel; + else if (level < minLevel) + level = minLevel; block[j] = level; last_non_zero = i; } else { @@ -1157,6 +1172,21 @@ { int i, j, level, last_non_zero, q; const int *qmat; + int minLevel, maxLevel; + + if(s->avctx!=NULL && s->avctx->codec->id==CODEC_ID_MPEG4){ + /* mpeg4 */ + minLevel= -2048; + maxLevel= 2047; + }else if(s->out_format==FMT_MPEG1){ + /* mpeg1 */ + minLevel= -255; + maxLevel= 255; + }else{ + /* h263 / msmpeg4 */ + minLevel= -128; + maxLevel= 127; + } av_fdct (block); @@ -1202,10 +1232,10 @@ h263: -128..127 mpeg4: -2048..2047 */ - if (level > 127) - level = 127; - else if (level < -128) - level = -128; + if (level > maxLevel) + level = maxLevel; + else if (level < minLevel) + level = minLevel; block[j] = level; last_non_zero = i; } else {