summaryrefslogtreecommitdiff
path: root/codec/image_to_j2k.c
diff options
context:
space:
mode:
authorParvatha Elangovan <p.elangovan@intopix.com>2007-02-27 14:19:09 +0000
committerParvatha Elangovan <p.elangovan@intopix.com>2007-02-27 14:19:09 +0000
commitfd680a1cf0695829d12fa775d348655e67b43582 (patch)
tree0074f01c71ae280023615dd7483b059b6890fec2 /codec/image_to_j2k.c
parent313c772f4ae330a5a1fc43ddf9b98c7d89914c6b (diff)
Made get_file_format function more robust. Modifications in image_to_j2k.c, j2k_to_image.c, getopt.c, getopt.h
Diffstat (limited to 'codec/image_to_j2k.c')
-rw-r--r--codec/image_to_j2k.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/codec/image_to_j2k.c b/codec/image_to_j2k.c
index 70c8de56..71e3dd6a 100644
--- a/codec/image_to_j2k.c
+++ b/codec/image_to_j2k.c
@@ -361,7 +361,10 @@ int get_file_format(char *filename) {
static const int format[] = {
PGX_DFMT, PXM_DFMT, PXM_DFMT, PXM_DFMT, BMP_DFMT, J2K_CFMT, JP2_CFMT
};
- char * ext = strrchr(filename, '.') + 1;
+ char * ext = strrchr(filename, '.');
+ if (ext == NULL)
+ return -1;
+ ext++;
for(i = 0; i < sizeof(format)/sizeof(*format); i++) {
if(strnicmp(ext, extension[i], 3) == 0) {
return format[i];
@@ -378,12 +381,14 @@ char * get_file_name(char *name){
return fname;
}
-get_next_file(int imageno,dircnt_t *dirptr,img_fol_t *img_fol, opj_cparameters_t *parameters){
+char get_next_file(int imageno,dircnt_t *dirptr,img_fol_t *img_fol, opj_cparameters_t *parameters){
char image_filename[OPJ_PATH_LEN], infilename[OPJ_PATH_LEN],outfilename[OPJ_PATH_LEN],temp_ofname[OPJ_PATH_LEN];
strcpy(image_filename,dirptr->filename[imageno]);
- fprintf(stderr,"Image Number %d \"%s\"\n",imageno,image_filename);
+ fprintf(stderr,"File Number %d \"%s\"\n",imageno,image_filename);
parameters->decod_format = get_file_format(image_filename);
+ if (parameters->decod_format == -1)
+ return 1;
sprintf(infilename,"%s/%s",img_fol->imgdirpath,image_filename);
strncpy(parameters->infile, infilename, sizeof(infilename));
@@ -393,7 +398,7 @@ get_next_file(int imageno,dircnt_t *dirptr,img_fol_t *img_fol, opj_cparameters_t
sprintf(outfilename,"%s/%s.%s",img_fol->imgdirpath,temp_ofname,img_fol->out_format);
strncpy(parameters->outfile, outfilename, sizeof(outfilename));
}
-
+ return 0;
}
@@ -484,7 +489,7 @@ int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *parameters,i
img_fol->out_format = "jp2";
break;
default:
- fprintf(stderr, "Unknown output format image %s [only j2k, jp2]!! \n");
+ fprintf(stderr, "Unknown output format image [only j2k, jp2]!! \n");
return 1;
}
}
@@ -1134,7 +1139,7 @@ int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *parameters,i
/* ------------------------------------------------------ */
default:
- fprintf(stderr, "ERROR -> this option is not valid \"-%c %s\"\n", c, optarg);
+ fprintf(stderr, "ERROR -> Command line not valid\n");
return 1;
}
}
@@ -1147,7 +1152,7 @@ int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *parameters,i
}
if(img_fol->set_out_format == 0){
fprintf(stderr, "Error: When -ImgDir is used, -OutFor <FORMAT> must be used !!\n");
- fprintf(stderr, "Only one format allowed! Valid format PGM, PPM, PNM, PGX,BMP!!\n");
+ fprintf(stderr, "Only one format allowed! Valid formats are j2k and jp2!!\n");
return 1;
}
if(!((parameters->outfile[0] == 0))){
@@ -1299,11 +1304,13 @@ int main(int argc, char **argv) {
image = NULL;
fprintf(stderr,"\n");
- process_file = 1;
+
if(img_fol.set_imgdir==1){
- get_next_file(imageno, dirptr,&img_fol, &parameters );
-
+ if (get_next_file(imageno, dirptr,&img_fol, &parameters)) {
+ fprintf(stderr,"skipping file...\n");
+ continue;
+ }
}
switch(parameters.decod_format) {
case PGX_DFMT:
@@ -1315,11 +1322,9 @@ int main(int argc, char **argv) {
default:
fprintf(stderr,"skipping file...\n");
- process_file = 0;
+ continue;
}
- if(process_file == 1){
-
/* decode the source image */
/* ----------------------- */
@@ -1441,7 +1446,6 @@ int main(int argc, char **argv) {
/* free image data */
opj_image_destroy(image);
- }
}
/* free user parameters structure */