Home | History | Annotate | Download | only in libpng

Lines Matching refs:png_ptr

47 png_set_sig_bytes(png_structrp png_ptr, int num_bytes)
53 if (png_ptr == NULL)
60 png_error(png_ptr, "Too many bytes for PNG signature");
62 png_ptr->sig_bytes = (png_byte)nb;
98 png_zalloc,(voidpf png_ptr, uInt items, uInt size),PNG_ALLOCATED)
102 if (png_ptr == NULL)
107 png_warning (png_voidcast(png_structrp, png_ptr),
113 return png_malloc_warn(png_voidcast(png_structrp, png_ptr), num_bytes);
118 png_zfree(voidpf png_ptr, voidpf ptr)
120 png_free(png_voidcast(png_const_structrp,png_ptr), ptr);
127 png_reset_crc(png_structrp png_ptr)
130 png_ptr->crc = (png_uint_32)crc32(0, Z_NULL, 0);
139 png_calculate_crc(png_structrp png_ptr, png_const_bytep ptr, png_size_t length)
143 if (PNG_CHUNK_ANCILLARY(png_ptr->chunk_name) != 0)
145 if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) ==
152 if ((png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) != 0)
163 uLong crc = png_ptr->crc; /* Should never issue a warning */
185 png_ptr->crc = (png_uint_32)crc;
193 png_user_version_check(png_structrp png_ptr, png_const_charp user_png_ver)
209 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
217 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
219 if ((png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) != 0)
232 png_warning(png_ptr, m);
236 png_ptr->flags = 0;
319 png_structrp png_ptr = png_voidcast(png_structrp,
320 png_malloc_warn(&create_struct, (sizeof *png_ptr)));
322 if (png_ptr != NULL)
324 /* png_ptr->zstream holds a back-pointer to the png_struct, so
329 create_struct.zstream.opaque = png_ptr;
338 *png_ptr = create_struct;
341 return png_ptr;
354 png_create_info_struct,(png_const_structrp png_ptr),PNG_ALLOCATED)
360 if (png_ptr == NULL)
368 info_ptr = png_voidcast(png_inforp, png_malloc_base(png_ptr,
386 png_destroy_info_struct(png_const_structrp png_ptr, png_infopp info_ptr_ptr)
392 if (png_ptr == NULL)
408 png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
410 png_free(png_ptr, info_ptr);
452 png_data_freer(png_const_structrp png_ptr, png_inforp info_ptr,
457 if (png_ptr == NULL || info_ptr == NULL)
467 png_error(png_ptr, "Unknown freer parameter in png_data_freer");
471 png_free_data(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 mask,
476 if (png_ptr == NULL || info_ptr == NULL)
486 png_free(png_ptr, info_ptr->text[num].key);
495 png_free(png_ptr, info_ptr->text[i].key);
497 png_free(png_ptr, info_ptr->text);
510 png_free(png_ptr, info_ptr->trans_alpha);
520 png_free(png_ptr, info_ptr->scal_s_width);
521 png_free(png_ptr, info_ptr->scal_s_height);
532 png_free(png_ptr, info_ptr->pcal_purpose);
533 png_free(png_ptr, info_ptr->pcal_units);
542 png_free(png_ptr, info_ptr->pcal_params[i]);
544 png_free(png_ptr, info_ptr->pcal_params);
555 png_free(png_ptr, info_ptr->iccp_name);
556 png_free(png_ptr, info_ptr->iccp_profile);
570 png_free(png_ptr, info_ptr->splt_palettes[num].name);
571 png_free(png_ptr, info_ptr->splt_palettes[num].entries);
582 png_free(png_ptr, info_ptr->splt_palettes[i].name);
583 png_free(png_ptr, info_ptr->splt_palettes[i].entries);
586 png_free(png_ptr, info_ptr->splt_palettes);
600 png_free(png_ptr, info_ptr->unknown_chunks[num].data);
609 png_free(png_ptr, info_ptr->unknown_chunks[i].data);
611 png_free(png_ptr, info_ptr->unknown_chunks);
625 png_free(png_ptr, info_ptr->eXIf_buf);
631 png_free(png_ptr, info_ptr->exif);
642 png_free(png_ptr, info_ptr->hist);
651 png_free(png_ptr, info_ptr->palette);
665 png_free(png_ptr, info_ptr->row_pointers[row]);
667 png_free(png_ptr, info_ptr->row_pointers);
686 png_get_io_ptr(png_const_structrp png_ptr)
688 if (png_ptr == NULL)
691 return (png_ptr->io_ptr);
703 png_init_io(png_structrp png_ptr, png_FILE_p fp)
707 if (png_ptr == NULL)
710 png_ptr->io_ptr = (png_voidp)fp;
791 png_convert_to_rfc1123(png_structrp png_ptr, png_const_timep ptime)
793 if (png_ptr != NULL)
795 /* The only failure above if png_ptr != NULL is from an invalid ptime */
796 if (png_convert_to_rfc1123_buffer(png_ptr->time_buffer, ptime) == 0)
797 png_warning(png_ptr, "Ignoring invalid time value");
800 return png_ptr->time_buffer;
811 png_get_copyright(png_const_structrp png_ptr)
813 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
843 png_get_libpng_ver(png_const_structrp png_ptr)
846 return png_get_header_ver(png_ptr);
850 png_get_header_ver(png_const_structrp png_ptr)
853 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
858 png_get_header_version(png_const_structrp png_ptr)
861 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
932 png_handle_as_unknown(png_const_structrp png_ptr, png_const_bytep chunk_name)
937 if (png_ptr == NULL || chunk_name == NULL || png_ptr->num_chunk_list == 0)
940 p_end = png_ptr->chunk_list;
941 p = p_end + png_ptr->num_chunk_list*5; /* beyond end */
957 * be handled according to the value of png_ptr->unknown_default; this can be
967 png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name)
972 return png_handle_as_unknown(png_ptr, chunk_string);
980 png_reset_zstream(png_structrp png_ptr)
982 if (png_ptr == NULL)
986 return (inflateReset(&png_ptr->zstream));
999 /* Ensure that png_ptr->zstream.msg holds some appropriate error message string.
1004 png_zstream_error(png_structrp png_ptr, int ret)
1010 if (png_ptr->zstream.msg == NULL) switch (ret)
1014 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return code");
1019 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected end of LZ stream");
1026 png_ptr->zstream.msg = PNGZ_MSG_CAST("missing LZ dictionary");
1031 png_ptr->zstream.msg = PNGZ_MSG_CAST("zlib IO error");
1036 png_ptr->zstream.msg = PNGZ_MSG_CAST("bad parameters to zlib");
1040 png_ptr->zstream.msg = PNGZ_MSG_CAST("damaged LZ stream");
1044 png_ptr->zstream.msg = PNGZ_MSG_CAST("insufficient memory");
1051 png_ptr->zstream.msg = PNGZ_MSG_CAST("truncated");
1055 png_ptr->zstream.msg = PNGZ_MSG_CAST("unsupported zlib version");
1064 png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return");
1076 png_ptr,
1102 png_chunk_report(png_ptr, "gamma value does not match sRGB",
1110 png_chunk_report(png_ptr, "gamma value does not match libpng estimate",
1120 png_colorspace_set_gamma(png_const_structrp png_ptr,
1141 else if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 &&
1152 if (png_colorspace_check_gamma(png_ptr, colorspace, gAMA,
1171 png_chunk_report(png_ptr, errmsg, PNG_CHUNK_WRITE_ERROR);
1175 png_colorspace_sync_info(png_const_structrp png_ptr, png_inforp info_ptr)
1185 png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, -1/*not used*/);
1187 PNG_UNUSED(png_ptr)
1221 png_colorspace_sync(png_const_structrp png_ptr, png_inforp info_ptr)
1226 info_ptr->colorspace = png_ptr->colorspace;
1227 png_colorspace_sync_info(png_ptr, info_ptr);
1678 png_colorspace_set_xy_and_XYZ(png_const_structrp png_ptr,
1699 png_benign_error(png_ptr, "inconsistent chromaticities");
1726 png_colorspace_set_chromaticities(png_const_structrp png_ptr,
1740 return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, xy, &XYZ,
1748 png_benign_error(png_ptr, "invalid chromaticities");
1756 png_error(png_ptr, "internal error checking chromaticities");
1763 png_colorspace_set_endpoints(png_const_structrp png_ptr,
1772 return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, &xy, &XYZ,
1778 png_benign_error(png_ptr, "invalid end points");
1783 png_error(png_ptr, "internal error checking chromaticities");
1829 png_icc_profile_error(png_const_structrp png_ptr, png_colorspacerp colorspace,
1869 png_chunk_report(png_ptr, message,
1878 png_colorspace_set_sRGB(png_const_structrp png_ptr, png_colorspacerp colorspace,
1915 return png_icc_profile_error(png_ptr, colorspace, "sRGB",
1920 return png_icc_profile_error(png_ptr, colorspace, "sRGB",
1925 png_benign_error(png_ptr, "duplicate sRGB information ignored");
1935 png_chunk_report(png_ptr, "cHRM chunk does not match sRGB",
1941 (void)png_colorspace_check_gamma(png_ptr, colorspace, PNG_GAMMA_sRGB_INVERSE,
1976 icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace,
1980 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
1987 png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace,
1990 if (!icc_check_length(png_ptr, colorspace, name, profile_length))
2000 else if (png_ptr->user_chunk_malloc_max > 0 &&
2001 png_ptr->user_chunk_malloc_max < profile_length)
2002 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
2006 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
2011 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
2020 png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace,
2033 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2038 return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
2044 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2052 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2059 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2076 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2087 (void)png_icc_profile_error(png_ptr, NULL, name, 0/*no tag value*/,
2115 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2121 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2126 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2151 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2161 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2169 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2179 (void)png_icc_profile_error(png_ptr, NULL, name, temp,
2195 return png_icc_profile_error(png_ptr, colorspace, name, temp,
2203 png_icc_check_tag_table(png_const_structrp png_ptr, png_colorspacerp colorspace,
2231 return png_icc_profile_error(png_ptr, colorspace, name, tag_id,
2240 (void)png_icc_profile_error(png_ptr, NULL, name, tag_id,
2313 png_compare_ICC_profile_with_sRGB(png_const_structrp png_ptr,
2333 if (((png_ptr->options >> PNG_SKIP_sRGB_CHECK_PROFILE) & 3) ==
2397 png_chunk_report(png_ptr, "known incorrect sRGB profile",
2407 png_chunk_report(png_ptr,
2421 png_chunk_report(png_ptr,
2434 png_icc_set_sRGB(png_const_structrp png_ptr,
2440 if (png_compare_ICC_profile_with_sRGB(png_ptr, profile, adler) != 0)
2441 (void)png_colorspace_set_sRGB(png_ptr, colorspace,
2448 png_colorspace_set_ICC(png_const_structrp png_ptr, png_colorspacerp colorspace,
2455 if (icc_check_length(png_ptr, colorspace, name, profile_length) != 0 &&
2456 png_icc_check_header(png_ptr, colorspace, name, profile_length, profile,
2458 png_icc_check_tag_table(png_ptr, colorspace, name, profile_length,
2463 png_icc_set_sRGB(png_ptr, colorspace, profile, 0);
2475 png_colorspace_set_rgb_coefficients(png_structrp png_ptr)
2478 if (png_ptr->rgb_to_gray_coefficients_set == 0 &&
2479 (png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
2484 png_fixed_point r = png_ptr->colorspace.end_points_XYZ.red_Y;
2485 png_fixed_point g = png_ptr->colorspace.end_points_XYZ.green_Y;
2486 png_fixed_point b = png_ptr->colorspace.end_points_XYZ.blue_Y;
2519 png_error(png_ptr,
2524 png_ptr->rgb_to_gray_red_coeff = (png_uint_16)r;
2525 png_ptr->rgb_to_gray_green_coeff = (png_uint_16)g;
2534 png_error(png_ptr, "internal error handling cHRM->XYZ");
2553 png_check_IHDR(png_const_structrp png_ptr,
2563 png_warning(png_ptr, "Image width is zero in IHDR");
2569 png_warning(png_ptr, "Invalid image width in IHDR");
2591 png_warning(png_ptr, "Image width is too large for this architecture");
2596 if (width > png_ptr->user_width_max)
2601 png_warning(png_ptr, "Image width exceeds user limit in IHDR");
2607 png_warning(png_ptr, "Image height is zero in IHDR");
2613 png_warning(png_ptr, "Invalid image height in IHDR");
2618 if (height > png_ptr->user_height_max)
2623 png_warning(png_ptr, "Image height exceeds user limit in IHDR");
2631 png_warning(png_ptr, "Invalid bit depth in IHDR");
2638 png_warning(png_ptr, "Invalid color type in IHDR");
2647 png_warning(png_ptr, "Invalid color type/bit depth combination in IHDR");
2653 png_warning(png_ptr, "Unknown interlace method in IHDR");
2659 png_warning(png_ptr, "Unknown compression method in IHDR");
2673 if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 &&
2674 png_ptr->mng_features_permitted != 0)
2675 png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
2679 if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 &&
2681 ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) &&
2685 png_warning(png_ptr, "Unknown filter method in IHDR");
2689 if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0)
2691 png_warning(png_ptr, "Invalid filter method in IHDR");
2699 png_warning(png_ptr, "Unknown filter method in IHDR");
2705 png_error(png_ptr, "Invalid IHDR data");
2909 png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
3227 png_error(png_ptr, "ASCII conversion buffer too small");
3239 png_ascii_from_fixed(png_const_structrp png_ptr, png_charp ascii,
3309 png_error(png_ptr, "ASCII conversion buffer too small");
3322 png_fixed(png_const_structrp png_ptr, double fp, png_const_charp text)
3327 png_fixed_error(png_ptr, text);
3478 png_muldiv_warn(png_const_structrp png_ptr, png_fixed_point a, png_int_32 times,
3486 png_warning(png_ptr, "fixed point overflow ignored");
3953 png_gamma_correct(png_structrp png_ptr, unsigned int value,
3956 if (png_ptr->bit_depth == 8)
3978 png_build_16bit_table(png_structrp png_ptr, png_uint_16pp *ptable,
3994 (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p)));
3999 (png_uint_16p)png_malloc(png_ptr, 256 * (sizeof (png_uint_16)));
4055 png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable,
4064 (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p)));
4071 table[i] = (png_uint_16p)png_malloc(png_ptr,
4123 png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable,
4127 png_bytep table = *ptable = (png_bytep)png_malloc(png_ptr, 256);
4142 png_destroy_gamma_table(png_structrp png_ptr)
4144 png_free(png_ptr, png_ptr->gamma_table);
4145 png_ptr->gamma_table = NULL;
4148 if (png_ptr->gamma_16_table != NULL)
4151 int istop = (1 << (8 - png_ptr->gamma_shift));
4154 png_free(png_ptr, png_ptr->gamma_16_table[i]);
4156 png_free(png_ptr, png_ptr->gamma_16_table);
4157 png_ptr->gamma_16_table = NULL;
4164 png_free(png_ptr, png_ptr->gamma_from_1);
4165 png_ptr->gamma_from_1 = NULL;
4166 png_free(png_ptr, png_ptr->gamma_to_1);
4167 png_ptr->gamma_to_1 = NULL;
4170 if (png_ptr->gamma_16_from_1 != NULL)
4173 int istop = (1 << (8 - png_ptr->gamma_shift));
4176 png_free(png_ptr, png_ptr->gamma_16_from_1[i]);
4178 png_free(png_ptr, png_ptr->gamma_16_from_1);
4179 png_ptr->gamma_16_from_1 = NULL;
4181 if (png_ptr->gamma_16_to_1 != NULL)
4184 int istop = (1 << (8 - png_ptr->gamma_shift));
4187 png_free(png_ptr, png_ptr->gamma_16_to_1[i]);
4189 png_free(png_ptr, png_ptr->gamma_16_to_1);
4190 png_ptr->gamma_16_to_1 = NULL;
4202 png_build_gamma_table(png_structrp png_ptr, int bit_depth)
4212 if (png_ptr->gamma_table != NULL || png_ptr->gamma_16_table != NULL)
4214 png_warning(png_ptr, "gamma table being rebuilt");
4215 png_destroy_gamma_table(png_ptr);
4220 png_build_8bit_table(png_ptr, &png_ptr->gamma_table,
4221 png_ptr->screen_gamma > 0 ?
4222 png_reciprocal2(png_ptr->colorspace.gamma,
4223 png_ptr->screen_gamma) : PNG_FP_1);
4228 if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0)
4230 png_build_8bit_table(png_ptr, &png_ptr->gamma_to_1,
4231 png_reciprocal(png_ptr->colorspace.gamma));
4233 png_build_8bit_table(png_ptr, &png_ptr->gamma_from_1,
4234 png_ptr->screen_gamma > 0 ?
4235 png_reciprocal(png_ptr->screen_gamma) :
4236 png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */);
4245 if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0)
4247 sig_bit = png_ptr->sig_bit.red;
4249 if (png_ptr->sig_bit.green > sig_bit)
4250 sig_bit = png_ptr->sig_bit.green;
4252 if (png_ptr->sig_bit.blue > sig_bit)
4253 sig_bit = png_ptr->sig_bit.blue;
4256 sig_bit = png_ptr->sig_bit.gray;
4283 if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0)
4296 png_ptr->gamma_shift = shift;
4303 if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0)
4304 png_build_16to8_table(png_ptr, &png_ptr->gamma_16_table, shift,
4305 png_ptr->screen_gamma > 0 ? png_product2(png_ptr->colorspace.gamma,
4306 png_ptr->screen_gamma) : PNG_FP_1);
4309 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_table, shift,
4310 png_ptr->screen_gamma > 0 ? png_reciprocal2(png_ptr->colorspace.gamma,
4311 png_ptr->screen_gamma) : PNG_FP_1);
4316 if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0)
4318 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_to_1, shift,
4319 png_reciprocal(png_ptr->colorspace.gamma));
4325 png_build_16bit_table(png_ptr, &png_ptr->gamma_16_from_1, shift,
4326 png_ptr->screen_gamma > 0 ? png_reciprocal(png_ptr->screen_gamma) :
4327 png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */);
4338 png_set_option(png_structrp png_ptr, int option, int onoff)
4340 if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT &&
4345 png_uint_32 current = png_ptr->options;
4347 png_ptr->options = (png_uint_32)(((current & ~mask) | setting) & 0xff);
4534 /* Double check that we have a png_ptr - it should be impossible to get here
4537 if (cp->png_ptr == NULL)
4544 FILE *fp = png_voidcast(FILE*, cp->png_ptr->io_ptr);
4550 cp->png_ptr->io_ptr = NULL;
4563 png_free(c.png_ptr, cp);
4569 png_destroy_write_struct(&c.png_ptr, &c.info_ptr);
4571 png_error(c.png_ptr, "simplified write not supported");
4577 png_destroy_read_struct(&c.png_ptr, &c.info_ptr, NULL);
4579 png_error(c.png_ptr, "simplified read not supported");