diff options
Diffstat (limited to 'converter/ppm')
-rw-r--r-- | converter/ppm/ppmtoarbtxt.c | 52 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/jrevdct.c | 44 | ||||
-rw-r--r-- | converter/ppm/ppmtompeg/mfwddct.c | 31 |
3 files changed, 70 insertions, 57 deletions
diff --git a/converter/ppm/ppmtoarbtxt.c b/converter/ppm/ppmtoarbtxt.c index fc8927ce..6d4ed04e 100644 --- a/converter/ppm/ppmtoarbtxt.c +++ b/converter/ppm/ppmtoarbtxt.c @@ -734,15 +734,20 @@ interpretObjType(const char * const typstr) { static SkeletonObject * -newIcSkelFromReplString(const char * const objstr, +newIcSkelFromReplString(const char * const icolorObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for an integer color substitution specifier (class + OBJTYP_ICOLOR) whose replacement string (the stuff between the parentheses + in #(...)) says substitution type 'objType' and the rest of the + replacement string is 'icolorObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; unsigned int icolmin, icolmax; char formstr[MAX_OBJ_BUF]; - unsigned int nOdata; + int nOdata; - nOdata = sscanf(objstr, "%*s%s%u%u", formstr, &icolmin, &icolmax); + nOdata = sscanf(icolorObjstr, "%s%u%u", formstr, &icolmin, &icolmax); if (nOdata == 3) retval = newIcolDataObj(objType, formstr, icolmin, icolmax); @@ -758,16 +763,20 @@ newIcSkelFromReplString(const char * const objstr, static SkeletonObject * -newFcSkelFromReplString(const char * const objstr, +newFcSkelFromReplString(const char * const fcolorObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for a floating point color substitution specifier (class + OBJTYP_FCOLOR) whose replacement string (the stuff between the parentheses + in #(...)) says substitution type 'objType' and the rest of the + replacement string is 'fcolorObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; double fcolmin, fcolmax; char formstr[MAX_OBJ_BUF]; - unsigned int nOdata; + int nOdata; - nOdata = sscanf(objstr, "%*s%s%lf%lf", formstr, - &fcolmin, &fcolmax); + nOdata = sscanf(fcolorObjstr, "%s%lf%lf", formstr, &fcolmin, &fcolmax); if (nOdata == 3) retval = newFcolDataObj(objType, formstr, fcolmin, fcolmax); @@ -783,12 +792,19 @@ newFcSkelFromReplString(const char * const objstr, static SkeletonObject * -newISkelFromReplString(const char * const objstr, +newISkelFromReplString(const char * const intObjstr, SkeletonObjectType const objType) { - +/*---------------------------------------------------------------------------- + A new skeleton for an integer substitution specifier (class OBJTYP_INT) + whose replacement string (the stuff between the parentheses in #(...)) + says substitution type 'objType' and the rest of the replacement string is + 'intObjstr'. +-----------------------------------------------------------------------------*/ SkeletonObject * retval; char formstr[MAX_OBJ_BUF]; - unsigned int const nOdata = sscanf(objstr, "%*s%s", formstr); + int nOdata; + + nOdata = sscanf(intObjstr, "%s", formstr); if (nOdata == 1) retval = newIdataObj(objType, formstr); @@ -806,7 +822,7 @@ newISkelFromReplString(const char * const objstr, static SkeletonObject * newSkeletonFromReplString(const char * const objstr) { /*---------------------------------------------------------------------------- - Create a skeleton from the replacement string 'objstr' (the stuff + A new skeleton created from the replacement string 'objstr' (the stuff between the parentheses in #(...) ). Return NULL if it isn't a valid replacement string. @@ -821,6 +837,7 @@ newSkeletonFromReplString(const char * const objstr) { SkeletonObject * retval; char typstr[MAX_OBJ_BUF]; + int typlen; SkeletonObjectType objType; int conversionCt; char s1[MAX_OBJ_BUF]; /* Dry read. */ @@ -829,7 +846,8 @@ newSkeletonFromReplString(const char * const objstr) { typstr[0] = '\0'; /* initial value */ - conversionCt = sscanf(objstr, "%s%s%f%f%s", typstr, s1, &f1, &f2, s2); + conversionCt = sscanf(objstr, "%s%n%s%f%f%s", + typstr, &typlen, s1, &f1, &f2, s2); switch (conversionCt) { case 1: case 2: case 4: objType = interpretObjType(typstr); @@ -840,13 +858,13 @@ newSkeletonFromReplString(const char * const objstr) { switch (objClass(objType)) { case OBJTYP_ICOLOR: - retval = newIcSkelFromReplString(objstr, objType); + retval = newIcSkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_FCOLOR: - retval = newFcSkelFromReplString(objstr, objType); + retval = newFcSkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_INT: - retval = newISkelFromReplString(objstr, objType); + retval = newISkelFromReplString(&objstr[typlen], objType); break; case OBJTYP_BDATA: retval = NULL; diff --git a/converter/ppm/ppmtompeg/jrevdct.c b/converter/ppm/ppmtompeg/jrevdct.c index bf9196c4..dd1f9fff 100644 --- a/converter/ppm/ppmtompeg/jrevdct.c +++ b/converter/ppm/ppmtompeg/jrevdct.c @@ -26,7 +26,11 @@ * matrix, perhaps with the difference cases encoded. */ +#define _XOPEN_SOURCE 500 /* get M_PI in math.h */ + #include <memory.h> +#include <math.h> + #include "all.h" #include "dct.h" @@ -1211,35 +1215,29 @@ mpeg_jrevdct_quick(data) */ -/* Here we use math.h to generate constants. Compiler results may - vary a little */ - -#ifndef PI -#ifdef M_PI -#define PI M_PI -#else -#define PI 3.14159265358979323846 -#endif -#endif - /* cosine transform matrix for 8x1 IDCT */ static double itrans_coef[8][8]; -/* initialize DCT coefficient matrix */ -void init_idctref() -{ - int freq, time; - double scale; - - for (freq=0; freq < 8; freq++) - { - scale = (freq == 0) ? sqrt(0.125) : 0.5; - for (time=0; time<8; time++) - itrans_coef[freq][time] = scale*cos((PI/8.0)*freq*(time + 0.5)); - } + +void init_idctref() { +/*---------------------------------------------------------------------------- + initialize DCT coefficient matrix +-----------------------------------------------------------------------------*/ + unsigned int freq; + + for (freq=0; freq < 8; ++freq) { + double const scale = (freq == 0) ? sqrt(0.125) : 0.5; + + unsigned int time; + + for (time = 0; time < 8; ++time) + itrans_coef[freq][time] = scale*cos((M_PI/8.0)*freq*(time + 0.5)); + } } + + /* perform IDCT matrix multiply for 8x8 coefficient block */ void reference_rev_dct(block) diff --git a/converter/ppm/ppmtompeg/mfwddct.c b/converter/ppm/ppmtompeg/mfwddct.c index 75c3a718..9381e51c 100644 --- a/converter/ppm/ppmtompeg/mfwddct.c +++ b/converter/ppm/ppmtompeg/mfwddct.c @@ -15,6 +15,10 @@ * instead of floating point. */ +#define _XOPEN_SOURCE 500 /* get M_PI in math.h */ + +#include <math.h> + #include "all.h" #include "dct.h" @@ -375,26 +379,19 @@ mp_fwd_dct_block2(data, dest) * */ -#ifndef PI -#ifdef M_PI -#define PI M_PI -#else -#define PI 3.14159265358979323846 -#endif -#endif -void init_fdct() -{ - int i, j; - double s; +void init_fdct() { - for (i=0; i<8; i++) - { - s = (i==0) ? sqrt(0.125) : 0.5; + unsigned int i; - for (j=0; j<8; j++) - trans_coef[i][j] = s * cos((PI/8.0)*i*(j+0.5)); - } + for (i = 0; i < 8; ++i) { + double const s = i == 0 ? sqrt(0.125) : 0.5; + + unsigned int j; + + for (j = 0; j < 8; ++j) + trans_coef[i][j] = s * cos((M_PI/8.0) * i * (j+0.5)); + } } |