Lines Matching refs:png_ptr
47 png_structp png_ptr; in png_create_read_struct_2() local
60 png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG, in png_create_read_struct_2()
63 png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG); in png_create_read_struct_2()
65 if (png_ptr == NULL) in png_create_read_struct_2()
70 png_ptr->user_width_max = PNG_USER_WIDTH_MAX; in png_create_read_struct_2()
71 png_ptr->user_height_max = PNG_USER_HEIGHT_MAX; in png_create_read_struct_2()
74 png_ptr->user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX; in png_create_read_struct_2()
78 png_ptr->user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX; in png_create_read_struct_2()
86 if (setjmp(png_ptr->jmpbuf)) in png_create_read_struct_2()
89 png_free(png_ptr, png_ptr->zbuf); in png_create_read_struct_2()
90 png_ptr->zbuf = NULL; in png_create_read_struct_2()
92 png_destroy_struct_2((png_voidp)png_ptr, in png_create_read_struct_2()
95 png_destroy_struct((png_voidp)png_ptr); in png_create_read_struct_2()
100 png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf)); in png_create_read_struct_2()
105 png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn); in png_create_read_struct_2()
108 png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn); in png_create_read_struct_2()
116 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; in png_create_read_struct_2()
120 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; in png_create_read_struct_2()
123 if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) in png_create_read_struct_2()
141 png_warning(png_ptr, msg); in png_create_read_struct_2()
146 png_warning(png_ptr, msg); in png_create_read_struct_2()
149 png_ptr->flags = 0; in png_create_read_struct_2()
151 png_error(png_ptr, in png_create_read_struct_2()
157 png_ptr->zbuf_size = PNG_ZBUF_SIZE; in png_create_read_struct_2()
158 png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, in png_create_read_struct_2()
159 (png_uint_32)png_ptr->zbuf_size); in png_create_read_struct_2()
160 png_ptr->zstream.zalloc = png_zalloc; in png_create_read_struct_2()
161 png_ptr->zstream.zfree = png_zfree; in png_create_read_struct_2()
162 png_ptr->zstream.opaque = (voidpf)png_ptr; in png_create_read_struct_2()
164 switch (inflateInit(&png_ptr->zstream)) in png_create_read_struct_2()
168 case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory error"); in png_create_read_struct_2()
170 case Z_VERSION_ERROR: png_error(png_ptr, "zlib version error"); in png_create_read_struct_2()
172 default: png_error(png_ptr, "Unknown zlib error"); in png_create_read_struct_2()
176 png_ptr->zstream.next_out = png_ptr->zbuf; in png_create_read_struct_2()
177 png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; in png_create_read_struct_2()
179 png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL); in png_create_read_struct_2()
188 png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf)); in png_create_read_struct_2()
190 if (setjmp(png_ptr->jmpbuf)) in png_create_read_struct_2()
196 png_ptr->index = NULL; in png_create_read_struct_2()
199 return (png_ptr); in png_create_read_struct_2()
209 png_read_init(png_structp png_ptr) in png_read_init() argument
212 png_read_init_2(png_ptr, "1.0.6 or earlier", 0, 0); in png_read_init()
216 png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver, in png_read_init_2() argument
220 if (png_ptr == NULL) in png_read_init_2()
227 png_ptr->warning_fn = NULL; in png_read_init_2()
233 png_warning(png_ptr, msg); in png_read_init_2()
238 png_warning(png_ptr, msg); in png_read_init_2()
243 png_ptr->error_fn = NULL; in png_read_init_2()
245 png_ptr->flags = 0; in png_read_init_2()
247 png_error(png_ptr, in png_read_init_2()
253 png_ptr->error_fn = NULL; in png_read_init_2()
255 png_ptr->flags = 0; in png_read_init_2()
257 png_error(png_ptr, in png_read_init_2()
261 png_read_init_3(&png_ptr, user_png_ver, png_struct_size); in png_read_init_2()
275 png_structp png_ptr=*ptr_ptr; in png_read_init_3() local
277 if (png_ptr == NULL) in png_read_init_3()
285 png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; in png_read_init_3()
287 png_ptr->warning_fn = NULL; in png_read_init_3()
288 png_warning(png_ptr, in png_read_init_3()
300 png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf)); in png_read_init_3()
305 png_destroy_struct(png_ptr); in png_read_init_3()
307 png_ptr = *ptr_ptr; in png_read_init_3()
311 png_memset(png_ptr, 0, png_sizeof(png_struct)); in png_read_init_3()
315 png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf)); in png_read_init_3()
320 png_ptr->user_width_max = PNG_USER_WIDTH_MAX; in png_read_init_3()
321 png_ptr->user_height_max = PNG_USER_HEIGHT_MAX; in png_read_init_3()
325 png_ptr->zbuf_size = PNG_ZBUF_SIZE; in png_read_init_3()
326 png_ptr->zstream.zalloc = png_zalloc; in png_read_init_3()
327 png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, in png_read_init_3()
328 (png_uint_32)png_ptr->zbuf_size); in png_read_init_3()
329 png_ptr->zstream.zalloc = png_zalloc; in png_read_init_3()
330 png_ptr->zstream.zfree = png_zfree; in png_read_init_3()
331 png_ptr->zstream.opaque = (voidpf)png_ptr; in png_read_init_3()
333 switch (inflateInit(&png_ptr->zstream)) in png_read_init_3()
336 case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory error"); break; in png_read_init_3()
337 case Z_VERSION_ERROR: png_error(png_ptr, "zlib version error"); in png_read_init_3()
339 default: png_error(png_ptr, "Unknown zlib error"); in png_read_init_3()
342 png_ptr->zstream.next_out = png_ptr->zbuf; in png_read_init_3()
343 png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; in png_read_init_3()
345 png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL); in png_read_init_3()
358 png_read_info(png_structp png_ptr, png_infop info_ptr) in png_read_info() argument
362 if (png_ptr == NULL || info_ptr == NULL) in png_read_info()
366 if (png_ptr->sig_bytes < 8) in png_read_info()
368 png_size_t num_checked = png_ptr->sig_bytes, in png_read_info()
371 png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check); in png_read_info()
372 png_ptr->sig_bytes = 8; in png_read_info()
378 png_error(png_ptr, "Not a PNG file"); in png_read_info()
380 png_error(png_ptr, "PNG file corrupted by ASCII conversion"); in png_read_info()
383 png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE; in png_read_info()
445 png_uint_32 length = png_read_chunk_header(png_ptr); in png_read_info()
446 PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; in png_read_info()
452 if (png_ptr->mode & PNG_AFTER_IDAT) in png_read_info()
453 png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; in png_read_info()
456 png_handle_IHDR(png_ptr, info_ptr, length); in png_read_info()
458 png_handle_IEND(png_ptr, info_ptr, length); in png_read_info()
460 else if (png_handle_as_unknown(png_ptr, chunk_name)) in png_read_info()
463 png_ptr->mode |= PNG_HAVE_IDAT; in png_read_info()
464 png_handle_unknown(png_ptr, info_ptr, length); in png_read_info()
466 png_ptr->mode |= PNG_HAVE_PLTE; in png_read_info()
469 if (!(png_ptr->mode & PNG_HAVE_IHDR)) in png_read_info()
470 png_error(png_ptr, "Missing IHDR before IDAT"); in png_read_info()
471 else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && in png_read_info()
472 !(png_ptr->mode & PNG_HAVE_PLTE)) in png_read_info()
473 png_error(png_ptr, "Missing PLTE before IDAT"); in png_read_info()
479 png_handle_PLTE(png_ptr, info_ptr, length); in png_read_info()
482 if (!(png_ptr->mode & PNG_HAVE_IHDR)) in png_read_info()
483 png_error(png_ptr, "Missing IHDR before IDAT"); in png_read_info()
484 else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && in png_read_info()
485 !(png_ptr->mode & PNG_HAVE_PLTE)) in png_read_info()
486 png_error(png_ptr, "Missing PLTE before IDAT"); in png_read_info()
488 png_ptr->idat_size = length; in png_read_info()
489 png_ptr->mode |= PNG_HAVE_IDAT; in png_read_info()
494 png_handle_bKGD(png_ptr, info_ptr, length); in png_read_info()
498 png_handle_cHRM(png_ptr, info_ptr, length); in png_read_info()
502 png_handle_gAMA(png_ptr, info_ptr, length); in png_read_info()
506 png_handle_hIST(png_ptr, info_ptr, length); in png_read_info()
510 png_handle_oFFs(png_ptr, info_ptr, length); in png_read_info()
514 png_handle_pCAL(png_ptr, info_ptr, length); in png_read_info()
518 png_handle_sCAL(png_ptr, info_ptr, length); in png_read_info()
522 png_handle_pHYs(png_ptr, info_ptr, length); in png_read_info()
526 png_handle_sBIT(png_ptr, info_ptr, length); in png_read_info()
530 png_handle_sRGB(png_ptr, info_ptr, length); in png_read_info()
534 png_handle_iCCP(png_ptr, info_ptr, length); in png_read_info()
538 png_handle_sPLT(png_ptr, info_ptr, length); in png_read_info()
542 png_handle_tEXt(png_ptr, info_ptr, length); in png_read_info()
546 png_handle_tIME(png_ptr, info_ptr, length); in png_read_info()
550 png_handle_tRNS(png_ptr, info_ptr, length); in png_read_info()
554 png_handle_zTXt(png_ptr, info_ptr, length); in png_read_info()
558 png_handle_iTXt(png_ptr, info_ptr, length); in png_read_info()
561 png_handle_unknown(png_ptr, info_ptr, length); in png_read_info()
568 png_read_update_info(png_structp png_ptr, png_infop info_ptr) in png_read_update_info() argument
572 if (png_ptr == NULL) in png_read_update_info()
575 if (png_ptr->index) { in png_read_update_info()
576 png_read_start_row(png_ptr); in png_read_update_info()
579 if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) in png_read_update_info()
580 png_read_start_row(png_ptr); in png_read_update_info()
582 png_warning(png_ptr, in png_read_update_info()
585 png_read_transform_info(png_ptr, info_ptr); in png_read_update_info()
595 png_start_read_image(png_structp png_ptr) in png_start_read_image() argument
599 if (png_ptr == NULL) in png_start_read_image()
601 if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) in png_start_read_image()
602 png_read_start_row(png_ptr); in png_start_read_image()
608 png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row) in png_read_row() argument
616 if (png_ptr == NULL) in png_read_row()
620 png_ptr->row_number, png_ptr->pass); in png_read_row()
622 if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) in png_read_row()
623 png_read_start_row(png_ptr); in png_read_row()
624 if (png_ptr->row_number == 0 && png_ptr->pass == 0) in png_read_row()
628 if (png_ptr->transformations & PNG_INVERT_MONO) in png_read_row()
629 png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined."); in png_read_row()
632 if (png_ptr->transformations & PNG_FILLER) in png_read_row()
633 png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined."); in png_read_row()
637 if (png_ptr->transformations & PNG_PACKSWAP) in png_read_row()
638 png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined."); in png_read_row()
641 if (png_ptr->transformations & PNG_PACK) in png_read_row()
642 png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined."); in png_read_row()
645 if (png_ptr->transformations & PNG_SHIFT) in png_read_row()
646 png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined."); in png_read_row()
649 if (png_ptr->transformations & PNG_BGR) in png_read_row()
650 png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined."); in png_read_row()
653 if (png_ptr->transformations & PNG_SWAP_BYTES) in png_read_row()
654 png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined."); in png_read_row()
660 if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE)) in png_read_row()
662 switch (png_ptr->pass) in png_read_row()
665 if (png_ptr->row_number & 0x07) in png_read_row()
668 png_combine_row(png_ptr, dsp_row, in png_read_row()
669 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
670 png_read_finish_row(png_ptr); in png_read_row()
675 if ((png_ptr->row_number & 0x07) || png_ptr->width < 5) in png_read_row()
678 png_combine_row(png_ptr, dsp_row, in png_read_row()
679 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
680 png_read_finish_row(png_ptr); in png_read_row()
685 if ((png_ptr->row_number & 0x07) != 4) in png_read_row()
687 if (dsp_row != NULL && (png_ptr->row_number & 4)) in png_read_row()
688 png_combine_row(png_ptr, dsp_row, in png_read_row()
689 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
690 png_read_finish_row(png_ptr); in png_read_row()
695 if ((png_ptr->row_number & 3) || png_ptr->width < 3) in png_read_row()
698 png_combine_row(png_ptr, dsp_row, in png_read_row()
699 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
700 png_read_finish_row(png_ptr); in png_read_row()
705 if ((png_ptr->row_number & 3) != 2) in png_read_row()
707 if (dsp_row != NULL && (png_ptr->row_number & 2)) in png_read_row()
708 png_combine_row(png_ptr, dsp_row, in png_read_row()
709 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
710 png_read_finish_row(png_ptr); in png_read_row()
715 if ((png_ptr->row_number & 1) || png_ptr->width < 2) in png_read_row()
718 png_combine_row(png_ptr, dsp_row, in png_read_row()
719 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
720 png_read_finish_row(png_ptr); in png_read_row()
725 if (!(png_ptr->row_number & 1)) in png_read_row()
727 png_read_finish_row(png_ptr); in png_read_row()
735 if (!(png_ptr->mode & PNG_HAVE_IDAT)) in png_read_row()
736 png_error(png_ptr, "Invalid attempt to read row data"); in png_read_row()
738 png_ptr->zstream.next_out = png_ptr->row_buf; in png_read_row()
739 png_ptr->zstream.avail_out = in png_read_row()
740 (uInt)(PNG_ROWBYTES(png_ptr->pixel_depth, in png_read_row()
741 png_ptr->iwidth) + 1); in png_read_row()
744 if (!(png_ptr->zstream.avail_in)) in png_read_row()
746 while (!png_ptr->idat_size) in png_read_row()
749 if (png_ptr->index) { in png_read_row()
750 png_opt_crc_finish(png_ptr, 0, 0); in png_read_row()
751 png_ptr->index->stream_idat_position = png_ptr->total_data_read; in png_read_row()
754 png_crc_finish(png_ptr, 0); in png_read_row()
757 png_ptr->idat_size = png_read_chunk_header(png_ptr); in png_read_row()
758 if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) in png_read_row()
759 png_error(png_ptr, "Not enough image data"); in png_read_row()
761 png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size; in png_read_row()
762 png_ptr->zstream.next_in = png_ptr->zbuf; in png_read_row()
763 if (png_ptr->zbuf_size > png_ptr->idat_size) in png_read_row()
764 png_ptr->zstream.avail_in = (uInt)png_ptr->idat_size; in png_read_row()
765 png_crc_read(png_ptr, png_ptr->zbuf, in png_read_row()
766 (png_size_t)png_ptr->zstream.avail_in); in png_read_row()
767 png_ptr->idat_size -= png_ptr->zstream.avail_in; in png_read_row()
769 ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); in png_read_row()
772 if (png_ptr->zstream.avail_out || png_ptr->zstream.avail_in || in png_read_row()
773 png_ptr->idat_size) in png_read_row()
774 png_error(png_ptr, "Extra compressed data"); in png_read_row()
775 png_ptr->mode |= PNG_AFTER_IDAT; in png_read_row()
776 png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; in png_read_row()
781 if (png_ptr->index) { in png_read_row()
782 if (png_ptr->row_number != png_ptr->height - 1) { in png_read_row()
783 png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg : in png_read_row()
788 png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg : in png_read_row()
791 } while (png_ptr->zstream.avail_out); in png_read_row()
793 png_ptr->row_info.color_type = png_ptr->color_type; in png_read_row()
794 png_ptr->row_info.width = png_ptr->iwidth; in png_read_row()
795 png_ptr->row_info.channels = png_ptr->channels; in png_read_row()
796 png_ptr->row_info.bit_depth = png_ptr->bit_depth; in png_read_row()
797 png_ptr->row_info.pixel_depth = png_ptr->pixel_depth; in png_read_row()
798 png_ptr->row_info.rowbytes = PNG_ROWBYTES(png_ptr->row_info.pixel_depth, in png_read_row()
799 png_ptr->row_info.width); in png_read_row()
801 if (png_ptr->row_buf[0]) in png_read_row()
802 png_read_filter_row(png_ptr, &(png_ptr->row_info), in png_read_row()
803 png_ptr->row_buf + 1, png_ptr->prev_row + 1, in png_read_row()
804 (int)(png_ptr->row_buf[0])); in png_read_row()
806 png_memcpy_check(png_ptr, png_ptr->prev_row, png_ptr->row_buf, in png_read_row()
807 png_ptr->rowbytes + 1); in png_read_row()
810 if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) && in png_read_row()
811 (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING)) in png_read_row()
814 png_do_read_intrapixel(&(png_ptr->row_info), png_ptr->row_buf + 1); in png_read_row()
819 if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA)) in png_read_row()
820 png_do_read_transformations(png_ptr); in png_read_row()
824 if (png_ptr->interlaced && in png_read_row()
825 (png_ptr->transformations & PNG_INTERLACE)) in png_read_row()
827 if (png_ptr->pass < 6) in png_read_row()
832 png_do_read_interlace(png_ptr); in png_read_row()
835 png_combine_row(png_ptr, dsp_row, in png_read_row()
836 png_pass_dsp_mask[png_ptr->pass]); in png_read_row()
838 png_combine_row(png_ptr, row, in png_read_row()
839 png_pass_mask[png_ptr->pass]); in png_read_row()
845 png_combine_row(png_ptr, row, 0xff); in png_read_row()
847 png_combine_row(png_ptr, dsp_row, 0xff); in png_read_row()
849 png_read_finish_row(png_ptr); in png_read_row()
851 if (png_ptr->read_row_fn != NULL) in png_read_row()
852 (*(png_ptr->read_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass); in png_read_row()
882 png_read_rows(png_structp png_ptr, png_bytepp row, in png_read_rows() argument
891 if (png_ptr == NULL) in png_read_rows()
901 png_read_row(png_ptr, rptr, dptr); in png_read_rows()
907 png_read_row(png_ptr, rptr, png_bytep_NULL); in png_read_rows()
914 png_read_row(png_ptr, png_bytep_NULL, dptr); in png_read_rows()
927 png_set_read_offset(png_structp png_ptr, in png_set_read_offset() argument
930 png_seek_data(png_ptr, idat_position); in png_set_read_offset()
931 png_ptr->idat_size = png_read_chunk_header(png_ptr); in png_set_read_offset()
935 png_seek_data(png_ptr, idat_position + IDAT_HEADER_SIZE + png_ptr->idat_size - bytes_left); in png_set_read_offset()
936 png_ptr->idat_size = bytes_left; in png_set_read_offset()
945 png_configure_decoder(png_structp png_ptr, int *row, int pass) in png_configure_decoder() argument
947 png_indexp index = png_ptr->index; in png_configure_decoder()
953 png_ptr->row_number = *row; in png_configure_decoder()
956 if (png_ptr->interlaced) in png_configure_decoder()
957 png_set_interlaced_pass(png_ptr, pass); in png_configure_decoder()
961 PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1; in png_configure_decoder()
963 inflateEnd(&png_ptr->zstream); in png_configure_decoder()
964 inflateCopy(&png_ptr->zstream, line_index->z_state); in png_configure_decoder()
967 png_set_read_offset(png_ptr, line_index->stream_idat_position, in png_configure_decoder()
969 png_memcpy_check(png_ptr, in png_configure_decoder()
970 png_ptr->prev_row, line_index->prev_row, row_byte_length); in png_configure_decoder()
971 png_ptr->zstream.avail_in = 0; in png_configure_decoder()
977 png_build_index(png_structp png_ptr) in png_build_index() argument
988 pass_number = png_set_interlace_handling(png_ptr); in png_build_index()
991 if (png_ptr == NULL) in png_build_index()
994 png_read_start_row(png_ptr); in png_build_index()
997 if (!png_ptr->interlaced) in png_build_index()
1003 rp = png_malloc(png_ptr, png_ptr->rowbytes); in png_build_index()
1005 png_indexp index = png_malloc(png_ptr, sizeof(png_index)); in png_build_index()
1006 png_ptr->index = index; in png_build_index()
1008 index->stream_idat_position = png_ptr->total_data_read - IDAT_HEADER_SIZE; in png_build_index()
1022 (png_ptr->height + index->step[p] - 1) / index->step[p]; in png_build_index()
1024 png_malloc(png_ptr, index->size[p] * sizeof(png_line_indexp)); in png_build_index()
1030 PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1; in png_build_index()
1035 png_line_indexp line_index = png_malloc(png_ptr, sizeof(png_line_index)); in png_build_index()
1038 line_index->z_state = png_malloc(png_ptr, sizeof(z_stream)); in png_build_index()
1039 inflateCopy(line_index->z_state, &png_ptr->zstream); in png_build_index()
1040 line_index->prev_row = png_malloc(png_ptr, row_byte_length); in png_build_index()
1041 png_memcpy_check(png_ptr, in png_build_index()
1042 line_index->prev_row, png_ptr->prev_row, row_byte_length); in png_build_index()
1044 line_index->bytes_left_in_idat = png_ptr->idat_size + png_ptr->zstream.avail_in; in png_build_index()
1048 i * index->step[p] + j < png_ptr->height; j++) in png_build_index()
1050 png_read_row(png_ptr, rp, png_bytep_NULL); in png_build_index()
1054 png_free(png_ptr, rp); in png_build_index()
1072 png_read_image(png_structp png_ptr, png_bytepp image) in png_read_image() argument
1080 if (png_ptr == NULL) in png_read_image()
1084 pass = png_set_interlace_handling(png_ptr); in png_read_image()
1086 if (png_ptr->interlaced) in png_read_image()
1087 png_error(png_ptr, in png_read_image()
1093 image_height=png_ptr->height; in png_read_image()
1094 png_ptr->num_rows = image_height; /* Make sure this is set correctly */ in png_read_image()
1101 png_read_row(png_ptr, *rp, png_bytep_NULL); in png_read_image()
1114 png_read_end(png_structp png_ptr, png_infop info_ptr) in png_read_end() argument
1118 if (png_ptr == NULL) in png_read_end()
1120 png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */ in png_read_end()
1181 png_uint_32 length = png_read_chunk_header(png_ptr); in png_read_end()
1182 PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; in png_read_end()
1185 png_handle_IHDR(png_ptr, info_ptr, length); in png_read_end()
1187 png_handle_IEND(png_ptr, info_ptr, length); in png_read_end()
1189 else if (png_handle_as_unknown(png_ptr, chunk_name)) in png_read_end()
1193 if ((length > 0) || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT)) in png_read_end()
1194 png_error(png_ptr, "Too many IDAT's found"); in png_read_end()
1196 png_handle_unknown(png_ptr, info_ptr, length); in png_read_end()
1198 png_ptr->mode |= PNG_HAVE_PLTE; in png_read_end()
1206 if ((length > 0) || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT)) in png_read_end()
1207 png_error(png_ptr, "Too many IDAT's found"); in png_read_end()
1208 png_crc_finish(png_ptr, length); in png_read_end()
1211 png_handle_PLTE(png_ptr, info_ptr, length); in png_read_end()
1214 png_handle_bKGD(png_ptr, info_ptr, length); in png_read_end()
1218 png_handle_cHRM(png_ptr, info_ptr, length); in png_read_end()
1222 png_handle_gAMA(png_ptr, info_ptr, length); in png_read_end()
1226 png_handle_hIST(png_ptr, info_ptr, length); in png_read_end()
1230 png_handle_oFFs(png_ptr, info_ptr, length); in png_read_end()
1234 png_handle_pCAL(png_ptr, info_ptr, length); in png_read_end()
1238 png_handle_sCAL(png_ptr, info_ptr, length); in png_read_end()
1242 png_handle_pHYs(png_ptr, info_ptr, length); in png_read_end()
1246 png_handle_sBIT(png_ptr, info_ptr, length); in png_read_end()
1250 png_handle_sRGB(png_ptr, info_ptr, length); in png_read_end()
1254 png_handle_iCCP(png_ptr, info_ptr, length); in png_read_end()
1258 png_handle_sPLT(png_ptr, info_ptr, length); in png_read_end()
1262 png_handle_tEXt(png_ptr, info_ptr, length); in png_read_end()
1266 png_handle_tIME(png_ptr, info_ptr, length); in png_read_end()
1270 png_handle_tRNS(png_ptr, info_ptr, length); in png_read_end()
1274 png_handle_zTXt(png_ptr, info_ptr, length); in png_read_end()
1278 png_handle_iTXt(png_ptr, info_ptr, length); in png_read_end()
1281 png_handle_unknown(png_ptr, info_ptr, length); in png_read_end()
1282 } while (!(png_ptr->mode & PNG_HAVE_IEND)); in png_read_end()
1291 png_structp png_ptr = NULL; in png_destroy_read_struct() local
1301 png_ptr = *png_ptr_ptr; in png_destroy_read_struct()
1302 if (png_ptr == NULL) in png_destroy_read_struct()
1306 free_fn = png_ptr->free_fn; in png_destroy_read_struct()
1307 mem_ptr = png_ptr->mem_ptr; in png_destroy_read_struct()
1316 png_read_destroy(png_ptr, info_ptr, end_info_ptr); in png_destroy_read_struct()
1321 png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, -1); in png_destroy_read_struct()
1336 png_free_data(png_ptr, end_info_ptr, PNG_FREE_TEXT, -1); in png_destroy_read_struct()
1347 if (png_ptr != NULL) in png_destroy_read_struct()
1350 if (png_ptr->index) { in png_destroy_read_struct()
1352 png_indexp index = png_ptr->index; in png_destroy_read_struct()
1356 png_free(png_ptr, index->pass_line_index[p][i]->z_state); in png_destroy_read_struct()
1357 png_free(png_ptr, index->pass_line_index[p][i]->prev_row); in png_destroy_read_struct()
1358 png_free(png_ptr, index->pass_line_index[p][i]); in png_destroy_read_struct()
1361 png_free(png_ptr, index->pass_line_index[p]); in png_destroy_read_struct()
1364 png_free(png_ptr, index); in png_destroy_read_struct()
1368 png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn, in png_destroy_read_struct()
1371 png_destroy_struct((png_voidp)png_ptr); in png_destroy_read_struct()
1379 png_read_destroy(png_structp png_ptr, png_infop info_ptr, in png_read_destroy() argument
1395 png_info_destroy(png_ptr, info_ptr); in png_read_destroy()
1398 png_info_destroy(png_ptr, end_info_ptr); in png_read_destroy()
1400 png_free(png_ptr, png_ptr->zbuf); in png_read_destroy()
1401 png_free(png_ptr, png_ptr->big_row_buf); in png_read_destroy()
1402 png_free(png_ptr, png_ptr->prev_row); in png_read_destroy()
1403 png_free(png_ptr, png_ptr->chunkdata); in png_read_destroy()
1405 png_free(png_ptr, png_ptr->palette_lookup); in png_read_destroy()
1406 png_free(png_ptr, png_ptr->dither_index); in png_read_destroy()
1409 png_free(png_ptr, png_ptr->gamma_table); in png_read_destroy()
1412 png_free(png_ptr, png_ptr->gamma_from_1); in png_read_destroy()
1413 png_free(png_ptr, png_ptr->gamma_to_1); in png_read_destroy()
1416 if (png_ptr->free_me & PNG_FREE_PLTE) in png_read_destroy()
1417 png_zfree(png_ptr, png_ptr->palette); in png_read_destroy()
1418 png_ptr->free_me &= ~PNG_FREE_PLTE; in png_read_destroy()
1420 if (png_ptr->flags & PNG_FLAG_FREE_PLTE) in png_read_destroy()
1421 png_zfree(png_ptr, png_ptr->palette); in png_read_destroy()
1422 png_ptr->flags &= ~PNG_FLAG_FREE_PLTE; in png_read_destroy()
1427 if (png_ptr->free_me & PNG_FREE_TRNS) in png_read_destroy()
1428 png_free(png_ptr, png_ptr->trans); in png_read_destroy()
1429 png_ptr->free_me &= ~PNG_FREE_TRNS; in png_read_destroy()
1431 if (png_ptr->flags & PNG_FLAG_FREE_TRNS) in png_read_destroy()
1432 png_free(png_ptr, png_ptr->trans); in png_read_destroy()
1433 png_ptr->flags &= ~PNG_FLAG_FREE_TRNS; in png_read_destroy()
1438 if (png_ptr->free_me & PNG_FREE_HIST) in png_read_destroy()
1439 png_free(png_ptr, png_ptr->hist); in png_read_destroy()
1440 png_ptr->free_me &= ~PNG_FREE_HIST; in png_read_destroy()
1442 if (png_ptr->flags & PNG_FLAG_FREE_HIST) in png_read_destroy()
1443 png_free(png_ptr, png_ptr->hist); in png_read_destroy()
1444 png_ptr->flags &= ~PNG_FLAG_FREE_HIST; in png_read_destroy()
1448 if (png_ptr->gamma_16_table != NULL) in png_read_destroy()
1451 int istop = (1 << (8 - png_ptr->gamma_shift)); in png_read_destroy()
1454 png_free(png_ptr, png_ptr->gamma_16_table[i]); in png_read_destroy()
1456 png_free(png_ptr, png_ptr->gamma_16_table); in png_read_destroy()
1459 if (png_ptr->gamma_16_from_1 != NULL) in png_read_destroy()
1462 int istop = (1 << (8 - png_ptr->gamma_shift)); in png_read_destroy()
1465 png_free(png_ptr, png_ptr->gamma_16_from_1[i]); in png_read_destroy()
1467 png_free(png_ptr, png_ptr->gamma_16_from_1); in png_read_destroy()
1469 if (png_ptr->gamma_16_to_1 != NULL) in png_read_destroy()
1472 int istop = (1 << (8 - png_ptr->gamma_shift)); in png_read_destroy()
1475 png_free(png_ptr, png_ptr->gamma_16_to_1[i]); in png_read_destroy()
1477 png_free(png_ptr, png_ptr->gamma_16_to_1); in png_read_destroy()
1482 png_free(png_ptr, png_ptr->time_buffer); in png_read_destroy()
1485 inflateEnd(&png_ptr->zstream); in png_read_destroy()
1487 png_free(png_ptr, png_ptr->save_buffer); in png_read_destroy()
1492 png_free(png_ptr, png_ptr->current_text); in png_read_destroy()
1500 png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf)); in png_read_destroy()
1503 error_fn = png_ptr->error_fn; in png_read_destroy()
1504 warning_fn = png_ptr->warning_fn; in png_read_destroy()
1505 error_ptr = png_ptr->error_ptr; in png_read_destroy()
1507 free_fn = png_ptr->free_fn; in png_read_destroy()
1510 png_memset(png_ptr, 0, png_sizeof(png_struct)); in png_read_destroy()
1512 png_ptr->error_fn = error_fn; in png_read_destroy()
1513 png_ptr->warning_fn = warning_fn; in png_read_destroy()
1514 png_ptr->error_ptr = error_ptr; in png_read_destroy()
1516 png_ptr->free_fn = free_fn; in png_read_destroy()
1520 png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf)); in png_read_destroy()
1526 png_set_read_status_fn(png_structp png_ptr, png_read_status_ptr read_row_fn) in png_set_read_status_fn() argument
1528 if (png_ptr == NULL) in png_set_read_status_fn()
1530 png_ptr->read_row_fn = read_row_fn; in png_set_read_status_fn()
1537 png_read_png(png_structp png_ptr, png_infop info_ptr, in png_read_png() argument
1543 if (png_ptr == NULL) in png_read_png()
1549 png_set_invert_alpha(png_ptr); in png_read_png()
1555 png_read_info(png_ptr, info_ptr); in png_read_png()
1557 png_error(png_ptr, "Image is too high to process with png_read_png()"); in png_read_png()
1565 png_set_strip_16(png_ptr); in png_read_png()
1573 png_set_strip_alpha(png_ptr); in png_read_png()
1581 png_set_packing(png_ptr); in png_read_png()
1589 png_set_packswap(png_ptr); in png_read_png()
1599 if ((png_ptr->bit_depth < 8) || in png_read_png()
1600 (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) || in png_read_png()
1601 (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) in png_read_png()
1602 png_set_expand(png_ptr); in png_read_png()
1612 png_set_invert_mono(png_ptr); in png_read_png()
1621 && png_get_valid(png_ptr, info_ptr, PNG_INFO_sBIT)) in png_read_png()
1625 png_get_sBIT(png_ptr, info_ptr, &sig_bit); in png_read_png()
1626 png_set_shift(png_ptr, sig_bit); in png_read_png()
1634 png_set_bgr(png_ptr); in png_read_png()
1641 png_set_swap_alpha(png_ptr); in png_read_png()
1648 png_set_swap(png_ptr); in png_read_png()
1656 png_set_invert_alpha(png_ptr); in png_read_png()
1664 png_set_gray_to_rgb(png_ptr); in png_read_png()
1673 png_read_update_info(png_ptr, info_ptr); in png_read_png()
1678 png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0); in png_read_png()
1682 info_ptr->row_pointers = (png_bytepp)png_malloc(png_ptr, in png_read_png()
1692 info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr, in png_read_png()
1693 png_get_rowbytes(png_ptr, info_ptr)); in png_read_png()
1696 png_read_image(png_ptr, info_ptr->row_pointers); in png_read_png()
1700 png_read_end(png_ptr, info_ptr); in png_read_png()