Changeset 43 for vendor/libpng/pngtest.c
- Timestamp:
- 02/15/10 11:37:15 (2 years ago)
- Files:
-
- 1 modified
-
vendor/libpng/pngtest.c (modified) (59 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vendor/libpng/pngtest.c
r11 r43 2 2 /* pngtest.c - a simple test program to test libpng 3 3 * 4 * Last changed in libpng 1.2. 37 [June 4, 2009]4 * Last changed in libpng 1.2.41 [December 3, 2009] 5 5 * Copyright (c) 1998-2009 Glenn Randers-Pehrson 6 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) … … 32 32 */ 33 33 34 #define PNG_PEDANTIC_WARNINGS 34 35 #include "png.h" 35 36 36 #if defined(_WIN32_WCE)37 #ifdef _WIN32_WCE 37 38 # if _WIN32_WCE < 211 38 39 __error__ (f|w)printf functions are not supported on old WindowsCE.; … … 55 56 #endif 56 57 57 #if defined(PNG_NO_STDIO)58 # if defined(_WIN32_WCE)58 #ifndef PNG_STDIO_SUPPORTED 59 # ifdef _WIN32_WCE 59 60 typedef HANDLE png_FILE_p; 60 61 # else … … 76 77 */ 77 78 78 #if def PNG_NO_FLOATING_POINT_SUPPORTED79 #ifndef PNG_FLOATING_POINT_SUPPORTED 79 80 #undef PNGTEST_TIMING 80 81 #endif … … 85 86 #endif 86 87 87 #if defined(PNG_TIME_RFC1123_SUPPORTED)88 #ifdef PNG_TIME_RFC1123_SUPPORTED 88 89 #define PNG_tIME_STRING_LENGTH 29 89 90 static int tIME_chunk_present = 0; … … 163 164 164 165 165 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)166 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 166 167 /* Example of using user transform callback (we don't transform anything, 167 168 * but merely examine the row filters. We set this to 256 rather than … … 185 186 #endif 186 187 187 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)188 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 188 189 /* Example of using user transform callback (we don't transform anything, 189 190 * but merely count the zero samples) … … 298 299 static int wrote_question = 0; 299 300 300 #if defined(PNG_NO_STDIO)301 #ifndef PNG_STDIO_SUPPORTED 301 302 /* START of code to validate stdio-free compilation */ 302 303 /* These copies of the default read/write functions come from pngrio.c and … … 312 313 pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) 313 314 { 314 png_size_t check; 315 png_size_t check = 0; 316 png_voidp io_ptr; 315 317 316 318 /* fread() returns 0 on error, so it is OK to store this in a png_size_t 317 319 * instead of an int, which is what fread() actually returns. 318 320 */ 319 READFILE((png_FILE_p)png_ptr->io_ptr, data, length, check); 321 io_ptr = png_get_io_ptr(png_ptr); 322 if (io_ptr != NULL) 323 { 324 READFILE((png_FILE_p)io_ptr, data, length, check); 325 } 320 326 321 327 if (check != length) … … 372 378 #endif /* USE_FAR_KEYWORD */ 373 379 374 #if defined(PNG_WRITE_FLUSH_SUPPORTED)380 #ifdef PNG_WRITE_FLUSH_SUPPORTED 375 381 static void 376 382 pngtest_flush(png_structp png_ptr) … … 457 463 { 458 464 PNG_CONST char *name = "UNKNOWN (ERROR!)"; 459 if (png_ptr != NULL && png_ptr->error_ptr != NULL) 460 name = png_ptr->error_ptr; 461 fprintf(STDERR, "%s: libpng warning: %s\n", name, message); 465 char *test; 466 test = png_get_error_ptr(png_ptr); 467 if (test == NULL) 468 fprintf(STDERR, "%s: libpng warning: %s\n", name, message); 469 else 470 fprintf(STDERR, "%s: libpng warning: %s\n", test, message); 462 471 } 463 472 … … 475 484 */ 476 485 } 477 #endif /* PNG_NO_STDIO*/486 #endif /* !PNG_STDIO_SUPPORTED */ 478 487 /* END of code to validate stdio-free compilation */ 479 488 … … 608 617 609 618 /* Demonstration of user chunk support of the sTER and vpAg chunks */ 610 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)619 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 611 620 612 621 /* (sTER is a public chunk not yet known by libpng. vpAg is a private … … 702 711 #endif 703 712 704 #if defined(_WIN32_WCE)713 #ifdef _WIN32_WCE 705 714 TCHAR path[MAX_PATH]; 706 715 #endif … … 709 718 row_buf = NULL; 710 719 711 #if defined(_WIN32_WCE)720 #ifdef _WIN32_WCE 712 721 MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH); 713 722 if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) … … 720 729 } 721 730 722 #if defined(_WIN32_WCE)731 #ifdef _WIN32_WCE 723 732 MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH); 724 733 if ((fpout = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL)) == INVALID_HANDLE_VALUE) … … 743 752 png_error_ptr_NULL, png_error_ptr_NULL); 744 753 #endif 745 #if defined(PNG_NO_STDIO)754 #ifndef PNG_STDIO_SUPPORTED 746 755 png_set_error_fn(read_ptr, (png_voidp)inname, pngtest_error, 747 756 pngtest_warning); 748 757 #endif 749 758 750 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)759 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 751 760 user_chunk_data[0] = 0; 752 761 user_chunk_data[1] = 0; … … 768 777 png_error_ptr_NULL, png_error_ptr_NULL); 769 778 #endif 770 #if defined(PNG_NO_STDIO)779 #ifndef PNG_STDIO_SUPPORTED 771 780 png_set_error_fn(write_ptr, (png_voidp)inname, pngtest_error, 772 781 pngtest_warning); … … 830 839 831 840 png_debug(0, "Initializing input and output streams"); 832 #if !defined(PNG_NO_STDIO)841 #ifdef PNG_STDIO_SUPPORTED 833 842 png_init_io(read_ptr, fpin); 834 843 # ifdef PNG_WRITE_SUPPORTED … … 839 848 # ifdef PNG_WRITE_SUPPORTED 840 849 png_set_write_fn(write_ptr, (png_voidp)fpout, pngtest_write_data, 841 # if defined(PNG_WRITE_FLUSH_SUPPORTED)850 # ifdef PNG_WRITE_FLUSH_SUPPORTED 842 851 pngtest_flush); 843 852 # else … … 861 870 } 862 871 863 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)872 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 864 873 { 865 874 int i; … … 869 878 } 870 879 #endif 871 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)880 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 872 881 zero_samples = 0; 873 882 png_set_write_user_transform_fn(write_ptr, count_zero_samples); 874 883 #endif 875 884 876 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)885 #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 877 886 # ifndef PNG_HANDLE_CHUNK_ALWAYS 878 887 # define PNG_HANDLE_CHUNK_ALWAYS 3 … … 881 890 png_bytep_NULL, 0); 882 891 #endif 883 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)892 #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 884 893 # ifndef PNG_HANDLE_CHUNK_IF_SAFE 885 894 # define PNG_HANDLE_CHUNK_IF_SAFE 2 … … 900 909 { 901 910 png_set_IHDR(write_ptr, write_info_ptr, width, height, bit_depth, 902 #if defined(PNG_WRITE_INTERLACING_SUPPORTED)911 #ifdef PNG_WRITE_INTERLACING_SUPPORTED 903 912 color_type, interlace_type, compression_type, filter_type); 904 913 #else … … 907 916 } 908 917 } 909 #if defined(PNG_FIXED_POINT_SUPPORTED)910 #if defined(PNG_cHRM_SUPPORTED)918 #ifdef PNG_FIXED_POINT_SUPPORTED 919 #ifdef PNG_cHRM_SUPPORTED 911 920 { 912 921 png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x, … … 920 929 } 921 930 #endif 922 #if defined(PNG_gAMA_SUPPORTED)931 #ifdef PNG_gAMA_SUPPORTED 923 932 { 924 933 png_fixed_point gamma; … … 929 938 #endif 930 939 #else /* Use floating point versions */ 931 #if defined(PNG_FLOATING_POINT_SUPPORTED)932 #if defined(PNG_cHRM_SUPPORTED)940 #ifdef PNG_FLOATING_POINT_SUPPORTED 941 #ifdef PNG_cHRM_SUPPORTED 933 942 { 934 943 double white_x, white_y, red_x, red_y, green_x, green_y, blue_x, … … 942 951 } 943 952 #endif 944 #if defined(PNG_gAMA_SUPPORTED)953 #ifdef PNG_gAMA_SUPPORTED 945 954 { 946 955 double gamma; … … 952 961 #endif /* Floating point */ 953 962 #endif /* Fixed point */ 954 #if defined(PNG_iCCP_SUPPORTED)963 #ifdef PNG_iCCP_SUPPORTED 955 964 { 956 965 png_charp name; … … 967 976 } 968 977 #endif 969 #if defined(PNG_sRGB_SUPPORTED)978 #ifdef PNG_sRGB_SUPPORTED 970 979 { 971 980 int intent; … … 982 991 png_set_PLTE(write_ptr, write_info_ptr, palette, num_palette); 983 992 } 984 #if defined(PNG_bKGD_SUPPORTED)993 #ifdef PNG_bKGD_SUPPORTED 985 994 { 986 995 png_color_16p background; … … 992 1001 } 993 1002 #endif 994 #if defined(PNG_hIST_SUPPORTED)1003 #ifdef PNG_hIST_SUPPORTED 995 1004 { 996 1005 png_uint_16p hist; … … 1000 1009 } 1001 1010 #endif 1002 #if defined(PNG_oFFs_SUPPORTED)1011 #ifdef PNG_oFFs_SUPPORTED 1003 1012 { 1004 1013 png_int_32 offset_x, offset_y; … … 1012 1021 } 1013 1022 #endif 1014 #if defined(PNG_pCAL_SUPPORTED)1023 #ifdef PNG_pCAL_SUPPORTED 1015 1024 { 1016 1025 png_charp purpose, units; … … 1027 1036 } 1028 1037 #endif 1029 #if defined(PNG_pHYs_SUPPORTED)1038 #ifdef PNG_pHYs_SUPPORTED 1030 1039 { 1031 1040 png_uint_32 res_x, res_y; … … 1036 1045 } 1037 1046 #endif 1038 #if defined(PNG_sBIT_SUPPORTED)1047 #ifdef PNG_sBIT_SUPPORTED 1039 1048 { 1040 1049 png_color_8p sig_bit; … … 1044 1053 } 1045 1054 #endif 1046 #if defined(PNG_sCAL_SUPPORTED)1055 #ifdef PNG_sCAL_SUPPORTED 1047 1056 #ifdef PNG_FLOATING_POINT_SUPPORTED 1048 1057 { … … 1071 1080 #endif 1072 1081 #endif 1073 #if defined(PNG_TEXT_SUPPORTED)1082 #ifdef PNG_TEXT_SUPPORTED 1074 1083 { 1075 1084 png_textp text_ptr; … … 1083 1092 } 1084 1093 #endif 1085 #if defined(PNG_tIME_SUPPORTED)1094 #ifdef PNG_tIME_SUPPORTED 1086 1095 { 1087 1096 png_timep mod_time; … … 1090 1099 { 1091 1100 png_set_tIME(write_ptr, write_info_ptr, mod_time); 1092 #if defined(PNG_TIME_RFC1123_SUPPORTED)1101 #ifdef PNG_TIME_RFC1123_SUPPORTED 1093 1102 /* We have to use png_memcpy instead of "=" because the string 1094 1103 * pointed to by png_convert_to_rfc1123() gets free'ed before … … 1104 1113 } 1105 1114 #endif 1106 #if defined(PNG_tRNS_SUPPORTED)1115 #ifdef PNG_tRNS_SUPPORTED 1107 1116 { 1108 1117 png_bytep trans; … … 1113 1122 &trans_values)) 1114 1123 { 1115 int sample_max = (1 << read_info_ptr->bit_depth);1124 int sample_max = (1 << bit_depth); 1116 1125 /* libpng doesn't reject a tRNS chunk with out-of-range samples */ 1117 if (!(( read_info_ptr->color_type == PNG_COLOR_TYPE_GRAY &&1126 if (!((color_type == PNG_COLOR_TYPE_GRAY && 1118 1127 (int)trans_values->gray > sample_max) || 1119 ( read_info_ptr->color_type == PNG_COLOR_TYPE_RGB &&1128 (color_type == PNG_COLOR_TYPE_RGB && 1120 1129 ((int)trans_values->red > sample_max || 1121 1130 (int)trans_values->green > sample_max || … … 1126 1135 } 1127 1136 #endif 1128 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)1137 #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 1129 1138 { 1130 1139 png_unknown_chunkp unknowns; … … 1155 1164 png_write_info(write_ptr, write_info_ptr); 1156 1165 1157 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)1166 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 1158 1167 if (user_chunk_data[0] != 0) 1159 1168 { … … 1249 1258 } 1250 1259 1251 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)1260 #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 1252 1261 png_free_data(read_ptr, read_info_ptr, PNG_FREE_UNKN, -1); 1253 1262 #endif 1254 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)1263 #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 1255 1264 png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1); 1256 1265 #endif … … 1259 1268 1260 1269 png_read_end(read_ptr, end_info_ptr); 1261 #if defined(PNG_TEXT_SUPPORTED)1270 #ifdef PNG_TEXT_SUPPORTED 1262 1271 { 1263 1272 png_textp text_ptr; … … 1271 1280 } 1272 1281 #endif 1273 #if defined(PNG_tIME_SUPPORTED)1282 #ifdef PNG_tIME_SUPPORTED 1274 1283 { 1275 1284 png_timep mod_time; … … 1278 1287 { 1279 1288 png_set_tIME(write_ptr, write_end_info_ptr, mod_time); 1280 #if defined(PNG_TIME_RFC1123_SUPPORTED)1289 #ifdef PNG_TIME_RFC1123_SUPPORTED 1281 1290 /* We have to use png_memcpy instead of "=" because the string 1282 1291 pointed to by png_convert_to_rfc1123() gets free'ed before … … 1291 1300 } 1292 1301 #endif 1293 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)1302 #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 1294 1303 { 1295 1304 png_unknown_chunkp unknowns; … … 1347 1356 1348 1357 png_debug(0, "Opening files for comparison"); 1349 #if defined(_WIN32_WCE)1358 #ifdef _WIN32_WCE 1350 1359 MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH); 1351 1360 if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) … … 1358 1367 } 1359 1368 1360 #if defined(_WIN32_WCE)1369 #ifdef _WIN32_WCE 1361 1370 MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH); 1362 1371 if ((fpout = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) … … 1528 1537 for (i=2; i<argc; ++i) 1529 1538 { 1530 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)1539 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1531 1540 int k; 1532 1541 #endif … … 1536 1545 if (kerror == 0) 1537 1546 { 1538 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)1547 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 1539 1548 fprintf(STDERR, "\n PASS (%lu zero samples)\n", 1540 1549 (unsigned long)zero_samples); … … 1542 1551 fprintf(STDERR, " PASS\n"); 1543 1552 #endif 1544 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)1553 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1545 1554 for (k = 0; k<256; k++) 1546 1555 if (filters_used[k]) … … 1548 1557 k, (unsigned long)filters_used[k]); 1549 1558 #endif 1550 #if defined(PNG_TIME_RFC1123_SUPPORTED)1559 #ifdef PNG_TIME_RFC1123_SUPPORTED 1551 1560 if (tIME_chunk_present != 0) 1552 1561 fprintf(STDERR, " tIME = %s\n", tIME_string); … … 1608 1617 if (verbose == 1 || i == 2) 1609 1618 { 1610 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)1619 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1611 1620 int k; 1612 1621 #endif 1613 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)1622 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 1614 1623 fprintf(STDERR, "\n PASS (%lu zero samples)\n", 1615 1624 (unsigned long)zero_samples); … … 1617 1626 fprintf(STDERR, " PASS\n"); 1618 1627 #endif 1619 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)1628 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1620 1629 for (k = 0; k<256; k++) 1621 1630 if (filters_used[k]) … … 1624 1633 (unsigned long)filters_used[k]); 1625 1634 #endif 1626 #if defined(PNG_TIME_RFC1123_SUPPORTED)1635 #ifdef PNG_TIME_RFC1123_SUPPORTED 1627 1636 if (tIME_chunk_present != 0) 1628 1637 fprintf(STDERR, " tIME = %s\n", tIME_string); … … 1690 1699 1691 1700 /* Generate a compiler error if there is an old png.h in the search path. */ 1692 typedef version_1_2_4 0 your_png_h_is_not_version_1_2_40;1701 typedef version_1_2_42 your_png_h_is_not_version_1_2_42;
