16#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
19#define PNG_READ_SIG_MODE 0
20#define PNG_READ_CHUNK_MODE 1
21#define PNG_READ_IDAT_MODE 2
22#define PNG_READ_tEXt_MODE 4
23#define PNG_READ_zTXt_MODE 5
24#define PNG_READ_DONE_MODE 6
25#define PNG_READ_iTXt_MODE 7
26#define PNG_ERROR_MODE 8
28#define PNG_PUSH_SAVE_BUFFER_IF_FULL \
29if (png_ptr->push_length + 4 > png_ptr->buffer_size) \
30 { png_push_save_buffer(png_ptr); return; }
31#define PNG_PUSH_SAVE_BUFFER_IF_LT(N) \
32if (png_ptr->buffer_size < N) \
33 { png_push_save_buffer(png_ptr); return; }
63 size_t remaining =
png_ptr->buffer_size;
69 if (
png_ptr->save_buffer_size < remaining)
70 return remaining -
png_ptr->save_buffer_size;
86"png_process_data_skip is not implemented in any current version of libpng");
136 size_t num_checked =
png_ptr->sig_bytes;
137 size_t num_to_check = 8 - num_checked;
139 if (
png_ptr->buffer_size < num_to_check)
141 num_to_check =
png_ptr->buffer_size;
146 png_ptr->sig_bytes = (png_byte)(
png_ptr->sig_bytes + num_to_check);
150 if (num_checked < 4 &&
170#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
182 png_byte chunk_length[4];
183 png_byte chunk_tag[4];
196 chunk_name =
png_ptr->chunk_name;
229 if (
png_ptr->push_length != 13)
245#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
274#ifdef PNG_READ_gAMA_SUPPORTED
282#ifdef PNG_READ_sBIT_SUPPORTED
290#ifdef PNG_READ_cHRM_SUPPORTED
298#ifdef PNG_READ_sRGB_SUPPORTED
306#ifdef PNG_READ_iCCP_SUPPORTED
314#ifdef PNG_READ_sPLT_SUPPORTED
322#ifdef PNG_READ_tRNS_SUPPORTED
330#ifdef PNG_READ_bKGD_SUPPORTED
338#ifdef PNG_READ_hIST_SUPPORTED
346#ifdef PNG_READ_pHYs_SUPPORTED
354#ifdef PNG_READ_oFFs_SUPPORTED
362#ifdef PNG_READ_pCAL_SUPPORTED
370#ifdef PNG_READ_sCAL_SUPPORTED
378#ifdef PNG_READ_tIME_SUPPORTED
386#ifdef PNG_READ_tEXt_SUPPORTED
394#ifdef PNG_READ_zTXt_SUPPORTED
402#ifdef PNG_READ_iTXt_SUPPORTED
429 if (
png_ptr->save_buffer_size != 0)
437 save_size =
png_ptr->save_buffer_size;
442 png_ptr->buffer_size -= save_size;
443 png_ptr->save_buffer_size -= save_size;
444 png_ptr->save_buffer_ptr += save_size;
454 save_size =
png_ptr->current_buffer_size;
457 png_ptr->buffer_size -= save_size;
458 png_ptr->current_buffer_size -= save_size;
459 png_ptr->current_buffer_ptr += save_size;
466 if (
png_ptr->save_buffer_size != 0)
474 istop =
png_ptr->save_buffer_size;
476 i < istop;
i++,
sp++,
dp++)
489 (
png_ptr->current_buffer_size + 256))
494 new_max =
png_ptr->save_buffer_size +
png_ptr->current_buffer_size + 256;
495 old_buffer =
png_ptr->save_buffer;
507 else if (
png_ptr->save_buffer_size)
510 png_ptr->save_buffer_max = new_max;
512 if (
png_ptr->current_buffer_size)
517 png_ptr->current_buffer_size = 0;
525 size_t buffer_length)
527 png_ptr->current_buffer = buffer;
528 png_ptr->current_buffer_size = buffer_length;
538 png_byte chunk_length[4];
539 png_byte chunk_tag[4];
565 size_t save_size =
png_ptr->save_buffer_size;
574 if (idat_size < save_size)
575 save_size = (size_t)idat_size;
584 png_ptr->idat_size -= idat_size;
585 png_ptr->buffer_size -= save_size;
586 png_ptr->save_buffer_size -= save_size;
587 png_ptr->save_buffer_ptr += save_size;
592 size_t save_size =
png_ptr->current_buffer_size;
600 if (idat_size < save_size)
601 save_size = (size_t)idat_size;
610 png_ptr->idat_size -= idat_size;
611 png_ptr->buffer_size -= save_size;
612 png_ptr->current_buffer_size -= save_size;
613 png_ptr->current_buffer_ptr += save_size;
628 size_t buffer_length)
631 if (!(buffer_length > 0) || buffer ==
NULL)
638 png_ptr->zstream.next_in = buffer;
645 while (
png_ptr->zstream.avail_in > 0 &&
655 if (!(
png_ptr->zstream.avail_out > 0))
721 if (
png_ptr->zstream.avail_out == 0)
734 if (
png_ptr->zstream.avail_in > 0)
767#ifdef PNG_READ_TRANSFORMS_SUPPORTED
768 if (
png_ptr->transformations != 0)
773 if (
png_ptr->transformed_pixel_depth == 0)
784#ifdef PNG_READ_INTERLACING_SUPPORTED
786 if (
png_ptr->interlaced != 0 &&
971#ifdef PNG_READ_INTERLACING_SUPPORTED
975 static const png_byte png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
978 static const png_byte png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
981 static const png_byte png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
984 static const png_byte png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
996#ifdef PNG_READ_INTERLACING_SUPPORTED
1017 png_pass_inc[
png_ptr->pass] - 1 -
1018 png_pass_start[
png_ptr->pass]) /
1025 png_pass_yinc[
png_ptr->pass] - 1 -
1026 png_pass_ystart[
png_ptr->pass]) /
1056#ifdef PNG_READ_INTERLACING_SUPPORTED
1068 if (new_row !=
NULL)
1075 png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
1076 png_progressive_end_ptr end_fn)
int dp
Definition Spc_Cpu.h:149
uint8_t sp
Definition Spc_Cpu.h:145
register unsigned i
Definition inflate.c:1575
#define png_error(s1, s2)
#define PNG_ROWBYTES(pixel_bits, width)
#define PNG_HAVE_CHUNK_HEADER
#define PNG_READ_SIG_MODE
#define PNG_INFLATE(pp, flush)
#define PNG_READ_IDAT_MODE
#define PNG_HAVE_CHUNK_AFTER_IDAT
#define PNG_CHUNK_FROM_STRING(s)
#define PNG_FILTER_VALUE_LAST
#define PNG_FLAG_ZSTREAM_ENDED
#define PNG_READ_DONE_MODE
#define PNG_READ_CHUNK_MODE
#define PNG_COLOR_TYPE_PALETTE
#define PNG_PUSH_SAVE_BUFFER_IF_FULL
#define PNG_FILTER_VALUE_NONE
#define PNG_HANDLE_CHUNK_AS_DEFAULT
png_uint_32 length
Definition png.c:2247
void png_reset_crc(png_structrp png_ptr)
Definition png.c:127
int PNGAPI png_sig_cmp(png_const_bytep sig, size_t start, size_t num_to_check)
Definition png.c:74
int png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name)
Definition png.c:961
void png_calculate_crc(png_structrp png_ptr, png_const_bytep ptr, size_t length)
Definition png.c:139
png_struct * png_structp
Definition png.h:440
struct png_row_info_struct png_row_info
png_structrp png_ptr
Definition png.h:1082
const png_struct *PNG_RESTRICT png_const_structrp
Definition png.h:469
png_info *PNG_RESTRICT png_inforp
Definition png.h:470
png_uint_32
Definition png.h:1938
png_struct *PNG_RESTRICT png_structrp
Definition png.h:468
png_const_structrp png_const_inforp info_ptr
Definition png.h:1939
const png_byte * png_const_bytep
Definition pngconf.h:580
png_byte * png_bytep
Definition pngconf.h:579
void * png_voidp
Definition pngconf.h:577
void PNGAPI png_benign_error(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:362
void png_app_warning(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:392
void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
Definition pngerror.c:216
void PNGAPI png_free(png_const_structrp png_ptr, png_voidp ptr)
Definition pngmem.c:232
void png_process_IDAT_data(png_structrp png_ptr, png_bytep buffer, size_t buffer_length)
Definition pngpread.c:627
png_uint_32 PNGAPI png_process_data_skip(png_structrp png_ptr)
Definition pngpread.c:78
size_t PNGAPI png_process_data_pause(png_structrp png_ptr, int save)
Definition pngpread.c:51
void PNGAPI png_progressive_combine_row(png_const_structrp png_ptr, png_bytep old_row, png_const_bytep new_row)
Definition pngpread.c:1058
png_voidp PNGAPI png_get_progressive_ptr(png_const_structrp png_ptr)
Definition pngpread.c:1089
void png_read_push_finish_row(png_structrp png_ptr)
Definition pngpread.c:969
void png_push_have_row(png_structrp png_ptr, png_bytep row)
Definition pngpread.c:1049
void png_push_have_info(png_structrp png_ptr, png_inforp info_ptr)
Definition pngpread.c:1035
void png_push_save_buffer(png_structrp png_ptr)
Definition pngpread.c:464
void PNGCBAPI png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, size_t length)
Definition pngpread.c:421
void png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
Definition pngpread.c:167
void png_process_some_data(png_structrp png_ptr, png_inforp info_ptr)
Definition pngpread.c:94
void png_push_have_end(png_structrp png_ptr, png_inforp info_ptr)
Definition pngpread.c:1042
void png_push_read_IDAT(png_structrp png_ptr)
Definition pngpread.c:534
void PNGAPI png_set_progressive_read_fn(png_structrp png_ptr, png_voidp progressive_ptr, png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)
Definition pngpread.c:1074
#define PNG_PUSH_SAVE_BUFFER_IF_LT(N)
Definition juce_PNGLoader.cpp:31
void png_push_restore_buffer(png_structrp png_ptr, png_bytep buffer, size_t buffer_length)
Definition pngpread.c:524
void png_push_read_sig(png_structrp png_ptr, png_inforp info_ptr)
Definition pngpread.c:134
void png_push_process_row(png_structrp png_ptr)
Definition pngpread.c:739
void PNGAPI png_process_data(png_structrp png_ptr, png_inforp info_ptr, png_bytep buffer, size_t buffer_size)
Definition pngpread.c:36
void PNGAPI png_set_read_fn(png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn)
Definition pngrio.c:87
void png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info)
Definition pngrtran.c:2120
void png_handle_bKGD(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1921
void png_handle_IHDR(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:839
void png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1362
void png_handle_sCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2376
void png_handle_gAMA(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1120
void png_handle_sPLT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1640
void png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length, int keep)
Definition pngrutil.c:2922
void png_handle_sRGB(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1312
void png_handle_pHYs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2154
void png_handle_tEXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2515
void png_handle_tIME(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2469
void png_handle_cHRM(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1240
void png_handle_IEND(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1100
void png_handle_zTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2596
void png_check_chunk_length(png_const_structrp png_ptr, png_uint_32 length)
Definition pngrutil.c:3153
void png_handle_iTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2713
void png_handle_pCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2247
int png_crc_finish(png_structrp png_ptr, png_uint_32 skip)
Definition pngrutil.c:211
void png_crc_read(png_structrp png_ptr, png_bytep buf, png_uint_32 length)
Definition pngrutil.c:196
void png_handle_oFFs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2200
void png_handle_tRNS(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1817
void png_check_chunk_name(png_const_structrp png_ptr, png_uint_32 chunk_name)
Definition pngrutil.c:3134
png_uint_32 PNGAPI png_get_uint_31(png_const_structrp png_ptr, png_const_bytep buf)
Definition pngrutil.c:22
void png_handle_PLTE(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:913
void png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2102
void png_handle_sBIT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1158
void png_read_filter_row(png_structrp pp, png_row_infop row_info, png_bytep row, png_const_bytep prev_row, int filter)
Definition pngrutil.c:4131
void png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
Definition pngrutil.c:3200
void png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, png_uint_32 transformations)
Definition pngrutil.c:3684
png_uint_32 width
Definition png.h:755
png_byte color_type
Definition png.h:757
png_byte bit_depth
Definition png.h:758
png_byte pixel_depth
Definition png.h:760
png_byte channels
Definition png.h:759
size_t rowbytes
Definition png.h:756
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
memcpy(hh, h, RAND_HEAD_LEN)
#define uInt
Definition zconf.h:64
#define Z_STREAM_END
Definition zlib.h:172
#define Z_OK
Definition zlib.h:171
#define Z_DATA_ERROR
Definition zlib.h:176
#define Z_SYNC_FLUSH
Definition zlib.h:165