• Home
  • Raw
  • Download

Lines Matching refs:sp

227 	JPEGState *sp = (JPEGState *) cinfo;	/* NB: cinfo assumed first */  in TIFFjpeg_error_exit()  local
231 TIFFErrorExt(sp->tif->tif_clientdata, "JPEGLib", "%s", buffer); /* display the error message */ in TIFFjpeg_error_exit()
233 LONGJMP(sp->exit_jmpbuf, 1); /* return to libtiff caller */ in TIFFjpeg_error_exit()
256 JPEGState *sp = (JPEGState *) cinfo; /* NB: cinfo assumed first */ in TIFFjpeg_progress_monitor() local
261 if (scan_no >= sp->max_allowed_scan_number) in TIFFjpeg_progress_monitor()
268 scan_no, sp->max_allowed_scan_number); in TIFFjpeg_progress_monitor()
271 LONGJMP(sp->exit_jmpbuf, 1); /* return to libtiff caller */ in TIFFjpeg_progress_monitor()
283 #define CALLJPEG(sp, fail, op) (SETJMP((sp)->exit_jmpbuf) ? (fail) : (op)) argument
284 #define CALLVJPEG(sp, op) CALLJPEG(sp, 0, ((op),1)) argument
287 TIFFjpeg_create_compress(JPEGState* sp) in TIFFjpeg_create_compress() argument
290 sp->cinfo.c.err = jpeg_std_error(&sp->err); in TIFFjpeg_create_compress()
291 sp->err.error_exit = TIFFjpeg_error_exit; in TIFFjpeg_create_compress()
292 sp->err.output_message = TIFFjpeg_output_message; in TIFFjpeg_create_compress()
295 sp->cinfo.c.client_data = NULL; in TIFFjpeg_create_compress()
297 return CALLVJPEG(sp, jpeg_create_compress(&sp->cinfo.c)); in TIFFjpeg_create_compress()
301 TIFFjpeg_create_decompress(JPEGState* sp) in TIFFjpeg_create_decompress() argument
304 sp->cinfo.d.err = jpeg_std_error(&sp->err); in TIFFjpeg_create_decompress()
305 sp->err.error_exit = TIFFjpeg_error_exit; in TIFFjpeg_create_decompress()
306 sp->err.output_message = TIFFjpeg_output_message; in TIFFjpeg_create_decompress()
309 sp->cinfo.d.client_data = NULL; in TIFFjpeg_create_decompress()
311 return CALLVJPEG(sp, jpeg_create_decompress(&sp->cinfo.d)); in TIFFjpeg_create_decompress()
315 TIFFjpeg_set_defaults(JPEGState* sp) in TIFFjpeg_set_defaults() argument
317 return CALLVJPEG(sp, jpeg_set_defaults(&sp->cinfo.c)); in TIFFjpeg_set_defaults()
321 TIFFjpeg_set_colorspace(JPEGState* sp, J_COLOR_SPACE colorspace) in TIFFjpeg_set_colorspace() argument
323 return CALLVJPEG(sp, jpeg_set_colorspace(&sp->cinfo.c, colorspace)); in TIFFjpeg_set_colorspace()
327 TIFFjpeg_set_quality(JPEGState* sp, int quality, boolean force_baseline) in TIFFjpeg_set_quality() argument
329 return CALLVJPEG(sp, in TIFFjpeg_set_quality()
330 jpeg_set_quality(&sp->cinfo.c, quality, force_baseline)); in TIFFjpeg_set_quality()
334 TIFFjpeg_suppress_tables(JPEGState* sp, boolean suppress) in TIFFjpeg_suppress_tables() argument
336 return CALLVJPEG(sp, jpeg_suppress_tables(&sp->cinfo.c, suppress)); in TIFFjpeg_suppress_tables()
340 TIFFjpeg_start_compress(JPEGState* sp, boolean write_all_tables) in TIFFjpeg_start_compress() argument
342 return CALLVJPEG(sp, in TIFFjpeg_start_compress()
343 jpeg_start_compress(&sp->cinfo.c, write_all_tables)); in TIFFjpeg_start_compress()
347 TIFFjpeg_write_scanlines(JPEGState* sp, JSAMPARRAY scanlines, int num_lines) in TIFFjpeg_write_scanlines() argument
349 return CALLJPEG(sp, -1, (int) jpeg_write_scanlines(&sp->cinfo.c, in TIFFjpeg_write_scanlines()
354 TIFFjpeg_write_raw_data(JPEGState* sp, JSAMPIMAGE data, int num_lines) in TIFFjpeg_write_raw_data() argument
356 return CALLJPEG(sp, -1, (int) jpeg_write_raw_data(&sp->cinfo.c, in TIFFjpeg_write_raw_data()
361 TIFFjpeg_finish_compress(JPEGState* sp) in TIFFjpeg_finish_compress() argument
363 return CALLVJPEG(sp, jpeg_finish_compress(&sp->cinfo.c)); in TIFFjpeg_finish_compress()
367 TIFFjpeg_write_tables(JPEGState* sp) in TIFFjpeg_write_tables() argument
369 return CALLVJPEG(sp, jpeg_write_tables(&sp->cinfo.c)); in TIFFjpeg_write_tables()
373 TIFFjpeg_read_header(JPEGState* sp, boolean require_image) in TIFFjpeg_read_header() argument
375 return CALLJPEG(sp, -1, jpeg_read_header(&sp->cinfo.d, require_image)); in TIFFjpeg_read_header()
379 TIFFjpeg_has_multiple_scans(JPEGState* sp) in TIFFjpeg_has_multiple_scans() argument
381 return CALLJPEG(sp, 0, jpeg_has_multiple_scans(&sp->cinfo.d)); in TIFFjpeg_has_multiple_scans()
385 TIFFjpeg_start_decompress(JPEGState* sp) in TIFFjpeg_start_decompress() argument
389 sp->cinfo.d.progress = &sp->progress; in TIFFjpeg_start_decompress()
390 sp->progress.progress_monitor = TIFFjpeg_progress_monitor; in TIFFjpeg_start_decompress()
391 sp->max_allowed_scan_number = 100; in TIFFjpeg_start_decompress()
394 sp->max_allowed_scan_number = atoi(sz_max_allowed_scan_number); in TIFFjpeg_start_decompress()
396 return CALLVJPEG(sp, jpeg_start_decompress(&sp->cinfo.d)); in TIFFjpeg_start_decompress()
400 TIFFjpeg_read_scanlines(JPEGState* sp, JSAMPARRAY scanlines, int max_lines) in TIFFjpeg_read_scanlines() argument
402 return CALLJPEG(sp, -1, (int) jpeg_read_scanlines(&sp->cinfo.d, in TIFFjpeg_read_scanlines()
407 TIFFjpeg_read_raw_data(JPEGState* sp, JSAMPIMAGE data, int max_lines) in TIFFjpeg_read_raw_data() argument
409 return CALLJPEG(sp, -1, (int) jpeg_read_raw_data(&sp->cinfo.d, in TIFFjpeg_read_raw_data()
414 TIFFjpeg_finish_decompress(JPEGState* sp) in TIFFjpeg_finish_decompress() argument
416 return CALLJPEG(sp, -1, (int) jpeg_finish_decompress(&sp->cinfo.d)); in TIFFjpeg_finish_decompress()
420 TIFFjpeg_abort(JPEGState* sp) in TIFFjpeg_abort() argument
422 return CALLVJPEG(sp, jpeg_abort(&sp->cinfo.comm)); in TIFFjpeg_abort()
426 TIFFjpeg_destroy(JPEGState* sp) in TIFFjpeg_destroy() argument
428 return CALLVJPEG(sp, jpeg_destroy(&sp->cinfo.comm)); in TIFFjpeg_destroy()
432 TIFFjpeg_alloc_sarray(JPEGState* sp, int pool_id, in TIFFjpeg_alloc_sarray() argument
435 return CALLJPEG(sp, (JSAMPARRAY) NULL, in TIFFjpeg_alloc_sarray()
436 (*sp->cinfo.comm.mem->alloc_sarray) in TIFFjpeg_alloc_sarray()
437 (&sp->cinfo.comm, pool_id, samplesperrow, numrows)); in TIFFjpeg_alloc_sarray()
449 JPEGState* sp = (JPEGState*) cinfo; in std_init_destination() local
450 TIFF* tif = sp->tif; in std_init_destination()
452 sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata; in std_init_destination()
453 sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize; in std_init_destination()
459 JPEGState* sp = (JPEGState*) cinfo; in std_empty_output_buffer() local
460 TIFF* tif = sp->tif; in std_empty_output_buffer()
472 if ( sp->dest.free_in_buffer >= 0 ) { in std_empty_output_buffer()
473 tif->tif_rawcc = tif->tif_rawdatasize - sp->dest.free_in_buffer; in std_empty_output_buffer()
478 sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata; in std_empty_output_buffer()
479 sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize; in std_empty_output_buffer()
487 JPEGState* sp = (JPEGState*) cinfo; in std_term_destination() local
488 TIFF* tif = sp->tif; in std_term_destination()
490 tif->tif_rawcp = (uint8*) sp->dest.next_output_byte; in std_term_destination()
492 tif->tif_rawdatasize - (tmsize_t) sp->dest.free_in_buffer; in std_term_destination()
497 TIFFjpeg_data_dest(JPEGState* sp, TIFF* tif) in TIFFjpeg_data_dest() argument
500 sp->cinfo.c.dest = &sp->dest; in TIFFjpeg_data_dest()
501 sp->dest.init_destination = std_init_destination; in TIFFjpeg_data_dest()
502 sp->dest.empty_output_buffer = std_empty_output_buffer; in TIFFjpeg_data_dest()
503 sp->dest.term_destination = std_term_destination; in TIFFjpeg_data_dest()
513 JPEGState* sp = (JPEGState*) cinfo; in tables_init_destination() local
516 sp->dest.next_output_byte = (JOCTET*) sp->jpegtables; in tables_init_destination()
517 sp->dest.free_in_buffer = (size_t) sp->jpegtables_length; in tables_init_destination()
523 JPEGState* sp = (JPEGState*) cinfo; in tables_empty_output_buffer() local
527 newbuf = _TIFFrealloc((void*) sp->jpegtables, in tables_empty_output_buffer()
528 (tmsize_t) (sp->jpegtables_length + 1000)); in tables_empty_output_buffer()
531 sp->dest.next_output_byte = (JOCTET*) newbuf + sp->jpegtables_length; in tables_empty_output_buffer()
532 sp->dest.free_in_buffer = (size_t) 1000; in tables_empty_output_buffer()
533 sp->jpegtables = newbuf; in tables_empty_output_buffer()
534 sp->jpegtables_length += 1000; in tables_empty_output_buffer()
541 JPEGState* sp = (JPEGState*) cinfo; in tables_term_destination() local
544 sp->jpegtables_length -= (uint32) sp->dest.free_in_buffer; in tables_term_destination()
548 TIFFjpeg_tables_dest(JPEGState* sp, TIFF* tif) in TIFFjpeg_tables_dest() argument
555 if (sp->jpegtables) in TIFFjpeg_tables_dest()
556 _TIFFfree(sp->jpegtables); in TIFFjpeg_tables_dest()
557 sp->jpegtables_length = 1000; in TIFFjpeg_tables_dest()
558 sp->jpegtables = (void*) _TIFFmalloc((tmsize_t) sp->jpegtables_length); in TIFFjpeg_tables_dest()
559 if (sp->jpegtables == NULL) { in TIFFjpeg_tables_dest()
560 sp->jpegtables_length = 0; in TIFFjpeg_tables_dest()
561 TIFFErrorExt(sp->tif->tif_clientdata, "TIFFjpeg_tables_dest", "No space for JPEGTables"); in TIFFjpeg_tables_dest()
564 sp->cinfo.c.dest = &sp->dest; in TIFFjpeg_tables_dest()
565 sp->dest.init_destination = tables_init_destination; in TIFFjpeg_tables_dest()
566 sp->dest.empty_output_buffer = tables_empty_output_buffer; in TIFFjpeg_tables_dest()
567 sp->dest.term_destination = tables_term_destination; in TIFFjpeg_tables_dest()
579 JPEGState* sp = (JPEGState*) cinfo; in std_init_source() local
580 TIFF* tif = sp->tif; in std_init_source()
582 sp->src.next_input_byte = (const JOCTET*) tif->tif_rawdata; in std_init_source()
583 sp->src.bytes_in_buffer = (size_t) tif->tif_rawcc; in std_init_source()
589 JPEGState* sp = (JPEGState* ) cinfo; in std_fill_input_buffer() local
602 if( sp->src.bytes_in_buffer > 0 ) { in std_fill_input_buffer()
617 sp->src.next_input_byte = dummy_EOI; in std_fill_input_buffer()
618 sp->src.bytes_in_buffer = 2; in std_fill_input_buffer()
625 JPEGState* sp = (JPEGState*) cinfo; in std_skip_input_data() local
628 if ((size_t)num_bytes > sp->src.bytes_in_buffer) { in std_skip_input_data()
632 sp->src.next_input_byte += (size_t) num_bytes; in std_skip_input_data()
633 sp->src.bytes_in_buffer -= (size_t) num_bytes; in std_skip_input_data()
646 TIFFjpeg_data_src(JPEGState* sp) in TIFFjpeg_data_src() argument
648 sp->cinfo.d.src = &sp->src; in TIFFjpeg_data_src()
649 sp->src.init_source = std_init_source; in TIFFjpeg_data_src()
650 sp->src.fill_input_buffer = std_fill_input_buffer; in TIFFjpeg_data_src()
651 sp->src.skip_input_data = std_skip_input_data; in TIFFjpeg_data_src()
652 sp->src.resync_to_restart = jpeg_resync_to_restart; in TIFFjpeg_data_src()
653 sp->src.term_source = std_term_source; in TIFFjpeg_data_src()
654 sp->src.bytes_in_buffer = 0; /* for safety */ in TIFFjpeg_data_src()
655 sp->src.next_input_byte = NULL; in TIFFjpeg_data_src()
666 JPEGState* sp = (JPEGState*) cinfo; in tables_init_source() local
668 sp->src.next_input_byte = (const JOCTET*) sp->jpegtables; in tables_init_source()
669 sp->src.bytes_in_buffer = (size_t) sp->jpegtables_length; in tables_init_source()
673 TIFFjpeg_tables_src(JPEGState* sp) in TIFFjpeg_tables_src() argument
675 TIFFjpeg_data_src(sp); in TIFFjpeg_tables_src()
676 sp->src.init_source = tables_init_source; in TIFFjpeg_tables_src()
690 JPEGState* sp = JState(tif); in alloc_downsampled_buffers() local
700 buf = TIFFjpeg_alloc_sarray(sp, JPOOL_IMAGE, in alloc_downsampled_buffers()
705 sp->ds_buffer[ci] = buf; in alloc_downsampled_buffers()
707 sp->samplesperclump = samples_per_clump; in alloc_downsampled_buffers()
753 JPEGState* sp = JState(tif); in JPEGFixupTags() local
757 !sp->ycbcrsampling_fetched) in JPEGFixupTags()
1014 JPEGState* sp = JState(tif); in JPEGSetupDecode() local
1024 assert(sp != NULL); in JPEGSetupDecode()
1025 assert(sp->cinfo.comm.is_decompressor); in JPEGSetupDecode()
1029 TIFFjpeg_tables_src(sp); in JPEGSetupDecode()
1030 if(TIFFjpeg_read_header(sp,FALSE) != JPEG_HEADER_TABLES_ONLY) { in JPEGSetupDecode()
1037 sp->photometric = td->td_photometric; in JPEGSetupDecode()
1038 switch (sp->photometric) { in JPEGSetupDecode()
1040 sp->h_sampling = td->td_ycbcrsubsampling[0]; in JPEGSetupDecode()
1041 sp->v_sampling = td->td_ycbcrsubsampling[1]; in JPEGSetupDecode()
1045 sp->h_sampling = 1; in JPEGSetupDecode()
1046 sp->v_sampling = 1; in JPEGSetupDecode()
1051 TIFFjpeg_data_src(sp); in JPEGSetupDecode()
1098 JPEGState *sp = JState(tif); in JPEGPreDecode() local
1105 assert(sp != NULL); in JPEGPreDecode()
1107 if (sp->cinfo.comm.is_decompressor == 0) in JPEGPreDecode()
1112 assert(sp->cinfo.comm.is_decompressor); in JPEGPreDecode()
1117 if (!TIFFjpeg_abort(sp)) in JPEGPreDecode()
1123 if (TIFFjpeg_read_header(sp, TRUE) != JPEG_HEADER_OK) in JPEGPreDecode()
1126 tif->tif_rawcp = (uint8*) sp->src.next_input_byte; in JPEGPreDecode()
1127 tif->tif_rawcc = sp->src.bytes_in_buffer; in JPEGPreDecode()
1135 sp->bytesperline = TIFFTileRowSize(tif); in JPEGPreDecode()
1141 sp->bytesperline = TIFFScanlineSize(tif); in JPEGPreDecode()
1148 segment_width = TIFFhowmany_32(segment_width, sp->h_sampling); in JPEGPreDecode()
1149 segment_height = TIFFhowmany_32(segment_height, sp->v_sampling); in JPEGPreDecode()
1151 if (sp->cinfo.d.image_width < segment_width || in JPEGPreDecode()
1152 sp->cinfo.d.image_height < segment_height) { in JPEGPreDecode()
1157 sp->cinfo.d.image_width, in JPEGPreDecode()
1158 sp->cinfo.d.image_height); in JPEGPreDecode()
1160 if( sp->cinfo.d.image_width == segment_width && in JPEGPreDecode()
1161 sp->cinfo.d.image_height > segment_height && in JPEGPreDecode()
1172 sp->cinfo.d.image_width, sp->cinfo.d.image_height); in JPEGPreDecode()
1174 else if (sp->cinfo.d.image_width > segment_width || in JPEGPreDecode()
1175 sp->cinfo.d.image_height > segment_height) { in JPEGPreDecode()
1186 sp->cinfo.d.image_width, sp->cinfo.d.image_height); in JPEGPreDecode()
1189 if (sp->cinfo.d.num_components != in JPEGPreDecode()
1200 sp->cinfo.d.data_precision = td->td_bitspersample; in JPEGPreDecode()
1201 sp->cinfo.d.bits_in_jsample = td->td_bitspersample; in JPEGPreDecode()
1203 if (sp->cinfo.d.data_precision != td->td_bitspersample) { in JPEGPreDecode()
1211 if( TIFFjpeg_has_multiple_scans(sp) ) in JPEGPreDecode()
1217 toff_t nRequiredMemory = (toff_t)sp->cinfo.d.image_width * in JPEGPreDecode()
1218 sp->cinfo.d.image_height * in JPEGPreDecode()
1219 sp->cinfo.d.num_components * in JPEGPreDecode()
1223 if( sp->cinfo.d.progressive_mode ) in JPEGPreDecode()
1251 if (sp->cinfo.d.comp_info[0].h_samp_factor != sp->h_sampling || in JPEGPreDecode()
1252 sp->cinfo.d.comp_info[0].v_samp_factor != sp->v_sampling) { in JPEGPreDecode()
1256 sp->cinfo.d.comp_info[0].h_samp_factor, in JPEGPreDecode()
1257 sp->cinfo.d.comp_info[0].v_samp_factor, in JPEGPreDecode()
1258 sp->h_sampling, sp->v_sampling); in JPEGPreDecode()
1262 for (ci = 1; ci < sp->cinfo.d.num_components; ci++) { in JPEGPreDecode()
1263 if (sp->cinfo.d.comp_info[ci].h_samp_factor != 1 || in JPEGPreDecode()
1264 sp->cinfo.d.comp_info[ci].v_samp_factor != 1) { in JPEGPreDecode()
1271 if (sp->cinfo.d.comp_info[0].h_samp_factor != 1 || in JPEGPreDecode()
1272 sp->cinfo.d.comp_info[0].v_samp_factor != 1) { in JPEGPreDecode()
1279 sp->photometric == PHOTOMETRIC_YCBCR && in JPEGPreDecode()
1280 sp->jpegcolormode == JPEGCOLORMODE_RGB) { in JPEGPreDecode()
1282 sp->cinfo.d.jpeg_color_space = JCS_YCbCr; in JPEGPreDecode()
1283 sp->cinfo.d.out_color_space = JCS_RGB; in JPEGPreDecode()
1286 sp->cinfo.d.jpeg_color_space = JCS_UNKNOWN; in JPEGPreDecode()
1287 sp->cinfo.d.out_color_space = JCS_UNKNOWN; in JPEGPreDecode()
1289 (sp->h_sampling != 1 || sp->v_sampling != 1)) in JPEGPreDecode()
1295 sp->cinfo.d.raw_data_out = TRUE; in JPEGPreDecode()
1297 sp->cinfo.d.do_fancy_upsampling = FALSE; in JPEGPreDecode()
1304 sp->cinfo.d.raw_data_out = FALSE; in JPEGPreDecode()
1310 if (!TIFFjpeg_start_decompress(sp)) in JPEGPreDecode()
1314 if (!alloc_downsampled_buffers(tif, sp->cinfo.d.comp_info, in JPEGPreDecode()
1315 sp->cinfo.d.num_components)) in JPEGPreDecode()
1317 sp->scancount = DCTSIZE; /* mark buffer empty */ in JPEGPreDecode()
1330 JPEGState *sp = JState(tif); in JPEGDecode() local
1338 sp->src.next_input_byte = (const JOCTET*) tif->tif_rawcp; in JPEGDecode()
1339 sp->src.bytes_in_buffer = (size_t) tif->tif_rawcc; in JPEGDecode()
1341 if( sp->bytesperline == 0 ) in JPEGDecode()
1344 nrows = cc / sp->bytesperline; in JPEGDecode()
1345 if (cc % sp->bytesperline) in JPEGDecode()
1349 if( nrows > (tmsize_t) sp->cinfo.d.image_height ) in JPEGDecode()
1350 nrows = sp->cinfo.d.image_height; in JPEGDecode()
1363 if (TIFFjpeg_read_scanlines(sp, &bufptr, 1) != 1) in JPEGDecode()
1367 buf += sp->bytesperline; in JPEGDecode()
1368 cc -= sp->bytesperline; in JPEGDecode()
1373 tif->tif_rawcp = (uint8*) sp->src.next_input_byte; in JPEGDecode()
1374 tif->tif_rawcc = sp->src.bytes_in_buffer; in JPEGDecode()
1377 return sp->cinfo.d.output_scanline < sp->cinfo.d.output_height in JPEGDecode()
1378 || TIFFjpeg_finish_decompress(sp); in JPEGDecode()
1386 JPEGState *sp = JState(tif); in JPEGDecode() local
1394 sp->src.next_input_byte = (const JOCTET*) tif->tif_rawcp; in JPEGDecode()
1395 sp->src.bytes_in_buffer = (size_t) tif->tif_rawcc; in JPEGDecode()
1397 if( sp->bytesperline == 0 ) in JPEGDecode()
1400 nrows = cc / sp->bytesperline; in JPEGDecode()
1401 if (cc % sp->bytesperline) in JPEGDecode()
1405 if( nrows > (tmsize_t) sp->cinfo.d.image_height ) in JPEGDecode()
1406 nrows = sp->cinfo.d.image_height; in JPEGDecode()
1417 if( sp->cinfo.d.data_precision == 12 ) in JPEGDecode()
1420 _TIFFmalloc(sizeof(short) * sp->cinfo.d.output_width in JPEGDecode()
1421 * sp->cinfo.d.num_components ); in JPEGDecode()
1434 if (TIFFjpeg_read_scanlines(sp, &line_work_buf, 1) != 1) in JPEGDecode()
1437 if( sp->cinfo.d.data_precision == 12 ) in JPEGDecode()
1439 int value_pairs = (sp->cinfo.d.output_width in JPEGDecode()
1440 * sp->cinfo.d.num_components) / 2; in JPEGDecode()
1455 else if( sp->cinfo.d.data_precision == 8 ) in JPEGDecode()
1457 int value_count = (sp->cinfo.d.output_width in JPEGDecode()
1458 * sp->cinfo.d.num_components); in JPEGDecode()
1470 buf += sp->bytesperline; in JPEGDecode()
1471 cc -= sp->bytesperline; in JPEGDecode()
1479 tif->tif_rawcp = (uint8*) sp->src.next_input_byte; in JPEGDecode()
1480 tif->tif_rawcc = sp->src.bytes_in_buffer; in JPEGDecode()
1483 return sp->cinfo.d.output_scanline < sp->cinfo.d.output_height in JPEGDecode()
1484 || TIFFjpeg_finish_decompress(sp); in JPEGDecode()
1508 JPEGState *sp = JState(tif); in JPEGDecodeRaw() local
1513 nrows = sp->cinfo.d.image_height; in JPEGDecodeRaw()
1524 JDIMENSION clumps_per_line = sp->cinfo.d.comp_info[1].downsampled_width; in JPEGDecodeRaw()
1525 int samples_per_clump = sp->samplesperclump; in JPEGDecodeRaw()
1529 sp->cinfo.d.output_width * in JPEGDecodeRaw()
1530 sp->cinfo.d.num_components); in JPEGDecodeRaw()
1542 if( cc < sp->bytesperline ) { in JPEGDecodeRaw()
1549 if (sp->scancount >= DCTSIZE) { in JPEGDecodeRaw()
1550 int n = sp->cinfo.d.max_v_samp_factor * DCTSIZE; in JPEGDecodeRaw()
1551 if (TIFFjpeg_read_raw_data(sp, sp->ds_buffer, n) != n) in JPEGDecodeRaw()
1553 sp->scancount = 0; in JPEGDecodeRaw()
1560 for (ci = 0, compptr = sp->cinfo.d.comp_info; in JPEGDecodeRaw()
1561 ci < sp->cinfo.d.num_components; in JPEGDecodeRaw()
1568 JSAMPLE *inptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos]; in JPEGDecodeRaw()
1603 if (sp->cinfo.d.data_precision == 8) in JPEGDecodeRaw()
1606 int len = sp->cinfo.d.output_width * sp->cinfo.d.num_components; in JPEGDecodeRaw()
1614 int value_pairs = (sp->cinfo.d.output_width in JPEGDecodeRaw()
1615 * sp->cinfo.d.num_components) / 2; in JPEGDecodeRaw()
1630 sp->scancount ++; in JPEGDecodeRaw()
1631 tif->tif_row += sp->v_sampling; in JPEGDecodeRaw()
1633 buf += sp->bytesperline; in JPEGDecodeRaw()
1634 cc -= sp->bytesperline; in JPEGDecodeRaw()
1636 nrows -= sp->v_sampling; in JPEGDecodeRaw()
1646 return sp->cinfo.d.output_scanline < sp->cinfo.d.output_height in JPEGDecodeRaw()
1647 || TIFFjpeg_finish_decompress(sp); in JPEGDecodeRaw()
1656 unsuppress_quant_table (JPEGState* sp, int tblno) in unsuppress_quant_table() argument
1660 if ((qtbl = sp->cinfo.c.quant_tbl_ptrs[tblno]) != NULL) in unsuppress_quant_table()
1665 suppress_quant_table (JPEGState* sp, int tblno) in suppress_quant_table() argument
1669 if ((qtbl = sp->cinfo.c.quant_tbl_ptrs[tblno]) != NULL) in suppress_quant_table()
1674 unsuppress_huff_table (JPEGState* sp, int tblno) in unsuppress_huff_table() argument
1678 if ((htbl = sp->cinfo.c.dc_huff_tbl_ptrs[tblno]) != NULL) in unsuppress_huff_table()
1680 if ((htbl = sp->cinfo.c.ac_huff_tbl_ptrs[tblno]) != NULL) in unsuppress_huff_table()
1685 suppress_huff_table (JPEGState* sp, int tblno) in suppress_huff_table() argument
1689 if ((htbl = sp->cinfo.c.dc_huff_tbl_ptrs[tblno]) != NULL) in suppress_huff_table()
1691 if ((htbl = sp->cinfo.c.ac_huff_tbl_ptrs[tblno]) != NULL) in suppress_huff_table()
1698 JPEGState* sp = JState(tif); in prepare_JPEGTables() local
1701 if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE)) in prepare_JPEGTables()
1705 if (!TIFFjpeg_suppress_tables(sp, TRUE)) in prepare_JPEGTables()
1707 if (sp->jpegtablesmode & JPEGTABLESMODE_QUANT) { in prepare_JPEGTables()
1708 unsuppress_quant_table(sp, 0); in prepare_JPEGTables()
1709 if (sp->photometric == PHOTOMETRIC_YCBCR) in prepare_JPEGTables()
1710 unsuppress_quant_table(sp, 1); in prepare_JPEGTables()
1712 if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF) { in prepare_JPEGTables()
1713 unsuppress_huff_table(sp, 0); in prepare_JPEGTables()
1714 if (sp->photometric == PHOTOMETRIC_YCBCR) in prepare_JPEGTables()
1715 unsuppress_huff_table(sp, 1); in prepare_JPEGTables()
1718 if (!TIFFjpeg_tables_dest(sp, tif)) in prepare_JPEGTables()
1721 if (!TIFFjpeg_write_tables(sp)) in prepare_JPEGTables()
1730 JPEGState* sp = JState(tif); in JPEGSetupEncode() local
1741 assert(sp != NULL); in JPEGSetupEncode()
1742 assert(!sp->cinfo.comm.is_decompressor); in JPEGSetupEncode()
1744 sp->photometric = td->td_photometric; in JPEGSetupEncode()
1752 sp->cinfo.c.input_components = td->td_samplesperpixel; in JPEGSetupEncode()
1753 if (sp->photometric == PHOTOMETRIC_YCBCR) { in JPEGSetupEncode()
1754 if (sp->jpegcolormode == JPEGCOLORMODE_RGB) { in JPEGSetupEncode()
1755 sp->cinfo.c.in_color_space = JCS_RGB; in JPEGSetupEncode()
1757 sp->cinfo.c.in_color_space = JCS_YCbCr; in JPEGSetupEncode()
1761 sp->cinfo.c.in_color_space = JCS_GRAYSCALE; in JPEGSetupEncode()
1763 sp->cinfo.c.in_color_space = JCS_RGB; in JPEGSetupEncode()
1765 sp->cinfo.c.in_color_space = JCS_CMYK; in JPEGSetupEncode()
1767 sp->cinfo.c.in_color_space = JCS_UNKNOWN; in JPEGSetupEncode()
1770 sp->cinfo.c.input_components = 1; in JPEGSetupEncode()
1771 sp->cinfo.c.in_color_space = JCS_UNKNOWN; in JPEGSetupEncode()
1773 if (!TIFFjpeg_set_defaults(sp)) in JPEGSetupEncode()
1776 switch (sp->photometric) { in JPEGSetupEncode()
1778 sp->h_sampling = td->td_ycbcrsubsampling[0]; in JPEGSetupEncode()
1779 sp->v_sampling = td->td_ycbcrsubsampling[1]; in JPEGSetupEncode()
1780 if( sp->h_sampling == 0 || sp->v_sampling == 0 ) in JPEGSetupEncode()
1820 (int) sp->photometric); in JPEGSetupEncode()
1824 sp->h_sampling = 1; in JPEGSetupEncode()
1825 sp->v_sampling = 1; in JPEGSetupEncode()
1847 sp->cinfo.c.data_precision = td->td_bitspersample; in JPEGSetupEncode()
1849 sp->cinfo.c.bits_in_jsample = td->td_bitspersample; in JPEGSetupEncode()
1852 if ((td->td_tilelength % (sp->v_sampling * DCTSIZE)) != 0) { in JPEGSetupEncode()
1855 sp->v_sampling * DCTSIZE); in JPEGSetupEncode()
1858 if ((td->td_tilewidth % (sp->h_sampling * DCTSIZE)) != 0) { in JPEGSetupEncode()
1861 sp->h_sampling * DCTSIZE); in JPEGSetupEncode()
1866 (td->td_rowsperstrip % (sp->v_sampling * DCTSIZE)) != 0) { in JPEGSetupEncode()
1869 sp->v_sampling * DCTSIZE); in JPEGSetupEncode()
1875 if (sp->jpegtablesmode & (JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF)) { in JPEGSetupEncode()
1876 if( sp->jpegtables == NULL in JPEGSetupEncode()
1877 || memcmp(sp->jpegtables,"\0\0\0\0\0\0\0\0\0",8) == 0 ) in JPEGSetupEncode()
1893 TIFFjpeg_data_dest(sp, tif); in JPEGSetupEncode()
1904 JPEGState *sp = JState(tif); in JPEGPreEncode() local
1910 assert(sp != NULL); in JPEGPreEncode()
1912 if (sp->cinfo.comm.is_decompressor == 1) in JPEGPreEncode()
1917 assert(!sp->cinfo.comm.is_decompressor); in JPEGPreEncode()
1924 sp->bytesperline = TIFFTileRowSize(tif); in JPEGPreEncode()
1930 sp->bytesperline = TIFFScanlineSize(tif); in JPEGPreEncode()
1936 segment_width = TIFFhowmany_32(segment_width, sp->h_sampling); in JPEGPreEncode()
1937 segment_height = TIFFhowmany_32(segment_height, sp->v_sampling); in JPEGPreEncode()
1943 sp->cinfo.c.image_width = segment_width; in JPEGPreEncode()
1944 sp->cinfo.c.image_height = segment_height; in JPEGPreEncode()
1947 sp->cinfo.c.input_components = td->td_samplesperpixel; in JPEGPreEncode()
1948 if (sp->photometric == PHOTOMETRIC_YCBCR) { in JPEGPreEncode()
1949 if (sp->jpegcolormode != JPEGCOLORMODE_RGB) { in JPEGPreEncode()
1950 if (sp->h_sampling != 1 || sp->v_sampling != 1) in JPEGPreEncode()
1953 if (!TIFFjpeg_set_colorspace(sp, JCS_YCbCr)) in JPEGPreEncode()
1959 sp->cinfo.c.comp_info[0].h_samp_factor = sp->h_sampling; in JPEGPreEncode()
1960 sp->cinfo.c.comp_info[0].v_samp_factor = sp->v_sampling; in JPEGPreEncode()
1962 if (!TIFFjpeg_set_colorspace(sp, sp->cinfo.c.in_color_space)) in JPEGPreEncode()
1967 if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN)) in JPEGPreEncode()
1969 sp->cinfo.c.comp_info[0].component_id = s; in JPEGPreEncode()
1971 if (sp->photometric == PHOTOMETRIC_YCBCR && s > 0) { in JPEGPreEncode()
1972 sp->cinfo.c.comp_info[0].quant_tbl_no = 1; in JPEGPreEncode()
1973 sp->cinfo.c.comp_info[0].dc_tbl_no = 1; in JPEGPreEncode()
1974 sp->cinfo.c.comp_info[0].ac_tbl_no = 1; in JPEGPreEncode()
1978 sp->cinfo.c.write_JFIF_header = FALSE; in JPEGPreEncode()
1979 sp->cinfo.c.write_Adobe_marker = FALSE; in JPEGPreEncode()
1986 if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE)) in JPEGPreEncode()
1988 if (sp->jpegtablesmode & JPEGTABLESMODE_QUANT) { in JPEGPreEncode()
1989 suppress_quant_table(sp, 0); in JPEGPreEncode()
1990 suppress_quant_table(sp, 1); in JPEGPreEncode()
1993 unsuppress_quant_table(sp, 0); in JPEGPreEncode()
1994 unsuppress_quant_table(sp, 1); in JPEGPreEncode()
1996 if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF) in JPEGPreEncode()
2001 suppress_huff_table(sp, 0); in JPEGPreEncode()
2002 suppress_huff_table(sp, 1); in JPEGPreEncode()
2003 sp->cinfo.c.optimize_coding = FALSE; in JPEGPreEncode()
2006 sp->cinfo.c.optimize_coding = TRUE; in JPEGPreEncode()
2009 sp->cinfo.c.raw_data_in = TRUE; in JPEGPreEncode()
2015 sp->cinfo.c.raw_data_in = FALSE; in JPEGPreEncode()
2021 if (!TIFFjpeg_start_compress(sp, FALSE)) in JPEGPreEncode()
2025 if (!alloc_downsampled_buffers(tif, sp->cinfo.c.comp_info, in JPEGPreEncode()
2026 sp->cinfo.c.num_components)) in JPEGPreEncode()
2029 sp->scancount = 0; in JPEGPreEncode()
2041 JPEGState *sp = JState(tif); in JPEGEncode() local
2048 assert(sp != NULL); in JPEGEncode()
2050 nrows = cc / sp->bytesperline; in JPEGEncode()
2051 if (cc % sp->bytesperline) in JPEGEncode()
2059 if( sp->cinfo.c.data_precision == 12 ) in JPEGEncode()
2061 line16_count = (int)((sp->bytesperline * 2) / 3); in JPEGEncode()
2075 if( sp->cinfo.c.data_precision == 12 ) in JPEGEncode()
2097 if (TIFFjpeg_write_scanlines(sp, bufptr, 1) != 1) in JPEGEncode()
2101 buf += sp->bytesperline; in JPEGEncode()
2104 if( sp->cinfo.c.data_precision == 12 ) in JPEGEncode()
2119 JPEGState *sp = JState(tif); in JPEGEncodeRaw() local
2126 int samples_per_clump = sp->samplesperclump; in JPEGEncodeRaw()
2130 assert(sp != NULL); in JPEGEncodeRaw()
2134 bytesperclumpline = ((((tmsize_t)sp->cinfo.c.image_width+sp->h_sampling-1)/sp->h_sampling) in JPEGEncodeRaw()
2135 *((tmsize_t)sp->h_sampling*sp->v_sampling+2)*sp->cinfo.c.data_precision+7) in JPEGEncodeRaw()
2138 nrows = ( cc / bytesperclumpline ) * sp->v_sampling; in JPEGEncodeRaw()
2143 clumps_per_line = sp->cinfo.c.comp_info[1].downsampled_width; in JPEGEncodeRaw()
2151 for (ci = 0, compptr = sp->cinfo.c.comp_info; in JPEGEncodeRaw()
2152 ci < sp->cinfo.c.num_components; in JPEGEncodeRaw()
2160 outptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos]; in JPEGEncodeRaw()
2183 sp->scancount++; in JPEGEncodeRaw()
2184 if (sp->scancount >= DCTSIZE) { in JPEGEncodeRaw()
2185 int n = sp->cinfo.c.max_v_samp_factor * DCTSIZE; in JPEGEncodeRaw()
2186 if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n) in JPEGEncodeRaw()
2188 sp->scancount = 0; in JPEGEncodeRaw()
2190 tif->tif_row += sp->v_sampling; in JPEGEncodeRaw()
2192 nrows -= sp->v_sampling; in JPEGEncodeRaw()
2203 JPEGState *sp = JState(tif); in JPEGPostEncode() local
2205 if (sp->scancount > 0) { in JPEGPostEncode()
2213 for (ci = 0, compptr = sp->cinfo.c.comp_info; in JPEGPostEncode()
2214 ci < sp->cinfo.c.num_components; in JPEGPostEncode()
2219 for (ypos = sp->scancount * vsamp; in JPEGPostEncode()
2221 _TIFFmemcpy((void*)sp->ds_buffer[ci][ypos], in JPEGPostEncode()
2222 (void*)sp->ds_buffer[ci][ypos-1], in JPEGPostEncode()
2227 n = sp->cinfo.c.max_v_samp_factor * DCTSIZE; in JPEGPostEncode()
2228 if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n) in JPEGPostEncode()
2238 JPEGState *sp = JState(tif); in JPEGCleanup() local
2240 assert(sp != 0); in JPEGCleanup()
2242 tif->tif_tagmethods.vgetfield = sp->vgetparent; in JPEGCleanup()
2243 tif->tif_tagmethods.vsetfield = sp->vsetparent; in JPEGCleanup()
2244 tif->tif_tagmethods.printdir = sp->printdir; in JPEGCleanup()
2245 if( sp->cinfo_initialized ) in JPEGCleanup()
2246 TIFFjpeg_destroy(sp); /* release libjpeg resources */ in JPEGCleanup()
2247 if (sp->jpegtables) /* tag value */ in JPEGCleanup()
2248 _TIFFfree(sp->jpegtables); in JPEGCleanup()
2258 JPEGState* sp = JState(tif); in JPEGResetUpsampled() local
2269 sp->jpegcolormode == JPEGCOLORMODE_RGB) { in JPEGResetUpsampled()
2293 JPEGState* sp = JState(tif); in JPEGVSetField() local
2297 assert(sp != NULL); in JPEGVSetField()
2306 _TIFFsetByteArray(&sp->jpegtables, va_arg(ap, void*), v32); in JPEGVSetField()
2307 sp->jpegtables_length = v32; in JPEGVSetField()
2311 sp->jpegquality = (int) va_arg(ap, int); in JPEGVSetField()
2314 sp->jpegcolormode = (int) va_arg(ap, int); in JPEGVSetField()
2319 int ret_value = (*sp->vsetparent)(tif, tag, ap); in JPEGVSetField()
2324 sp->jpegtablesmode = (int) va_arg(ap, int); in JPEGVSetField()
2328 sp->ycbcrsampling_fetched = 1; in JPEGVSetField()
2330 return (*sp->vsetparent)(tif, tag, ap); in JPEGVSetField()
2332 return (*sp->vsetparent)(tif, tag, ap); in JPEGVSetField()
2348 JPEGState* sp = JState(tif); in JPEGVGetField() local
2350 assert(sp != NULL); in JPEGVGetField()
2354 *va_arg(ap, uint32*) = sp->jpegtables_length; in JPEGVGetField()
2355 *va_arg(ap, void**) = sp->jpegtables; in JPEGVGetField()
2358 *va_arg(ap, int*) = sp->jpegquality; in JPEGVGetField()
2361 *va_arg(ap, int*) = sp->jpegcolormode; in JPEGVGetField()
2364 *va_arg(ap, int*) = sp->jpegtablesmode; in JPEGVGetField()
2367 return (*sp->vgetparent)(tif, tag, ap); in JPEGVGetField()
2375 JPEGState* sp = JState(tif); in JPEGPrintDir() local
2377 assert(sp != NULL); in JPEGPrintDir()
2380 if( sp != NULL ) { in JPEGPrintDir()
2383 (unsigned long) sp->jpegtables_length); in JPEGPrintDir()
2384 if (sp->printdir) in JPEGPrintDir()
2385 (*sp->printdir)(tif, fd, flags); in JPEGPrintDir()
2392 JPEGState* sp = JState(tif); in JPEGDefaultStripSize() local
2395 s = (*sp->defsparent)(tif, s); in JPEGDefaultStripSize()
2404 JPEGState* sp = JState(tif); in JPEGDefaultTileSize() local
2407 (*sp->deftparent)(tif, tw, th); in JPEGDefaultTileSize()
2436 JPEGState* sp = JState(tif); in JPEGInitializeLibJPEG() local
2438 if(sp->cinfo_initialized) in JPEGInitializeLibJPEG()
2440 if( !decompress && sp->cinfo.comm.is_decompressor ) in JPEGInitializeLibJPEG()
2441 TIFFjpeg_destroy( sp ); in JPEGInitializeLibJPEG()
2442 else if( decompress && !sp->cinfo.comm.is_decompressor ) in JPEGInitializeLibJPEG()
2443 TIFFjpeg_destroy( sp ); in JPEGInitializeLibJPEG()
2447 sp->cinfo_initialized = 0; in JPEGInitializeLibJPEG()
2454 if (!TIFFjpeg_create_decompress(sp)) in JPEGInitializeLibJPEG()
2457 if (!TIFFjpeg_create_compress(sp)) in JPEGInitializeLibJPEG()
2465 if( sp->cinfo.c.mem->max_memory_to_use > 0 ) in JPEGInitializeLibJPEG()
2474 if( sp->cinfo.c.mem->max_memory_to_use < TIFF_JPEG_MAX_MEMORY_TO_USE ) in JPEGInitializeLibJPEG()
2475 sp->cinfo.c.mem->max_memory_to_use = TIFF_JPEG_MAX_MEMORY_TO_USE; in JPEGInitializeLibJPEG()
2480 sp->cinfo_initialized = TRUE; in JPEGInitializeLibJPEG()
2488 JPEGState* sp; in TIFFInitJPEG() local
2514 sp = JState(tif); in TIFFInitJPEG()
2515 sp->tif = tif; /* back link */ in TIFFInitJPEG()
2520 sp->vgetparent = tif->tif_tagmethods.vgetfield; in TIFFInitJPEG()
2522 sp->vsetparent = tif->tif_tagmethods.vsetfield; in TIFFInitJPEG()
2524 sp->printdir = tif->tif_tagmethods.printdir; in TIFFInitJPEG()
2528 sp->jpegtables = NULL; in TIFFInitJPEG()
2529 sp->jpegtables_length = 0; in TIFFInitJPEG()
2530 sp->jpegquality = 75; /* Default IJG quality */ in TIFFInitJPEG()
2531 sp->jpegcolormode = JPEGCOLORMODE_RAW; in TIFFInitJPEG()
2532 sp->jpegtablesmode = JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF; in TIFFInitJPEG()
2533 sp->ycbcrsampling_fetched = 0; in TIFFInitJPEG()
2551 sp->defsparent = tif->tif_defstripsize; in TIFFInitJPEG()
2553 sp->deftparent = tif->tif_deftilesize; in TIFFInitJPEG()
2557 sp->cinfo_initialized = FALSE; in TIFFInitJPEG()
2576 sp->jpegtables_length = SIZE_OF_JPEGTABLES; in TIFFInitJPEG()
2577 sp->jpegtables = (void *) _TIFFmalloc(sp->jpegtables_length); in TIFFInitJPEG()
2578 if (sp->jpegtables) in TIFFInitJPEG()
2580 _TIFFmemset(sp->jpegtables, 0, SIZE_OF_JPEGTABLES); in TIFFInitJPEG()