Home | History | Annotate | Download | only in libpng16

Lines Matching refs:png_ptr

27 png_set_sig_bytes(png_structrp png_ptr, int num_bytes)
33 if (png_ptr == NULL)
40 png_error(png_ptr, "Too many bytes for PNG signature");
42 png_ptr->sig_bytes = (png_byte)nb;
78 png_zalloc,(voidpf png_ptr, uInt items, uInt size),PNG_ALLOCATED)
82 if (png_ptr == NULL)
87 png_warning (png_voidcast(png_structrp, png_ptr),
93 return png_malloc_warn(png_voidcast(png_structrp, png_ptr), num_bytes);
98 png_zfree(voidpf png_ptr, voidpf ptr)
100 png_free(png_voidcast(png_const_structrp,png_ptr), ptr);
107 png_reset_crc(png_structrp png_ptr)
110 png_ptr->crc = (png_uint_32)crc32(0, Z_NULL, 0);
119 png_calculate_crc(png_structrp png_ptr, png_const_bytep ptr, png_size_t length)
123 if (PNG_CHUNK_ANCILLARY(png_ptr->chunk_name) != 0)
125 if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) ==
132 if ((png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) != 0)
143 uLong crc = png_ptr->crc; /* Should never issue a warning */
165 png_ptr->crc = (png_uint_32)crc;
173 png_user_version_check(png_structrp png_ptr, png_const_charp user_png_ver)
189 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
197 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
199 if ((png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) != 0)
212 png_warning(png_ptr, m);
216 png_ptr->flags = 0;
299 png_structrp png_ptr = png_voidcast(png_structrp,
300 png_malloc_warn(&create_struct, (sizeof *png_ptr)));
302 if (png_ptr != NULL)
304 /* png_ptr->zstream holds a back-pointer to the png_struct, so
309 create_struct.zstream.opaque = png_ptr;
318 *png_ptr = create_struct;
321 return png_ptr;
334 png_create_info_struct,(png_const_structrp png_ptr),PNG_ALLOCATED)
340 if (png_ptr == NULL)
348 info_ptr = png_voidcast(png_inforp, png_malloc_base(png_ptr,
366 png_destroy_info_struct(png_const_structrp png_ptr, png_infopp info_ptr_ptr)
372 if (png_ptr == NULL)
388 png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
390 png_free(png_ptr, info_ptr);
432 png_data_freer(png_const_structrp png_ptr, png_inforp info_ptr,
437 if (png_ptr == NULL || info_ptr == NULL)
447 png_error(png_ptr, "Unknown freer parameter in png_data_freer");
451 png_free_data(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 mask,
456 if (png_ptr == NULL || info_ptr == NULL)
466 png_free(png_ptr, info_ptr->text[num].key);
475 png_free(png_ptr, info_ptr->text[i].key);
477 png_free(png_ptr, info_ptr->text);
489 png_free(png_ptr, info_ptr->trans_alpha);
499 png_free(png_ptr, info_ptr->scal_s_width);
500 png_free(png_ptr, info_ptr->scal_s_height);
511 png_free(png_ptr, info_ptr->pcal_purpose);
512 png_free(png_ptr, info_ptr->pcal_units);
521 png_free(png_ptr, info_ptr->pcal_params[i]);
523 png_free(png_ptr, info_ptr->pcal_params);
534 png_free(png_ptr, info_ptr->iccp_name);
535 png_free(png_ptr, info_ptr->iccp_profile);
549 png_free(png_ptr, info_ptr->splt_palettes[num].name);
550 png_free(png_ptr, info_ptr->splt_palettes[num].entries);
561 png_free(png_ptr, info_ptr->splt_palettes[i].name);
562 png_free(png_ptr, info_ptr->splt_palettes[i].entries);
565 png_free(png_ptr, info_ptr->splt_palettes);
579 png_free(png_ptr, info_ptr->unknown_chunks[num].data);
588 png_free(png_ptr, info_ptr->unknown_chunks[i].data);
590 png_free(png_ptr, info_ptr->unknown_chunks);
601 png_free(png_ptr, info_ptr->hist);
610 png_free(png_ptr, info_ptr->palette);
624 png_free(png_ptr, info_ptr->row_pointers[row]);
626 png_free(png_ptr, info_ptr->row_pointers);
645 png_get_io_ptr(png_const_structrp png_ptr)
647 if (png_ptr == NULL)
650 return (png_ptr->io_ptr);
662 png_init_io(png_structrp png_ptr, png_FILE_p fp)
666 if (png_ptr == NULL)
669 png_ptr->io_ptr = (png_voidp)fp;
750 png_convert_to_rfc1123(png_structrp png_ptr, png_const_timep ptime)
752 if (png_ptr != NULL)
754 /* The only failure above if png_ptr != NULL is from an invalid ptime */
755 if (png_convert_to_rfc1123_buffer(png_ptr->time_buffer, ptime) == 0)
756 png_warning(png_ptr, "Ignoring invalid time value");
759 return png_ptr->time_buffer;
770 png_get_copyright(png_const_structrp png_ptr)
772 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
802 png_get_libpng_ver(png_const_structrp png_ptr)
805 return png_get_header_ver(png_ptr);
809 png_get_header_ver(png_const_structrp png_ptr)
812 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
817 png_get_header_version(png_const_structrp png_ptr)
820 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
891 png_handle_as_unknown(png_const_structrp png_ptr, png_const_bytep chunk_name)
896 if (png_ptr == NULL || chunk_name == NULL || png_ptr->num_chunk_list == 0)
899 p_end = png_ptr->chunk_list;
900 p = p_end + png_ptr->num_chunk_list*5; /* beyond end */
916 * be handled according to the value of png_ptr->unknown_default; this can be
926 png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name)
931 return png_handle_as_unknown(png_ptr, chunk_string);
939 png_reset_zstream(png_structrp png_ptr)
941 if (png_ptr == NULL)
945 return (inflateReset(&png_ptr->zstream));
958 /* Ensure that png_ptr->zstream.msg holds some appropriate error message string.
963 png_zstream_error(png_structrp png_ptr, int ret)
969 if (png_ptr->zstream.msg == NULL) switch (ret)
973 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return code");
978 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected end of LZ stream");
985 png_ptr->zstream.msg = PNGZ_MSG_CAST("missing LZ dictionary");
990 png_ptr->zstream.msg = PNGZ_MSG_CAST("zlib IO error");
995 png_ptr->zstream.msg = PNGZ_MSG_CAST("bad parameters to zlib");
999 png_ptr->zstream.msg = PNGZ_MSG_CAST("damaged LZ stream");
1003 png_ptr->zstream.msg = PNGZ_MSG_CAST("insufficient memory");
1010 png_ptr->zstream.msg = PNGZ_MSG_CAST("truncated");
1014 png_ptr->zstream.msg = PNGZ_MSG_CAST("unsupported zlib version");
1023 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return");
1035 png_colorspace_check_gamma(png_const_structrp png_ptr,
1061 png_chunk_report(png_ptr, "gamma value does not match sRGB",
1069 png_chunk_report(png_ptr, "gamma value does not match libpng estimate",
1079 png_colorspace_set_gamma(png_const_structrp png_ptr,
1100 else if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 &&
1111 if (png_colorspace_check_gamma(png_ptr, colorspace, gAMA,
1130 png_chunk_report(png_ptr, errmsg, PNG_CHUNK_WRITE_ERROR);
1134 png_colorspace_sync_info(png_const_structrp png_ptr, png_inforp info_ptr)
1144 png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, -1/*not used*/);
1146 PNG_UNUSED(png_ptr)
1180 png_colorspace_sync(png_const_structrp png_ptr, png_inforp info_ptr)
1185 info_ptr->colorspace = png_ptr->colorspace;
1186 png_colorspace_sync_info(png_ptr, info_ptr);
1637 png_colorspace_set_xy_and_XYZ(png_const_structrp png_ptr,
1658 png_benign_error(png_ptr, "inconsistent chromaticities");
1685 png_colorspace_set_chromaticities(png_const_structrp png_ptr,
1699 return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, xy, &XYZ,
1707 png_benign_error(png_ptr, "invalid chromaticities");
1715 png_error(png_ptr, "internal error checking chromaticities");
1722 png_colorspace_set_endpoints(png_const_structrp png_ptr,
1731 return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, &xy, &XYZ,
1737 png_benign_error(png_ptr, "invalid end points");
1742 png_error(png_ptr, "internal error checking chromaticities");
1788 png_icc_profile_error(png_const_structrp png_ptr, png_colorspacerp colorspace,
1828 png_chunk_report(png_ptr, message,
1837 png_colorspace_set_sRGB(png_const_structrp png_ptr, png_colorspacerp colorspace,
1874 return png_icc_profile_error(png_ptr, colorspace, "sRGB",
1879 return png_icc_profile_error(png_ptr, colorspace, "sRGB",
1884 png_benign_error(png_ptr, "duplicate sRGB information ignored");
1894 png_chunk_report(png_ptr, "cHRM chunk does not match sRGB",
1900 (void)png_colorspace_check_gamma(png_ptr, colorspace, PNG_GAMMA_sRGB_INVERSE,
1935 icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace,
1939 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
1947 png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace,
1950 if (!icc_check_length(png_ptr, colorspace, name, profile_length))
1960 else if (png_ptr
1961 png_ptr->user_chunk_malloc_max < profile_length)
1962 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
1966 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
1971 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
1980 png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace,
1993 return png_icc_profile_error(png_ptr, colorspace, name, temp,
1998 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
2004 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2012 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2019 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2036 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2047 (void)png_icc_profile_error(png_ptr, NULL, name, 0/*no tag value*/,
2075 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2081 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2086 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2111 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2121 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2129 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2139 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2155 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2163 png_icc_check_tag_table(png_const_structrp png_ptr, png_colorspacerp colorspace,
2192 (void)png_icc_profile_error(png_ptr, NULL, name, tag_id,
2200 return png_icc_profile_error(png_ptr, colorspace, name, tag_id,
2272 png_compare_ICC_profile_with_sRGB(png_const_structrp png_ptr,
2292 if (((png_ptr->options >> PNG_SKIP_sRGB_CHECK_PROFILE) & 3) ==
2356 png_chunk_report(png_ptr, "known incorrect sRGB profile",
2366 png_chunk_report(png_ptr,
2380 png_chunk_report(png_ptr,
2394 png_icc_set_sRGB(png_const_structrp png_ptr,
2401 if (png_compare_ICC_profile_with_sRGB(png_ptr, profile, adler) != 0)
2403 (void)png_colorspace_set_sRGB(png_ptr, colorspace,
2409 png_colorspace_set_ICC(png_const_structrp png_ptr, png_colorspacerp colorspace,
2416 if (icc_check_length(png_ptr, colorspace, name, profile_length) != 0 &&
2417 png_icc_check_header(png_ptr, colorspace, name, profile_length, profile,
2419 png_icc_check_tag_table(png_ptr, colorspace, name, profile_length,
2424 png_icc_set_sRGB(png_ptr, colorspace, profile, 0);
2436 png_colorspace_set_rgb_coefficients(png_structrp png_ptr)
2439 if (png_ptr->rgb_to_gray_coefficients_set == 0 &&
2440 (png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
2445 png_fixed_point r = png_ptr->colorspace.end_points_XYZ.red_Y;
2446 png_fixed_point g = png_ptr->colorspace.end_points_XYZ.green_Y;
2447 png_fixed_point b = png_ptr->colorspace.end_points_XYZ.blue_Y;
2480 png_error(png_ptr,
2485 png_ptr->rgb_to_gray_red_coeff = (png_uint_16)r;
2486 png_ptr->rgb_to_gray_green_coeff = (png_uint_16)g;
2495 png_error(png_ptr, "internal error handling cHRM->XYZ");
2515 png_check_IHDR(png_const_structrp png_ptr,
2525 png_warning(png_ptr, "Image width is zero in IHDR");
2531 png_warning(png_ptr, "Invalid image width in IHDR");
2553 png_warning(png_ptr, "Image width is too large for this architecture");
2558 if (width > png_ptr->user_width_max)
2563 png_warning(png_ptr, "Image width exceeds user limit in IHDR");
2569 png_warning(png_ptr, "Image height is zero in IHDR");
2575 png_warning(png_ptr, "Invalid image height in IHDR");
2580 if (height > png_ptr->user_height_max)
2585 png_warning(png_ptr, "Image height exceeds user limit in IHDR");
2593 png_warning(png_ptr, "Invalid bit depth in IHDR");
2600 png_warning(png_ptr, "Invalid color type in IHDR");
2609 png_warning(png_ptr, "Invalid color type/bit depth combination in IHDR");
2615 png_warning(png_ptr, "Unknown interlace method in IHDR");
2621 png_warning(png_ptr, "Unknown compression method in IHDR");
2635 if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 &&
2636 png_ptr->mng_features_permitted != 0)
2637 png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
2641 if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 &&
2643 ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) &&
2647 png_warning(png_ptr, "Unknown filter method in IHDR");
2651 if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0)
2653 png_warning(png_ptr, "Invalid filter method in IHDR");
2661 png_warning(png_ptr, "Unknown filter method in IHDR");
2667 png_error(png_ptr, "Invalid IHDR data");
2863 png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
3169 png_error(png_ptr, "ASCII conversion buffer too small");
3178 png_ascii_from_fixed(png_const_structrp png_ptr, png_charp ascii,
3243 png_error(png_ptr, "ASCII conversion buffer too small");
3256 png_fixed(png_const_structrp png_ptr, double fp, png_const_charp text)
3261 png_fixed_error(png_ptr, text);
3400 png_muldiv_warn(png_const_structrp png_ptr, png_fixed_point a, png_int_32 times,
3408 png_warning(png_ptr, "fixed point overflow ignored");
3875 png_gamma_correct(png_structrp png_ptr, unsigned int value,
3878 png_ptr->bit_depth == 8)
3900 png_build_16bit_table(png_structrp png_ptr, png_uint_16pp *ptable,
3916 (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p)));
3921 (png_uint_16p)png_malloc(png_ptr, 256 * (sizeof (png_uint_16)));
3977 png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable,
3986 (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p)));
3993 table[i] = (png_uint_16p)png_malloc(png_ptr,
4045 png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable,
4049 png_bytep table = *ptable = (png_bytep)png_malloc(png_ptr, 256);
4064 png_destroy_gamma_table(png_structrp png_ptr)
4066 png_free(png_ptr, png_ptr->gamma_table);
4067 png_ptr->gamma_table = NULL;
4070 if (png_ptr->gamma_16_table != NULL)
4073 int istop = (1 << (8 - png_ptr->gamma_shift));
4076 png_free(png_ptr, png_ptr->gamma_16_table[i]);
4078 png_free(png_ptr, png_ptr->gamma_16_table);
4079 png_ptr->gamma_16_table = NULL;
4086 png_free(png_ptr, png_ptr->gamma_from_1);
4087 png_ptr->gamma_from_1 = NULL;
4088 png_free(png_ptr, png_ptr->gamma_to_1);
4089 png_ptr->gamma_to_1 = NULL;
4092 if (png_ptr->gamma_16_from_1 != NULL)
4095 int istop = (1 << (8 - png_ptr->gamma_shift));
4098 png_free(png_ptr, png_ptr->gamma_16_from_1[i]);
4100 png_free(png_ptr, png_ptr->gamma_16_from_1);
4101 png_ptr->gamma_16_from_1 = NULL;
4103 if (png_ptr->gamma_16_to_1 != NULL)
4106 int istop = (1 << (8 - png_ptr->gamma_shift));
4109 png_free(png_ptr, png_ptr->gamma_16_to_1[i]);
4111 png_free(png_ptr, png_ptr->gamma_16_to_1);
4112 png_ptr->gamma_16_to_1 = NULL;
4124 png_build_gamma_table(png_structrp png_ptr, int bit_depth)
4134 if (png_ptr->gamma_table != NULL || png_ptr->gamma_16_table != NULL)
4136 png_warning(png_ptr, "gamma table being rebuilt");
4137 png_destroy_gamma_table(png_ptr);
4142 png_build_8bit_table(png_ptr, &png_ptr->gamma_table,
4143 png_ptr->screen_gamma > 0 ? png_reciprocal2(png_ptr->colorspace.gamma,
4144 png_ptr->screen_gamma) : PNG_FP_1);
4149 if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0)
4151 png_build_8bit_table(png_ptr, &png_ptr->gamma_to_1,
4152 png_reciprocal(png_ptr->colorspace.gamma));
4154 png_build_8bit_table(png_ptr, &png_ptr->gamma_from_1,
4155 png_ptr->screen_gamma > 0 ? png_reciprocal(png_ptr->screen_gamma) :
4156 png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */);
4165 if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0)
4167 sig_bit = png_ptr->sig_bit.red;
4169 if (png_ptr->sig_bit.green > sig_bit)
4170 sig_bit = png_ptr->sig_bit.green;
4172 if (png_ptr->sig_bit.blue > sig_bit)
4173 sig_bit = png_ptr->sig_bit.blue;
4176 sig_bit = png_ptr->sig_bit.gray;
4203 if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0)
4216 png_ptr->gamma_shift = shift;
4223 if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0)
4224 png_build_16to8_table(png_ptr, &png_ptr->gamma_16_table, shift,
4225 png_ptr->screen_gamma > 0 ? png_product2(png_ptr->colorspace.gamma,
4226 png_ptr->screen_gamma) : PNG_FP_1);
4229 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_table, shift,
4230 png_ptr->screen_gamma > 0 ? png_reciprocal2(png_ptr->colorspace.gamma,
4231 png_ptr->screen_gamma) : PNG_FP_1);
4236 if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0)
4238 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_to_1, shift,
4239 png_reciprocal(png_ptr->colorspace.gamma));
4245 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_from_1, shift,
4246 png_ptr->screen_gamma > 0 ? png_reciprocal(png_ptr->screen_gamma) :
4247 png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */);
4258 png_set_option(png_structrp png_ptr, int option, int onoff)
4260 if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT &&
4265 int current = png_ptr->options;
4267 png_ptr->options = (png_byte)(((current & ~mask) | setting) & 0xff);
4454 /* Double check that we have a png_ptr - it should be impossible to get here
4457 if (cp->png_ptr == NULL)
4464 FILE *fp = png_voidcast(FILE*, cp->png_ptr->io_ptr);
4470 cp->png_ptr->io_ptr = NULL;
4483 png_free(c.png_ptr, cp);
4489 png_destroy_write_struct(&c.png_ptr, &c.info_ptr);
4491 png_error(c.png_ptr, "simplified write not supported");
4497 png_destroy_read_struct(&c.png_ptr, &c.info_ptr, NULL);
4499 png_error(c.png_ptr, "simplified read not supported");