• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/tcl-105/tcl_ext/tkimg/tkimg/tiff/

Lines Matching refs:sp

155 static int TIFFjpeg_finish_compress(JPEGState* sp);
201 JPEGState *sp = (JPEGState *) cinfo; /* NB: cinfo assumed first */
207 LONGJMP(sp->exit_jmpbuf, 1); /* return to libtiff caller */
228 #define CALLJPEG(sp, fail, op) (SETJMP((sp)->exit_jmpbuf) ? (fail) : (op))
230 #define CALLVJPEG(sp, op) CALLJPEG(sp, 0, ((op),1))
232 #define CALLVJPEG(sp, op) (SETJMP((sp)->exit_jmpbuf) ? (0) : ((op),1))
235 TIFFjpeg_create_compress(sp)
236 JPEGState* sp;
239 sp->cinfo.c.err = jpeg_std_error(&sp->err);
240 sp->err.error_exit = TIFFjpeg_error_exit;
241 sp->err.output_message = TIFFjpeg_output_message;
243 return CALLVJPEG(sp, jpeg_CreateCompress(&sp->cinfo.c, JPEG_LIB_VERSION,
249 TIFFjpeg_create_decompress(sp)
250 JPEGState* sp;
253 sp->cinfo.d.err = jpeg_std_error(&sp->err);
254 sp->err.error_exit = TIFFjpeg_error_exit;
255 sp->err.output_message = TIFFjpeg_output_message;
257 return CALLVJPEG(sp, jpeg_CreateDecompress(&sp->cinfo.d, JPEG_LIB_VERSION,
263 TIFFjpeg_set_defaults(sp)
264 JPEGState* sp;
266 return CALLVJPEG(sp, jpeg_set_defaults(&sp->cinfo.c));
271 TIFFjpeg_set_colorspace(sp, colorspace)
272 JPEGState* sp;
275 return CALLVJPEG(sp, jpeg_set_colorspace(&sp->cinfo.c, colorspace));
280 TIFFjpeg_set_quality(sp, quality, force_baseline)
281 JPEGState* sp;
285 return CALLVJPEG(sp,
286 jpeg_set_quality(&sp->cinfo.c, quality, force_baseline));
291 TIFFjpeg_suppress_tables(sp, suppress)
292 JPEGState* sp;
295 return CALLVJPEG(sp, jpeg_suppress_tables(&sp->cinfo.c, suppress));
299 TIFFjpeg_start_compress(sp, write_all_tables)
300 JPEGState* sp;
303 return CALLVJPEG(sp,
304 jpeg_start_compress(&sp->cinfo.c, write_all_tables));
308 TIFFjpeg_write_scanlines(sp, scanlines, num_lines)
309 JPEGState* sp;
313 return CALLJPEG(sp, -1, (int) jpeg_write_scanlines(&sp->cinfo.c,
319 TIFFjpeg_write_raw_data(sp, data, num_lines)
320 JPEGState* sp;
324 return CALLJPEG(sp, -1, (int) jpeg_write_raw_data(&sp->cinfo.c,
330 TIFFjpeg_finish_compress(sp)
331 JPEGState* sp;
333 return CALLVJPEG(sp, jpeg_finish_compress(&sp->cinfo.c));
338 TIFFjpeg_write_tables(sp)
339 JPEGState* sp;
341 return CALLVJPEG(sp, jpeg_write_tables(&sp->cinfo.c));
346 TIFFjpeg_read_header(sp, require_image)
347 JPEGState* sp;
350 return CALLJPEG(sp, -1, jpeg_read_header(&sp->cinfo.d, require_image));
354 TIFFjpeg_start_decompress(sp)
355 JPEGState* sp;
357 return CALLVJPEG(sp, jpeg_start_decompress(&sp->cinfo.d));
362 TIFFjpeg_read_scanlines(sp, scanlines, max_lines)
363 JPEGState* sp;
367 return CALLJPEG(sp, -1, (int) jpeg_read_scanlines(&sp->cinfo.d,
372 TIFFjpeg_read_raw_data(sp, data, max_lines)
373 JPEGState* sp;
377 return CALLJPEG(sp, -1, (int) jpeg_read_raw_data(&sp->cinfo.d,
382 TIFFjpeg_finish_decompress(sp)
383 JPEGState* sp;
385 return CALLJPEG(sp, -1, (int) jpeg_finish_decompress(&sp->cinfo.d));
389 TIFFjpeg_abort(sp)
390 JPEGState* sp;
392 return CALLVJPEG(sp, jpeg_abort(&sp->cinfo.comm));
396 TIFFjpeg_destroy(sp)
397 JPEGState* sp;
399 return CALLVJPEG(sp, jpeg_destroy(&sp->cinfo.comm));
403 TIFFjpeg_alloc_sarray(sp, pool_id, samplesperrow, numrows)
404 JPEGState* sp;
409 return CALLJPEG(sp, (JSAMPARRAY) NULL,
410 (*sp->cinfo.comm.mem->alloc_sarray)
411 (&sp->cinfo.comm, pool_id, samplesperrow, numrows));
424 JPEGState* sp = (JPEGState*) cinfo;
425 TIFF* tif = sp->tif;
427 sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata;
428 sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize;
435 JPEGState* sp = (JPEGState*) cinfo;
436 TIFF* tif = sp->tif;
441 sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata;
442 sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize;
451 JPEGState* sp = (JPEGState*) cinfo;
452 TIFF* tif = sp->tif;
454 tif->tif_rawcp = (tidata_t) sp->dest.next_output_byte;
456 tif->tif_rawdatasize - (tsize_t) sp->dest.free_in_buffer;
461 TIFFjpeg_data_dest(sp, tif)
462 JPEGState* sp;
466 sp->cinfo.c.dest = &sp->dest;
467 sp->dest.init_destination = std_init_destination;
468 sp->dest.empty_output_buffer = std_empty_output_buffer;
469 sp->dest.term_destination = std_term_destination;
480 JPEGState* sp = (JPEGState*) cinfo;
483 sp->dest.next_output_byte = (JOCTET*) sp->jpegtables;
484 sp->dest.free_in_buffer = (size_t) sp->jpegtables_length;
491 JPEGState* sp = (JPEGState*) cinfo;
495 newbuf = TkimgTIFFrealloc((tdata_t) sp->jpegtables,
496 (tsize_t) (sp->jpegtables_length + 1000));
499 sp->dest.next_output_byte = (JOCTET*) newbuf + sp->jpegtables_length;
500 sp->dest.free_in_buffer = (size_t) 1000;
501 sp->jpegtables = newbuf;
502 sp->jpegtables_length += 1000;
510 JPEGState* sp = (JPEGState*) cinfo;
513 sp->jpegtables_length -= sp->dest.free_in_buffer;
517 TIFFjpeg_tables_dest(sp, tif)
518 JPEGState* sp;
526 if (sp->jpegtables) {
527 TkimgTIFFfree(sp->jpegtables);
529 sp->jpegtables_length = 1000;
530 sp->jpegtables = (void*) TkimgTIFFmalloc((tsize_t) sp->jpegtables_length);
531 if (sp->jpegtables == NULL) {
532 sp->jpegtables_length = 0;
536 sp->cinfo.c.dest = &sp->dest;
537 sp->dest.init_destination = tables_init_destination;
538 sp->dest.empty_output_buffer = tables_empty_output_buffer;
539 sp->dest.term_destination = tables_term_destination;
552 JPEGState* sp = (JPEGState*) cinfo;
553 TIFF* tif = sp->tif;
555 sp->src.next_input_byte = (const JOCTET*) tif->tif_rawdata;
556 sp->src.bytes_in_buffer = (size_t) tif->tif_rawcc;
563 JPEGState* sp = (JPEGState* ) cinfo;
573 sp->src.next_input_byte = dummy_EOI;
574 sp->src.bytes_in_buffer = 2;
583 JPEGState* sp = (JPEGState*) cinfo;
586 if (num_bytes > (long) sp->src.bytes_in_buffer) {
590 sp->src.next_input_byte += (size_t) num_bytes;
591 sp->src.bytes_in_buffer -= (size_t) num_bytes;
607 TIFFjpeg_data_src(sp, tif)
608 JPEGState* sp;
612 sp->cinfo.d.src = &sp->src;
613 sp->src.init_source = std_init_source;
614 sp->src.fill_input_buffer = std_fill_input_buffer;
615 sp->src.skip_input_data = std_skip_input_data;
616 sp->src.resync_to_restart = jpeg_resync_to_restart;
617 sp->src.term_source = std_term_source;
618 sp->src.bytes_in_buffer = 0; /* for safety */
619 sp->src.next_input_byte = NULL;
631 JPEGState* sp = (JPEGState*) cinfo;
633 sp->src.next_input_byte = (const JOCTET*) sp->jpegtables;
634 sp->src.bytes_in_buffer = (size_t) sp->jpegtables_length;
638 TIFFjpeg_tables_src(sp, tif)
639 JPEGState* sp;
642 TIFFjpeg_data_src(sp, tif);
643 sp->src.init_source = tables_init_source;
660 JPEGState* sp = JState(tif);
670 buf = TIFFjpeg_alloc_sarray(sp, JPOOL_IMAGE,
675 sp->ds_buffer[ci] = buf;
677 sp->samplesperclump = samples_per_clump;
680 sp->bytesperline = sizeof(JSAMPLE) * samples_per_clump *
694 JPEGState* sp = JState(tif);
697 assert(sp != NULL);
698 assert(sp->cinfo.comm.is_decompressor);
702 TIFFjpeg_tables_src(sp, tif);
703 if(TIFFjpeg_read_header(sp,FALSE) != JPEG_HEADER_TABLES_ONLY) {
710 sp->photometric = td->td_photometric;
711 switch (sp->photometric) {
713 sp->h_sampling = td->td_ycbcrsubsampling[0];
714 sp->v_sampling = td->td_ycbcrsubsampling[1];
718 sp->h_sampling = 1;
719 sp->v_sampling = 1;
724 TIFFjpeg_data_src(sp, tif);
738 JPEGState *sp = JState(tif);
745 assert(sp != NULL);
746 assert(sp->cinfo.comm.is_decompressor);
751 if (!TIFFjpeg_abort(sp))
756 if (TIFFjpeg_read_header(sp, TRUE) != JPEG_HEADER_OK)
764 sp->bytesperline = TIFFTileRowSize(tif);
770 sp->bytesperline = TIFFScanlineSize(tif);
777 segment_width = TIFFhowmany(segment_width, sp->h_sampling);
778 segment_height = TIFFhowmany(segment_height, sp->v_sampling);
780 if (sp->cinfo.d.image_width != segment_width ||
781 sp->cinfo.d.image_height != segment_height) {
785 if (sp->cinfo.d.num_components !=
791 if (sp->cinfo.d.data_precision != td->td_bitspersample) {
797 if (sp->cinfo.d.comp_info[0].h_samp_factor != sp->h_sampling ||
798 sp->cinfo.d.comp_info[0].v_samp_factor != sp->v_sampling) {
803 for (ci = 1; ci < sp->cinfo.d.num_components; ci++) {
804 if (sp->cinfo.d.comp_info[ci].h_samp_factor != 1 ||
805 sp->cinfo.d.comp_info[ci].v_samp_factor != 1) {
812 if (sp->cinfo.d.comp_info[0].h_samp_factor != 1 ||
813 sp->cinfo.d.comp_info[0].v_samp_factor != 1) {
820 sp->photometric == PHOTOMETRIC_YCBCR &&
821 sp->jpegcolormode == JPEGCOLORMODE_RGB) {
823 sp->cinfo.d.jpeg_color_space = JCS_YCbCr;
824 sp->cinfo.d.out_color_space = JCS_RGB;
827 sp->cinfo.d.jpeg_color_space = JCS_UNKNOWN;
828 sp->cinfo.d.out_color_space = JCS_UNKNOWN;
830 (sp->h_sampling != 1 || sp->v_sampling != 1))
836 sp->cinfo.d.raw_data_out = TRUE;
842 sp->cinfo.d.raw_data_out = FALSE;
848 if (!TIFFjpeg_start_decompress(sp))
852 if (!alloc_downsampled_buffers(tif, sp->cinfo.d.comp_info,
853 sp->cinfo.d.num_components))
855 sp->scancount = DCTSIZE; /* mark buffer empty */
872 JPEGState *sp = JState(tif);
877 assert(sp != NULL);
879 nrows = cc / sp->bytesperline;
883 if (TIFFjpeg_read_scanlines(sp, bufptr, 1) != 1)
887 buf += sp->bytesperline;
890 if (sp->cinfo.d.output_scanline == sp->cinfo.d.output_height) {
891 if (TIFFjpeg_finish_decompress(sp) != TRUE)
909 JPEGState *sp = JState(tif);
916 int samples_per_clump = sp->samplesperclump;
919 assert(sp != NULL);
921 nrows = cc / sp->bytesperline;
924 clumps_per_line = sp->cinfo.d.comp_info[1].downsampled_width;
928 if (sp->scancount >= DCTSIZE) {
929 int n = sp->cinfo.d.max_v_samp_factor * DCTSIZE;
930 if (TIFFjpeg_read_raw_data(sp, sp->ds_buffer, n) != n)
932 sp->scancount = 0;
934 if (sp->cinfo.d.output_scanline >=
935 sp->cinfo.d.output_height) {
936 if (TIFFjpeg_finish_decompress(sp) != TRUE)
945 for (ci = 0, compptr = sp->cinfo.d.comp_info;
946 ci < sp->cinfo.d.num_components;
951 inptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos];
970 sp->scancount++;
973 buf += sp->bytesperline;
985 unsuppress_quant_table(sp, tblno)
986 JPEGState* sp;
991 if ((qtbl = sp->cinfo.c.quant_tbl_ptrs[tblno]) != NULL)
997 unsuppress_huff_table(sp, tblno)
998 JPEGState* sp;
1003 if ((htbl = sp->cinfo.c.dc_huff_tbl_ptrs[tblno]) != NULL)
1005 if ((htbl = sp->cinfo.c.ac_huff_tbl_ptrs[tblno]) != NULL)
1014 JPEGState* sp = JState(tif);
1017 if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE))
1021 if (!TIFFjpeg_suppress_tables(sp, TRUE))
1023 if (sp->jpegtablesmode & JPEGTABLESMODE_QUANT) {
1024 unsuppress_quant_table(sp, 0);
1025 if (sp->photometric == PHOTOMETRIC_YCBCR)
1026 unsuppress_quant_table(sp, 1);
1028 if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF) {
1029 unsuppress_huff_table(sp, 0);
1030 if (sp->photometric == PHOTOMETRIC_YCBCR)
1031 unsuppress_huff_table(sp, 1);
1034 if (!TIFFjpeg_tables_dest(sp, tif))
1037 if (!TIFFjpeg_write_tables(sp))
1047 JPEGState* sp = JState(tif);
1051 assert(sp != NULL);
1052 assert(!sp->cinfo.comm.is_decompressor);
1059 sp->cinfo.c.in_color_space = JCS_UNKNOWN;
1060 sp->cinfo.c.input_components = 1;
1061 if (!TIFFjpeg_set_defaults(sp))
1064 sp->photometric = td->td_photometric;
1065 switch (sp->photometric) {
1067 sp->h_sampling = td->td_ycbcrsubsampling[0];
1068 sp->v_sampling = td->td_ycbcrsubsampling[1];
1095 (int) sp->photometric);
1099 sp->h_sampling = 1;
1100 sp->v_sampling = 1;
1116 sp->cinfo.c.data_precision = td->td_bitspersample;
1118 if ((td->td_tilelength % (sp->v_sampling * DCTSIZE)) != 0) {
1121 sp->v_sampling * DCTSIZE);
1124 if ((td->td_tilewidth % (sp->h_sampling * DCTSIZE)) != 0) {
1127 sp->h_sampling * DCTSIZE);
1132 (td->td_rowsperstrip % (sp->v_sampling * DCTSIZE)) != 0) {
1135 sp->v_sampling * DCTSIZE);
1141 if (sp->jpegtablesmode & (JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF)) {
1155 TIFFjpeg_data_dest(sp, tif);
1169 JPEGState *sp = JState(tif);
1175 assert(sp != NULL);
1176 assert(!sp->cinfo.comm.is_decompressor);
1183 sp->bytesperline = TIFFTileRowSize(tif);
1189 sp->bytesperline = TIFFScanlineSize(tif);
1195 segment_width = TIFFhowmany(segment_width, sp->h_sampling);
1196 segment_height = TIFFhowmany(segment_height, sp->v_sampling);
1202 sp->cinfo.c.image_width = segment_width;
1203 sp->cinfo.c.image_height = segment_height;
1206 sp->cinfo.c.input_components = td->td_samplesperpixel;
1207 if (sp->photometric == PHOTOMETRIC_YCBCR) {
1208 if (sp->jpegcolormode == JPEGCOLORMODE_RGB) {
1209 sp->cinfo.c.in_color_space = JCS_RGB;
1211 sp->cinfo.c.in_color_space = JCS_YCbCr;
1212 if (sp->h_sampling != 1 || sp->v_sampling != 1)
1215 if (!TIFFjpeg_set_colorspace(sp, JCS_YCbCr))
1221 sp->cinfo.c.comp_info[0].h_samp_factor = sp->h_sampling;
1222 sp->cinfo.c.comp_info[0].v_samp_factor = sp->v_sampling;
1224 sp->cinfo.c.in_color_space = JCS_UNKNOWN;
1225 if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN))
1230 sp->cinfo.c.input_components = 1;
1231 sp->cinfo.c.in_color_space = JCS_UNKNOWN;
1232 if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN))
1234 sp->cinfo.c.comp_info[0].component_id = s;
1236 if (sp->photometric == PHOTOMETRIC_YCBCR && s > 0) {
1237 sp->cinfo.c.comp_info[0].quant_tbl_no = 1;
1238 sp->cinfo.c.comp_info[0].dc_tbl_no = 1;
1239 sp->cinfo.c.comp_info[0].ac_tbl_no = 1;
1243 sp->cinfo.c.write_JFIF_header = FALSE;
1244 sp->cinfo.c.write_Adobe_marker = FALSE;
1246 if (! (sp->jpegtablesmode & JPEGTABLESMODE_QUANT)) {
1247 if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE))
1249 unsuppress_quant_table(sp, 0);
1250 unsuppress_quant_table(sp, 1);
1252 if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF)
1253 sp->cinfo.c.optimize_coding = FALSE;
1255 sp->cinfo.c.optimize_coding = TRUE;
1258 sp->cinfo.c.raw_data_in = TRUE;
1264 sp->cinfo.c.raw_data_in = FALSE;
1270 if (!TIFFjpeg_start_compress(sp, FALSE))
1274 if (!alloc_downsampled_buffers(tif, sp->cinfo.c.comp_info,
1275 sp->cinfo.c.num_components))
1278 sp->scancount = 0;
1295 JPEGState *sp = JState(tif);
1300 assert(sp != NULL);
1302 nrows = cc / sp->bytesperline;
1306 if (TIFFjpeg_write_scanlines(sp, bufptr, 1) != 1)
1310 buf += sp->bytesperline;
1327 JPEGState *sp = JState(tif);
1334 int samples_per_clump = sp->samplesperclump;
1337 assert(sp != NULL);
1339 nrows = cc / sp->bytesperline;
1342 clumps_per_line = sp->cinfo.c.comp_info[1].downsampled_width;
1350 for (ci = 0, compptr = sp->cinfo.c.comp_info;
1351 ci < sp->cinfo.c.num_components;
1359 outptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos];
1382 sp->scancount++;
1383 if (sp->scancount >= DCTSIZE) {
1384 int n = sp->cinfo.c.max_v_samp_factor * DCTSIZE;
1385 if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n)
1387 sp->scancount = 0;
1391 buf += sp->bytesperline;
1404 JPEGState *sp = JState(tif);
1406 if (sp->scancount > 0) {
1414 for (ci = 0, compptr = sp->cinfo.c.comp_info;
1415 ci < sp->cinfo.c.num_components;
1420 for (ypos = sp->scancount * vsamp;
1422 _TIFFmemcpy((tdata_t)sp->ds_buffer[ci][ypos],
1423 (tdata_t)sp->ds_buffer[ci][ypos-1],
1428 n = sp->cinfo.c.max_v_samp_factor * DCTSIZE;
1429 if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n)
1441 JPEGState *sp = JState(tif);
1442 TIFFjpeg_destroy(sp); /* release libjpeg resources */
1443 if (sp->jpegtables) { /* tag value */
1444 TkimgTIFFfree(sp->jpegtables);
1458 JPEGState* sp = JState(tif);
1469 _TIFFsetByteArray(&sp->jpegtables, va_arg(ap, void*),
1471 sp->jpegtables_length = v32;
1475 sp->jpegquality = va_arg(ap, int);
1478 sp->jpegcolormode = va_arg(ap, int);
1487 sp->jpegcolormode == JPEGCOLORMODE_RGB) {
1502 sp->jpegtablesmode = va_arg(ap, int);
1505 return (*sp->vsetparent)(tif, tag, ap);
1518 JPEGState* sp = JState(tif);
1522 *va_arg(ap, uint32*) = (uint32) sp->jpegtables_length;
1523 *va_arg(ap, void**) = sp->jpegtables;
1526 *va_arg(ap, int*) = sp->jpegquality;
1529 *va_arg(ap, int*) = sp->jpegcolormode;
1532 *va_arg(ap, int*) = sp->jpegtablesmode;
1535 return (*sp->vgetparent)(tif, tag, ap);
1545 JPEGState* sp = JState(tif);
1548 s = (*sp->defsparent)(tif, s);
1560 JPEGState* sp = JState(tif);
1563 (*sp->deftparent)(tif, tw, th);
1574 JPEGState* sp;
1592 sp = JState(tif);
1593 sp->tif = tif; /* back link */
1600 sp->vgetparent = tif->tif_tagmethods.vgetfield;
1602 sp->vsetparent = tif->tif_tagmethods.vsetfield;
1606 sp->jpegtables = NULL;
1607 sp->jpegtables_length = 0;
1608 sp->jpegquality = 75; /* Default IJG quality */
1609 sp->jpegcolormode = JPEGCOLORMODE_RAW;
1610 sp->jpegtablesmode = JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF;
1627 sp->defsparent = tif->tif_defstripsize;
1629 sp->deftparent = tif->tif_deftilesize;
1637 if (!TIFFjpeg_create_decompress(sp))
1640 if (!TIFFjpeg_create_compress(sp))