Check quantization table index

Fixes #130
This commit is contained in:
Frank Bossen
2014-12-07 17:08:20 -04:00
parent 79929eae12
commit fa6d5a29da
2 changed files with 9 additions and 2 deletions

View File

@@ -448,9 +448,15 @@ parse_switches (j_compress_ptr cinfo, int argc, char **argv,
/* We postpone actually reading the file in case -quality comes later. */
} else if (keymatch(arg, "quant-table", 2)) {
int val;
if (++argn >= argc) /* advance to next argument */
usage();
jpeg_c_set_int_param(cinfo, JINT_BASE_QUANT_TBL_IDX, atoi(argv[argn]));
val = atoi(argv[argn]);
jpeg_c_set_int_param(cinfo, JINT_BASE_QUANT_TBL_IDX, val);
if (jpeg_c_get_int_param(cinfo, JINT_BASE_QUANT_TBL_IDX) != val) {
fprintf(stderr, "%s: %d is invalid argument for quant-table\n", progname, val);
usage();
}
jpeg_set_quality(cinfo, 75, TRUE);
} else if (keymatch(arg, "restart", 1)) {

View File

@@ -174,7 +174,8 @@ jpeg_c_set_int_param (j_compress_ptr cinfo, J_INT_PARAM param, int value)
cinfo->master->trellis_num_loops = value;
break;
case JINT_BASE_QUANT_TBL_IDX:
cinfo->master->quant_tbl_master_idx = value;
if (value >= 0 && value <= 8)
cinfo->master->quant_tbl_master_idx = value;
break;
case JINT_DC_SCAN_OPT_MODE:
cinfo->master->dc_scan_opt_mode = value;