[vorbis-dev] oggdrop with quality < 0

Alan MacDonald
Mon, 15 Jul 2002 10:34:37 -0000

If anyone is interested, I smushed the less than 0 quality rate setting into
oggdrop. The diff is below.

Alan

Index: encthread.c
==================================================================RCS file:
/usr/local/cvsroot/win32-tools/oggdrop/encthread.c,v
retrieving revision 1.9
diff -r1.9 encthread.c
117,118c117,118
<   if (quality < 0)
<     quality = 1;

---
>   if (quality < -10)
>     quality = -10;
Index: main.c
==================================================================RCS file:
/usr/local/cvsroot/win32-tools/oggdrop/main.c,v
retrieving revision 1.14
diff -r1.14 main.c
14c14
< #define BASEKEY "Software\\Xiphophorus\\Oggdrop"
---
> #define BASEKEY "Software\\Xiph.Org\\Oggdrop"
187c187,188
<
---
> 	nominalBitrate = qc2approxBitrate(qcValue);
>
458c459
<         	(LPARAM) MAKELONG(0, 100));  // min. & max. positions
---
>         	(LPARAM) MAKELONG(0, 110));  // min. & max. positions
465c466
<         	(LPARAM) MAKELONG(0, 100));
---
>         	(LPARAM) MAKELONG(0, 110));
469c470
<         	(LPARAM) read_setting("quality",
VORBIS_DEFAULT_QUALITY));
---
>         	(LPARAM) (read_setting("quality",
VORBIS_DEFAULT_QUALITY))+10);
523c524
<                         TBM_GETPOS, (WPARAM)0, (LPARAM)0 );
---
>                         TBM_GETPOS, (WPARAM)0, (LPARAM)0 )-10;
672a674,678
> //quality range from lookup first value map to -.1, 0, .1, .2, etc..
> static float rate_mapping[12]={
>   22500.,32000.,40000.,48000.,56000.,64000.,
>   80000.,96000.,112000.,128000.,160000.,250001.
> };
673a680
> //equation for bitrate from vorbis/lib/vorbisenc.c
676,697c683,686
<   float approxBitrate;
<
<   if ( qcValue < 41)
<   {
<     approxBitrate = 1000 * (float)(((float)qcValue/10.0)*32);
<   }
<   else if ( qcValue < 81 )
<   {
<     approxBitrate = 1000 * (float)(((float)qcValue/10.0)*32);
<   }
<   else if ( qcValue < 91 )
<   {
<     approxBitrate = 1000 *(float)((((float)qcValue/10.0)*32)+
< 							       ((((float)qcValue/10)-8)*32));
<   }
<   else
<   {
<     approxBitrate = 1000 * (float)((((float)qcValue/10.0)*32)+
< 	    ((((float)qcValue/10)-8)*32)+((((float)qcValue/10)-9)*116));
<   }
<
<   return approxBitrate;
---
> 	float qval = (float)(qcValue/10.+1.);
> 	int is = qval;
> 	float ds = qval-is;
> 	return ((rate_mapping[is]*(1.-ds)+rate_mapping[is+1]*ds)*2);
698a688
>

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to
'vorbis-dev-request@xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.