int highmask;
#endif
-void usage();
+void usage();
/* Write one row of pixel values */
inline void write_one_line(pixel* line, int cols, FILE* outfile)
{
-
int i, index;
unsigned int* maptable;
line8 = (unsigned char*)safealloc(cols);
for (i=0; i< cols; i++)
- *(line8+i)=ENDIAN8(*(line+i));
+ *(line8+i)=(unsigned char)ENDIAN8(*(line+i));
fwrite(line8, sizeof(unsigned char), cols, outfile);
-void initbuffers(int multi, int comp) {
+void initbuffers(int multi, int comp)
+{
int i;
c_cscanline[i] = c_cscanl0[i] + (LEFTMARGIN-1);
}
-void closebuffers(int multi) {
+void closebuffers(int multi)
+{
- int i;
+ int i;
fclose(in);
if (multi==0)
- fclose(out);
- else
- for (i=0;i<components;i++)
- fclose(c_out[i]);
+ fclose(out);
+ else
+ for (i=0;i<components;i++)
+ fclose(c_out[i]);
- free(pscanl0);
- free(cscanl0);
+ free(pscanl0);
+ free(cscanl0);
}
-
-
-int initialize(int argc, char *argv[]) {
+/* command line argument parsing */
+int initialize(int argc, char *argv[])
+{
char *infilename = NULL,
*outfilename = OUTFILE ".out",
*c_outfilename[MAX_COMPONENTS],
int pos; /* position in the file, after the header */
for (i=0;i<MAX_COMPONENTS;i++) {
- c_outfilename[i]=malloc(strlen(OUTFILE)+20);
+ c_outfilename[i]=(char*)malloc(strlen(OUTFILE)+20);
sprintf(c_outfilename[i],"%s%d.out",OUTFILE,i+1);
}
tot_out = 0;
pixel *local_scanl0,*local_scanl1,*local_pscanline,*local_cscanline;
int MCUs_counted;
+ local_cscanline = local_pscanline = NULL;
/* Parse the parameters, initialize */
t1 = get_utime();
- fprintf(msgfile,"Total bits in: %ld Symbols out: %ld %5.3lf bps\n",
+ fprintf(msgfile,"Total bits in: %ld Symbols out: %ld %5.3f bps\n",
tot_in,tot_out,tot_in/(double)tot_out);
- fprintf(msgfile,"Time = %1.3lf secs : %1.0lf KSymbols/sec\n",t1-t0,
+ fprintf(msgfile,"Time = %1.3f secs : %1.0f KSymbols/sec\n",t1-t0,
(tot_out)/(1024*(t1-t0)));
if ( found_EOF )
void usage()
{
fprintf(stderr,"Usage: %s [flags] [infile] [outfile1 [outfile2, ...]]\n\
-DEFAULTS:\n\
-infile = %s.\n\
-outfile1 = %s for color image in a single (PPM) output file.\n\
-outfile1 = %s for monochrome image in a single (PGM) output file.\n\
-outfile[1,2,...] = %s for multiple (PGM) output files \n\
- in plane or line interleaved modes.\n",
+ DEFAULTS:\n\
+ infile = %s.\n\
+ outfile1 = %s for color image in a single (PPM) output file.\n\
+ outfile1 = %s for monochrome image in a single (PGM) output file.\n\
+ outfile[1,2,...] = %s for multiple (PGM) output files \n\
+ in plane or line interleaved modes.\n",
"locod", "specified JLS file", OUTFILE ".out",
OUTFILE "1.out",
OUTFILE "[1,2,...].out");
-fprintf(stderr,"FLAGS:\n\
-outfile2, ... : Multiple output specification for plane or line int. mode.\n\
--i<infile> : Alternate input specification, use -i- for stdin.\n\
--o<outfile> : Alternate output specification, use -o- for stdout.\n\
--P : Generate single (.ppm) output file for sample/line int. mode.\n\
-");
- fprintf(stderr,"\
--h : Print this help.\n\
-*** No spaces allowed between a flag and its argument.\n\
-");
+ fprintf(stderr,"FLAGS:\n\
+ outfile2, ... : Multiple output specification for plane or line int. mode.\n\
+ -i<infile> : Alternate input specification, use -i- for stdin.\n\
+ -o<outfile> : Alternate output specification, use -o- for stdout.\n\
+ -P : Generate single (.ppm) output file for sample/line int. mode.\n\
+ ");
+ fprintf(stderr,"\
+ -h : Print this help.\n\
+ *** No spaces allowed between a flag and its argument.\n\
+ ");
}
void bad_flag(char *s)
{
- fprintf(stderr,"Bad flag %s\n",s);
- usage();
- exit(10);
+ fprintf(stderr,"Bad flag %s\n",s);
+ usage();
+ exit(10);
}