18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png.h - header file for PNG reference library 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * libpng version 1.2.46 - July 9, 2011 4c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * Copyright (c) 1998-2011 Glenn Randers-Pehrson 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 8c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * This code is released under the libpng license (See LICENSE, below) 9c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Authors and maintainers: 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger 13c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * libpng versions 0.97, January 1998, through 1.2.46 - July 9, 2011: Glenn 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * See also "Contributing Authors", below. 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Note about libpng version numbers: 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Due to various miscommunications, unforeseen code incompatibilities 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and occasional factors outside the authors' control, version numbering 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on the library has not always been consistent and straightforward. 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The following table summarizes matters since version 0.89c, which was 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the first widely used release: 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * source png.h png.h shared-lib 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * version string int version 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ------- ------ ----- ---------- 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.89c "1.0 beta 3" 0.89 89 1.0.89 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.97c 0.97 97 2.0.97 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.98 0.98 98 2.0.98 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.99 0.99 98 2.0.99 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0.99a-m 0.99 99 2.0.99 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.00 1.00 100 2.1.0 [100 should be 10000] 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.1 png.h string is 10001 2.1.0 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.1a-e identical to the 10002 from here on, the shared library 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.2 source version) 10002 is 2.V where V is the source code 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.2a-b 10003 version, except as noted. 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.3 10003 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.3a-d 10004 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.4 10004 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.4a-f 10005 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.5 (+ 2 patches) 10005 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.5a-d 10006 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.5e-r 10100 (not source compatible) 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.5s-v 10006 (not binary compatible) 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6d-f 10007 (still binary incompatible) 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6g 10007 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6h 10007 10.6h (testing xy.z so-numbering) 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6i 10007 10.6i 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.7 1 10007 (still compatible) 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.8rc1 1 10008 2.1.0.8rc1 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.8 1 10008 2.1.0.8 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.9rc1 1 10009 2.1.0.9rc1 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.9rc2 1 10009 2.1.0.9rc2 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.9 1 10009 2.1.0.9 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.10beta1 1 10010 2.1.0.10beta1 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.10rc1 1 10010 2.1.0.10rc1 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.10 1 10010 2.1.0.10 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.11rc1 1 10011 2.1.0.11rc1 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.11 1 10011 2.1.0.11 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.12rc1 2 10012 2.1.0.12rc1 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.12 2 10012 2.1.0.12 778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.0rc1 3 10200 3.1.2.0rc1 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.0 3 10200 3.1.2.0 828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.1 3 10201 3.1.2.1 858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.13 10 10013 10.so.0.1.0.13 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.2 12 10202 12.so.0.1.2.2 918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.3 12 10203 12.so.0.1.2.3 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.14 10 10014 10.so.0.1.0.14 978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.4 13 10204 12.so.0.1.2.4 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.15 10 10015 10.so.0.1.0.15 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.5 13 10205 12.so.0.1.2.5 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.16 10 10016 10.so.0.1.0.16 1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.6 13 10206 12.so.0.1.2.6 1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.17rc1 10 10017 10.so.0.1.0.17rc1 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.17 10 10017 10.so.0.1.0.17 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.7 13 10207 12.so.0.1.2.7 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.18rc1-5 10 10018 10.so.0.1.0.18rc1-5 1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.18 10 10018 10.so.0.1.0.18 1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.8 13 10208 12.so.0.1.2.8 1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.9beta4-11 13 10209 12.so.0.9[.0] 1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.9rc1 13 10209 12.so.0.9[.0] 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.9 13 10209 12.so.0.9[.0] 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.10beta1-8 13 10210 12.so.0.10[.0] 1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.10rc1-3 13 10210 12.so.0.10[.0] 1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.10 13 10210 12.so.0.10[.0] 1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.11beta1-4 13 10211 12.so.0.11[.0] 1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.19rc1-5 10 10019 10.so.0.19[.0] 1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.11rc1-5 13 10211 12.so.0.11[.0] 1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.19 10 10019 10.so.0.19[.0] 1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.11 13 10211 12.so.0.11[.0] 1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.20 10 10020 10.so.0.20[.0] 1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.12 13 10212 12.so.0.12[.0] 1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.13beta1 13 10213 12.so.0.13[.0] 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.21 10 10021 10.so.0.21[.0] 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.13 13 10213 12.so.0.13[.0] 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.14beta1-2 13 10214 12.so.0.14[.0] 1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.22rc1 10 10022 10.so.0.22[.0] 1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.14rc1 13 10214 12.so.0.14[.0] 1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.22 10 10022 10.so.0.22[.0] 1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.14 13 10214 12.so.0.14[.0] 1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.15beta1-6 13 10215 12.so.0.15[.0] 1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.23rc1-5 10 10023 10.so.0.23[.0] 1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.15rc1-5 13 10215 12.so.0.15[.0] 1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.23 10 10023 10.so.0.23[.0] 1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.15 13 10215 12.so.0.15[.0] 1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.16beta1-2 13 10216 12.so.0.16[.0] 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.16rc1 13 10216 12.so.0.16[.0] 1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.24 10 10024 10.so.0.24[.0] 1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.16 13 10216 12.so.0.16[.0] 1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.17beta1-2 13 10217 12.so.0.17[.0] 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.25rc1 10 10025 10.so.0.25[.0] 1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.17rc1-3 13 10217 12.so.0.17[.0] 1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.25 10 10025 10.so.0.25[.0] 1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.17 13 10217 12.so.0.17[.0] 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.26 10 10026 10.so.0.26[.0] 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.18 13 10218 12.so.0.18[.0] 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.19beta1-31 13 10219 12.so.0.19[.0] 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.27rc1-6 10 10027 10.so.0.27[.0] 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.19rc1-6 13 10219 12.so.0.19[.0] 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.27 10 10027 10.so.0.27[.0] 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.19 13 10219 12.so.0.19[.0] 159c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.20beta01-04 13 10220 12.so.0.20[.0] 160c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.28rc1-6 10 10028 10.so.0.28[.0] 161c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.20rc1-6 13 10220 12.so.0.20[.0] 162c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.28 10 10028 10.so.0.28[.0] 163c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.20 13 10220 12.so.0.20[.0] 164c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.21beta1-2 13 10221 12.so.0.21[.0] 165c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.21rc1-3 13 10221 12.so.0.21[.0] 166c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.29 10 10029 10.so.0.29[.0] 167c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.21 13 10221 12.so.0.21[.0] 168c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.22beta1-4 13 10222 12.so.0.22[.0] 169c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.30rc1 10 10030 10.so.0.30[.0] 170c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.22rc1 13 10222 12.so.0.22[.0] 171c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.30 10 10030 10.so.0.30[.0] 172c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.22 13 10222 12.so.0.22[.0] 173c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.23beta01-05 13 10223 12.so.0.23[.0] 174c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.23rc01 13 10223 12.so.0.23[.0] 175c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.23 13 10223 12.so.0.23[.0] 176c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.24beta01-02 13 10224 12.so.0.24[.0] 177c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.24rc01 13 10224 12.so.0.24[.0] 178c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.24 13 10224 12.so.0.24[.0] 179c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.25beta01-06 13 10225 12.so.0.25[.0] 180c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.25rc01-02 13 10225 12.so.0.25[.0] 181c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.31 10 10031 10.so.0.31[.0] 182c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.25 13 10225 12.so.0.25[.0] 183c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.26beta01-06 13 10226 12.so.0.26[.0] 184c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.26rc01 13 10226 12.so.0.26[.0] 185c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.26 13 10226 12.so.0.26[.0] 186c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.32 10 10032 10.so.0.32[.0] 187c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.27beta01-06 13 10227 12.so.0.27[.0] 188c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.27rc01 13 10227 12.so.0.27[.0] 189c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.33 10 10033 10.so.0.33[.0] 190c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.27 13 10227 12.so.0.27[.0] 191c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.34 10 10034 10.so.0.34[.0] 192c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.28 13 10228 12.so.0.28[.0] 193c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.29beta01-03 13 10229 12.so.0.29[.0] 194c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.29rc01 13 10229 12.so.0.29[.0] 195c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.35 10 10035 10.so.0.35[.0] 196c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.29 13 10229 12.so.0.29[.0] 197c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.37 10 10037 10.so.0.37[.0] 198c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.30beta01-04 13 10230 12.so.0.30[.0] 199c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.38rc01-08 10 10038 10.so.0.38[.0] 200c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.30rc01-08 13 10230 12.so.0.30[.0] 201c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.38 10 10038 10.so.0.38[.0] 202c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.30 13 10230 12.so.0.30[.0] 203c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.39rc01-03 10 10039 10.so.0.39[.0] 204c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.31rc01-03 13 10231 12.so.0.31[.0] 205c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.39 10 10039 10.so.0.39[.0] 206c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.31 13 10231 12.so.0.31[.0] 207c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.32beta01-02 13 10232 12.so.0.32[.0] 208c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.40rc01 10 10040 10.so.0.40[.0] 209c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.32rc01 13 10232 12.so.0.32[.0] 210c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.40 10 10040 10.so.0.40[.0] 211c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.32 13 10232 12.so.0.32[.0] 212c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.33beta01-02 13 10233 12.so.0.33[.0] 213c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.33rc01-02 13 10233 12.so.0.33[.0] 214c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.41rc01 10 10041 10.so.0.41[.0] 215c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.33 13 10233 12.so.0.33[.0] 216c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.41 10 10041 10.so.0.41[.0] 217c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.34beta01-07 13 10234 12.so.0.34[.0] 218c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.42rc01 10 10042 10.so.0.42[.0] 219c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.34rc01 13 10234 12.so.0.34[.0] 220c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.42 10 10042 10.so.0.42[.0] 221c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.34 13 10234 12.so.0.34[.0] 222c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.35beta01-03 13 10235 12.so.0.35[.0] 223c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.43rc01-02 10 10043 10.so.0.43[.0] 224c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.35rc01-02 13 10235 12.so.0.35[.0] 225c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.43 10 10043 10.so.0.43[.0] 226c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.35 13 10235 12.so.0.35[.0] 227c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.36beta01-05 13 10236 12.so.0.36[.0] 228c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.36rc01 13 10236 12.so.0.36[.0] 229c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.44 10 10044 10.so.0.44[.0] 230c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.36 13 10236 12.so.0.36[.0] 231c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.37beta01-03 13 10237 12.so.0.37[.0] 232c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.37rc01 13 10237 12.so.0.37[.0] 233c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.37 13 10237 12.so.0.37[.0] 234c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.45 10 10045 12.so.0.45[.0] 235c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.46 10 10046 10.so.0.46[.0] 236c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.38beta01 13 10238 12.so.0.38[.0] 237c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.38rc01-03 13 10238 12.so.0.38[.0] 238c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.47 10 10047 10.so.0.47[.0] 239c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.38 13 10238 12.so.0.38[.0] 240c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.39beta01-05 13 10239 12.so.0.39[.0] 241c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.39rc01 13 10239 12.so.0.39[.0] 242c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.48 10 10048 10.so.0.48[.0] 243c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.39 13 10239 12.so.0.39[.0] 244c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.40beta01 13 10240 12.so.0.40[.0] 245c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.40rc01 13 10240 12.so.0.40[.0] 246c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.49 10 10049 10.so.0.49[.0] 247c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.40 13 10240 12.so.0.40[.0] 248c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.41beta01-18 13 10241 12.so.0.41[.0] 249c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.51rc01 10 10051 10.so.0.51[.0] 250c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.41rc01-03 13 10241 12.so.0.41[.0] 251c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.51 10 10051 10.so.0.51[.0] 252c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.41 13 10241 12.so.0.41[.0] 253c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.42beta01-02 13 10242 12.so.0.42[.0] 254c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.42rc01-05 13 10242 12.so.0.42[.0] 255c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.52 10 10052 10.so.0.52[.0] 256c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.42 13 10242 12.so.0.42[.0] 257c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.43beta01-05 13 10243 12.so.0.43[.0] 258c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.53rc01-02 10 10053 10.so.0.53[.0] 259c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.43rc01-02 13 10243 12.so.0.43[.0] 260c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.53 10 10053 10.so.0.53[.0] 261c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.43 13 10243 12.so.0.43[.0] 262c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.44beta01-03 13 10244 12.so.0.44[.0] 263c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.44rc01-03 13 10244 12.so.0.44[.0] 264c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.44 13 10244 12.so.0.44[.0] 265c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.45beta01-03 13 10245 12.so.0.45[.0] 266c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.55rc01 10 10055 10.so.0.55[.0] 267c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.45rc01 13 10245 12.so.0.45[.0] 268c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.55 10 10055 10.so.0.55[.0] 269c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.45 13 10245 12.so.0.45[.0] 270c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.46rc01-02 13 10246 12.so.0.46[.0] 271c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.0.56 10 10056 10.so.0.56[.0] 272c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 1.2.46 13 10246 12.so.0.46[.0] 2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Henceforth the source version will match the shared-library major 2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and minor numbers; the shared-library major version number will be 2768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * used for changes in backward compatibility, as it is intended. The 2778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_LIBPNG_VER macro, which is not used within libpng but is available 2788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * for applications, is an unsigned integer of the form xyyzz corresponding 2798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to the source version x.y.z (leading zeros in y and z). Beta versions 2808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * were given the previous public release number plus a letter, until 2818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * version 1.0.6j; from then on they were given the upcoming public 282c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * release number plus "betaNN" or "rcNN". 2838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Binary incompatibility exists only when applications make direct access 2858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to the info_ptr or png_ptr members through png.h, and the compiled 2868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * application is loaded with a different version of the library. 2878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * DLLNUM will change each time there are forward or backward changes 2898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in binary compatibility (e.g., when a new feature is added). 2908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * See libpng.txt or libpng.3 for more information. The PNG specification 2928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is available as a W3C Recommendation and as an ISO Specification, 2938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * <http://www.w3.org/TR/2003/REC-PNG-20031110/ 2948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 2958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 2978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: 2988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If you modify libpng you may insert additional notices immediately following 3008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * this sentence. 3018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 302c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * This code is released under the libpng license. 303c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 304c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * libpng versions 1.2.6, August 15, 2004, through 1.2.46, July 9, 2011, are 305c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are 3068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * distributed according to the same disclaimer and license as libpng-1.2.5 3078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with the following individual added to the list of Contributing Authors: 3088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Cosmin Truta 3108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are 3128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are 3138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * distributed according to the same disclaimer and license as libpng-1.0.6 3148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with the following individuals added to the list of Contributing Authors: 3158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Simon-Pierre Cadieux 3178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Eric S. Raymond 3188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Gilles Vollant 3198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and with the following additions to the disclaimer: 3218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * There is no warranty against interference with your enjoyment of the 3238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * library or against infringement. There is no warranty that our 3248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * efforts or the library will fulfill any of your particular purposes 3258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * or needs. This library is provided with all faults, and the entire 3268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * risk of satisfactory quality, performance, accuracy, and effort is with 3278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the user. 3288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are 3308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are 3318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * distributed according to the same disclaimer and license as libpng-0.96, 3328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with the following individuals added to the list of Contributing Authors: 3338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Tom Lane 3358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Glenn Randers-Pehrson 3368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Willem van Schaik 3378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 0.89, June 1996, through 0.96, May 1997, are 3398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 1996, 1997 Andreas Dilger 3408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Distributed according to the same disclaimer and license as libpng-0.88, 3418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with the following individuals added to the list of Contributing Authors: 3428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * John Bowler 3448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Kevin Bracey 3458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Sam Bushell 3468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Magnus Holmgren 3478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Greg Roelofs 3488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Tom Tanner 3498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng versions 0.5, May 1995, through 0.88, January 1996, are 3518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. 3528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * For the purposes of this copyright and license, "Contributing Authors" 3548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is defined as the following set of individuals: 3558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Andreas Dilger 3578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Dave Martindale 3588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Guy Eric Schalnat 3598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Paul Schmidt 3608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Tim Wegner 3618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The PNG Reference Library is supplied "AS IS". The Contributing Authors 3638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and Group 42, Inc. disclaim all warranties, expressed or implied, 3648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * including, without limitation, the warranties of merchantability and of 3658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * fitness for any purpose. The Contributing Authors and Group 42, Inc. 3668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * assume no liability for direct, indirect, incidental, special, exemplary, 3678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * or consequential damages, which may result from the use of the PNG 3688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Reference Library, even if advised of the possibility of such damage. 3698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Permission is hereby granted to use, copy, modify, and distribute this 3718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * source code, or portions hereof, for any purpose, without fee, subject 3728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to the following restrictions: 3738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1. The origin of this source code must not be misrepresented. 3758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 2. Altered versions must be plainly marked as such and 3778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * must not be misrepresented as being the original source. 3788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3. This Copyright notice may not be removed or altered from 3808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * any source or altered source distribution. 3818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The Contributing Authors and Group 42, Inc. specifically permit, without 3838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * fee, and encourage the use of this source code as a component to 3848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * supporting the PNG file format in commercial products. If you use this 3858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * source code in a product, acknowledgment is not required but would be 3868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * appreciated. 3878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 3888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 3908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * A "png_get_copyright" function is available, for convenient use in "about" 3918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * boxes and the like: 3928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * printf("%s",png_get_copyright(NULL)); 3948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 3958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Also, the PNG logo (in PNG format, of course) is supplied in the 3968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). 3978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 3988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 4008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Libpng is OSI Certified Open Source Software. OSI Certified is a 4018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * certification mark of the Open Source Initiative. 4028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 4038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 4058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The contributing authors would like to thank all those who helped 4068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with testing, bug fixes, and patience. This wouldn't have been 4078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * possible without all of you. 4088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Thanks to Frank J. T. Wojcik for helping with the documentation. 4108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 4118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 4138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Y2K compliance in libpng: 4148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ========================= 4158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 416c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * July 9, 2011 4178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Since the PNG Development group is an ad-hoc body, we can't make 4198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * an official declaration. 4208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * This is your unofficial assurance that libpng from version 0.71 and 422c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * upward through 1.2.46 are Y2K compliant. It is my belief that earlier 4238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * versions were also Y2K compliant. 4248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Libpng only has three year fields. One is a 2-byte unsigned integer 4268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * that will hold years up to 65535. The other two hold the date in text 4278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * format, and will hold years up to 9999. 4288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The integer is 4308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * "png_uint_16 year" in png_time_struct. 4318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The strings are 4338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * "png_charp time_buffer" in png_struct and 4348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * "near_time_buffer", which is a local character string in png.c. 4358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * There are seven time-related functions: 4378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png.c: png_convert_to_rfc_1123() in png.c 4388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (formerly png_convert_to_rfc_1152() in error) 4398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c 4408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_convert_from_time_t() in pngwrite.c 4418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_tIME() in pngget.c 4428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_handle_tIME() in pngrutil.c, called in pngread.c 4438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_set_tIME() in pngset.c 4448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_write_tIME() in pngwutil.c, called in pngwrite.c 4458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * All handle dates properly in a Y2K environment. The 4478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_convert_from_time_t() function calls gmtime() to convert from system 4488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * clock time, which returns (year - 1900), which we properly convert to 4498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the full 4-digit year. There is a possibility that applications using 4508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng are not passing 4-digit years into the png_convert_to_rfc_1123() 4518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * function, or that they are incorrectly passing only a 2-digit year 4528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * instead of "year - 1900" into the png_convert_from_struct_tm() function, 4538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * but this is not under our control. The libpng documentation has always 4548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * stated that it works with 4-digit years, and the APIs have been 4558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * documented as such. 4568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned 4588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * integer to hold the year, and can hold years as large as 65535. 4598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * zlib, upon which libpng depends, is also Y2K compliant. It contains 4618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * no date-related code. 4628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Glenn Randers-Pehrson 4648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng maintainer 4658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG Development Group 4668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 4678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_H 4698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_H 4708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is not the place to learn how to use libpng. The file libpng.txt 4728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * describes how to use libpng, and the file example.c summarizes it 4738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with some code on which to build. This file is useful for looking 4748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * at the actual function definitions and structure components. 4758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 4768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Version information for png.h - this should match the version in png.c */ 478c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_LIBPNG_VER_STRING "1.2.46" 4798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HEADER_VERSION_STRING \ 480c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner " libpng version 1.2.46 - July 9, 2011\n" 4818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_VER_SONUM 0 4838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_VER_DLLNUM 13 4848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ 4868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_VER_MAJOR 1 4878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_VER_MINOR 2 488c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_LIBPNG_VER_RELEASE 46 4898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This should match the numeric part of the final component of 490c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * PNG_LIBPNG_VER_STRING, omitting any leading zero: 491c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 4928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_VER_BUILD 0 4948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Release Status */ 4968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_ALPHA 1 4978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_BETA 2 4988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_RC 3 4998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_STABLE 4 5008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 501c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 5028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Release-Specific Flags */ 5038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with 5048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_LIBPNG_BUILD_STABLE only */ 5058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with 5068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_LIBPNG_BUILD_SPECIAL */ 5078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with 5088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_LIBPNG_BUILD_PRIVATE */ 5098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE 5118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Careful here. At one time, Guy wanted to use 082, but that would be octal. 5138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * We must not include leading zeros. 5148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only 5158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * version 1.0.0 was mis-numbered 100 instead of 10000). From 516c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release 517c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 518c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_LIBPNG_VER 10246 /* 1.2.46 */ 5198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_VERSION_INFO_ONLY 521c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Include the compression library's header */ 5228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "zlib.h" 5238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 525c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Include all user configurable info, including optional assembler routines */ 5268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "pngconf.h" 5278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 5298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Added at libpng-1.2.8 */ 5308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Ref MSDN: Private as priority over Special 5318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * VS_FF_PRIVATEBUILD File *was not* built using standard release 5328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * procedures. If this value is given, the StringFileInfo block must 533c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * contain a PrivateBuild string. 5348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 5358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * VS_FF_SPECIALBUILD File *was* built by the original company using 5368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * standard release procedures but is a variation of the standard 5378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * file of the same version number. If this value is given, the 538c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * StringFileInfo block must contain a SpecialBuild string. 5398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 5408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 541c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_PRIVATEBUILD 5428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PNG_LIBPNG_BUILD_TYPE \ 5438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) 5448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 545c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifdef PNG_LIBPNG_SPECIALBUILD 5468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PNG_LIBPNG_BUILD_TYPE \ 5478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) 5488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 5498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) 5508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 5518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_VERSION_INFO_ONLY 5548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ 5568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __cplusplus 5578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern "C" { 5588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* __cplusplus */ 5598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This file is arranged in several sections. The first section contains 5618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * structure and type definitions. The second section contains the external 5628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * library functions, while the third has the internal library functions, 5638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * which applications aren't expected to use directly. 5648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 5658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_TYPECAST_NULL 5678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define int_p_NULL (int *)NULL 5688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_bytep_NULL (png_bytep)NULL 5698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_bytepp_NULL (png_bytepp)NULL 5708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_doublep_NULL (png_doublep)NULL 5718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_error_ptr_NULL (png_error_ptr)NULL 5728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_flush_ptr_NULL (png_flush_ptr)NULL 5738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_free_ptr_NULL (png_free_ptr)NULL 5748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_infopp_NULL (png_infopp)NULL 5758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_malloc_ptr_NULL (png_malloc_ptr)NULL 5768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_read_status_ptr_NULL (png_read_status_ptr)NULL 5778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_rw_ptr_NULL (png_rw_ptr)NULL 5788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_structp_NULL (png_structp)NULL 5798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_uint_16p_NULL (png_uint_16p)NULL 5808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_voidp_NULL (png_voidp)NULL 5818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_write_status_ptr_NULL (png_write_status_ptr)NULL 5828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 5838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define int_p_NULL NULL 5848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_bytep_NULL NULL 5858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_bytepp_NULL NULL 5868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_doublep_NULL NULL 5878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_error_ptr_NULL NULL 5888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_flush_ptr_NULL NULL 5898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_free_ptr_NULL NULL 5908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_infopp_NULL NULL 5918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_malloc_ptr_NULL NULL 5928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_read_status_ptr_NULL NULL 5938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_rw_ptr_NULL NULL 5948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_structp_NULL NULL 5958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_uint_16p_NULL NULL 5968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_voidp_NULL NULL 5978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_write_status_ptr_NULL NULL 5988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 600c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */ 6018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) 6028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Version information for C files, stored in png.c. This had better match 6038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the version above. 6048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 6058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USE_GLOBAL_ARRAYS 6068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18]; 607c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Need room for 99.99.99beta99z */ 6088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 6098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_libpng_ver png_get_header_ver(NULL) 6108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USE_GLOBAL_ARRAYS 6138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This was removed in version 1.0.5c */ 6148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Structures to facilitate easy interlacing. See png.c for more details */ 6158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7]; 6168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7]; 6178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7]; 6188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_yinc[7]; 6198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_mask[7]; 6208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_dsp_mask[7]; 6218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This isn't currently used. If you need it, see png.c for more details. 6228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_height[7]; 6238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/ 6248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_NO_EXTERN */ 6278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Three color definitions. The order of the red, green, and blue, (and the 6298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * exact size) is not important, although the size of the fields need to 6308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * be png_byte or png_uint_16 (as defined below). 6318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 6328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_color_struct 6338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte red; 6358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte green; 6368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte blue; 6378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_color; 6388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color FAR * png_colorp; 6398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color FAR * FAR * png_colorpp; 6408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_color_16_struct 6428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte index; /* used for palette files */ 6448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 red; /* for use in red green blue files */ 6458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 green; 6468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 blue; 6478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 gray; /* for use in grayscale files */ 6488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_color_16; 6498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color_16 FAR * png_color_16p; 6508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color_16 FAR * FAR * png_color_16pp; 6518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_color_8_struct 6538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte red; /* for use in red green blue files */ 6558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte green; 6568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte blue; 6578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte gray; /* for use in grayscale files */ 6588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte alpha; /* for alpha channel files */ 6598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_color_8; 6608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color_8 FAR * png_color_8p; 6618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_color_8 FAR * FAR * png_color_8pp; 6628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 6648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The following two structures are used for the in-core representation 6658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * of sPLT chunks. 6668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 6678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_sPLT_entry_struct 6688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 red; 6708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 green; 6718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 blue; 6728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 alpha; 6738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 frequency; 6748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_sPLT_entry; 6758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_sPLT_entry FAR * png_sPLT_entryp; 6768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp; 6778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* When the depth of the sPLT palette is 8 bits, the color and alpha samples 6798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * occupy the LSB of their respective members, and the MSB of each member 6808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is zero-filled. The frequency member always occupies the full 16 bits. 6818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 6828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_sPLT_struct 6848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp name; /* palette name */ 6868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte depth; /* depth of palette samples */ 6878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_sPLT_entryp entries; /* palette entries */ 6888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_int_32 nentries; /* number of palette entries */ 6898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_sPLT_t; 6908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_sPLT_t FAR * png_sPLT_tp; 6918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_sPLT_t FAR * FAR * png_sPLT_tpp; 6928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_TEXT_SUPPORTED 6948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, 6958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and whether that contents is compressed or not. The "key" field 6968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * points to a regular zero-terminated C string. The "text", "lang", and 6978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * "lang_key" fields can be regular C strings, empty strings, or NULL pointers. 6988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * However, the * structure returned by png_get_text() will always contain 6998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * regular zero-terminated C strings (possibly empty), never NULL pointers, 7008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * so they can be safely used in printf() and other string-handling functions. 7018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 7028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_text_struct 7038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 7048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int compression; /* compression value: 7058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project -1: tEXt, none 7068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 0: zTXt, deflate 7078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1: iTXt, none 7088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2: iTXt, deflate */ 7098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp key; /* keyword, 1-79 character description of "text" */ 7108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp text; /* comment, may be an empty string (ie "") 7118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project or a NULL pointer */ 7128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_size_t text_length; /* length of the text string */ 7138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_iTXt_SUPPORTED 7148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_size_t itxt_length; /* length of the itxt string */ 7158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp lang; /* language code, 0-79 characters 7168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project or a NULL pointer */ 7178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp lang_key; /* keyword translated UTF-8 string, 0 or more 7188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project chars or a NULL pointer */ 7198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_text; 7218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_text FAR * png_textp; 7228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_text FAR * FAR * png_textpp; 7238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Supported compression types for text in PNG files (tEXt, and zTXt). 726c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. 727c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 7288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TEXT_COMPRESSION_NONE_WR -3 7298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TEXT_COMPRESSION_zTXt_WR -2 7308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TEXT_COMPRESSION_NONE -1 7318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TEXT_COMPRESSION_zTXt 0 7328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ITXT_COMPRESSION_NONE 1 7338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ITXT_COMPRESSION_zTXt 2 7348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ 7358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_time is a way to hold the time in an machine independent way. 7378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Two conversions are provided, both from time_t and struct tm. There 7388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is no portable way to convert to either of these structures, as far 7398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * as I know. If you know of a portable way, send it to me. As a side 7408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * note - PNG has always been Year 2000 compliant! 7418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 7428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_time_struct 7438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 7448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16 year; /* full year, as in, 1995 */ 7458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte month; /* month of year, 1 - 12 */ 7468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte day; /* day of month, 1 - 31 */ 7478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte hour; /* hour of day, 0 - 23 */ 7488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte minute; /* minute of hour, 0 - 59 */ 7498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ 7508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_time; 7518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_time FAR * png_timep; 7528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_time FAR * FAR * png_timepp; 7538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 754c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ 755c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) 7568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_unknown_chunk is a structure to hold queued chunks for which there is 7578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * no specific support. The idea is that we can use this to queue 7588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * up private chunks for output even though the library doesn't actually 7598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * know about their semantics. 7608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 761c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_CHUNK_NAME_LENGTH 5 7628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_unknown_chunk_t 7638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 764c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte name[PNG_CHUNK_NAME_LENGTH]; 7658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte *data; 7668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_size_t size; 7678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* libpng-using applications should NOT directly modify this byte. */ 7698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte location; /* mode of operation at read time */ 7708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 7718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_unknown_chunk; 7728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_unknown_chunk FAR * png_unknown_chunkp; 7738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp; 7748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 776c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 777c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* png_line_index_struct records an index point, where we impose an index point 778c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * to be located at the beginning of a line for simplifying the implementation. 779c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 780c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef struct png_line_index_struct 781c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner{ 782c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // state of the lz decoder 783c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner z_streamp z_state; 784c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 785c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // the IDAT header position of the chunk, which the index point is in 786c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 stream_idat_position; 787c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 788c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // we intend to record the offset of the index point in the chunk, 789c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // but we record the number of remaining bytes in the chunk after the 790c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // index point. That's because PNG processes a chunk this way. 791c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 bytes_left_in_idat; 792c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 793c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // decompressed data of the previous row 794c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep prev_row; 795c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner} png_line_index; 796c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef png_line_index FAR * png_line_indexp; 797c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 798c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef struct png_index_struct 799c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner{ 800c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // A temporary variable used when we build the index. The variable records 801c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // the IDAT header position of the last chunk read in so far. 802c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 stream_idat_position; 803c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 804c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // line index information about each passes 805c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 806c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // the number of index points in each pass 807c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 size[7]; 808c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 809c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // the line span of two index points of each pass 810c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 step[7]; 811c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 812c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner // the index points of each pass 813c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_line_indexp *pass_line_index[7]; 814c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner} png_index; 815c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef png_index FAR * png_indexp; 816c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 817c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define INDEX_SAMPLE_SIZE 254 818c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 819c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 8208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_info is a structure that holds the information in a PNG file so 8218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * that the application can find out the characteristics of the image. 8228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If you are reading the file, this structure will tell you what is 8238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in the PNG file. If you are writing the file, fill in the information 8248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * you want to put into the PNG file, then call png_write_info(). 8258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The names chosen should be very close to the PNG specification, so 8268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * consult that document for information about the meaning of each field. 8278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 8288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * With libpng < 0.95, it was only possible to directly set and read the 8298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the values in the png_info_struct, which meant that the contents and 8308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * order of the values had to remain fixed. With libpng 0.95 and later, 8318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * however, there are now functions that abstract the contents of 8328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_info_struct from the application, so this makes it easier to use 8338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng with dynamic libraries, and even makes it possible to use 8348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libraries that don't have all of the libpng ancillary chunk-handing 8358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functionality. 8368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 8378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * In any case, the order of the parameters in png_info_struct should NOT 8388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * be changed for as long as possible to keep compatibility with applications 8398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * that use the old direct-access method with png_info_struct. 8408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 8418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The following members may have allocated storage attached that should be 8428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * cleaned up before the structure is discarded: palette, trans, text, 8438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, 8448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * splt_palettes, scal_unit, row_pointers, and unknowns. By default, these 8458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * are automatically freed when the info structure is deallocated, if they were 8468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * allocated internally by libpng. This behavior can be changed by means 8478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * of the png_data_freer() function. 8488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 8498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * More allocation details: all the chunk-reading functions that 8508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * change these members go through the corresponding png_set_* 8518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functions. A function to clear these members is available: see 8528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_free_data(). The png_set_* functions do not depend on being 8538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * able to point info structure members to any of the storage they are 8548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * passed (they make their own copies), EXCEPT that the png_set_text 8558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functions use the same storage passed to them in the text_ptr or 8568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns 8578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functions do not make their own copies. 8588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 8598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_info_struct 8608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 861c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* The following are necessary for every PNG file */ 862c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels (from IHDR) */ 863c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHDR) */ 864c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 valid PNG_DEPSTRUCT; /* valid chunk data (see PNG_INFO_ below) */ 865c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransformed row */ 866c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_colorp palette PNG_DEPSTRUCT; /* array of color values (valid & PNG_INFO_PLTE) */ 867c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in "palette" (PLTE) */ 868c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparent palette color (tRNS) */ 869c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte bit_depth PNG_DEPSTRUCT; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ 870c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte color_type PNG_DEPSTRUCT; /* see PNG_COLOR_TYPE_ below (from IHDR) */ 8718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The following three should have been named *_method not *_type */ 872c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte compression_type PNG_DEPSTRUCT; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ 873c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte filter_type PNG_DEPSTRUCT; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ 874c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 8758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The following is informational only on read, and not used on writes. */ 877c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte channels PNG_DEPSTRUCT; /* number of data channels per pixel (1, 2, 3, 4) */ 878c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ 879c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte spare_byte PNG_DEPSTRUCT; /* to align the data, and for future use */ 880c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte signature[8] PNG_DEPSTRUCT; /* magic bytes read by libpng from start of file */ 8818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The rest of the data is optional. If you are reading, check the 8838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * valid field to see if the information in these are valid. If you 8848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * are writing, set the valid field to those chunks you want written, 8858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and initialize the appropriate fields below. 8868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 8878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED) 8898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The gAMA chunk describes the gamma characteristics of the system 8908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on which the image was created, normally in the range [1.0, 2.5]. 8918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. 8928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 893c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float gamma PNG_DEPSTRUCT; /* gamma value of image, if (valid & PNG_INFO_gAMA) */ 8948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 896c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sRGB_SUPPORTED 8978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* GR-P, 0.96a */ 8988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ 899c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent [0, 1, 2, or 3] */ 9008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 902c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TEXT_SUPPORTED 9038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The tEXt, and zTXt chunks contain human-readable textual data in 9048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * uncompressed, compressed, and optionally compressed forms, respectively. 9058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The data in "text" is an array of pointers to uncompressed, 9068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * null-terminated C strings. Each chunk has a keyword that describes the 9078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * textual data contained in that chunk. Keywords are not required to be 9088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unique, and the text string may be empty. Any number of text chunks may 9098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * be in an image. 9108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 911c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_text PNG_DEPSTRUCT; /* number of comments read/to write */ 912c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int max_text PNG_DEPSTRUCT; /* current size of text array */ 913c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */ 9148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_TEXT_SUPPORTED */ 9158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 916c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tIME_SUPPORTED 9178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The tIME chunk holds the last time the displayed image data was 9188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * modified. See the png_time struct for the contents of this struct. 9198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 920c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_time mod_time PNG_DEPSTRUCT; 9218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 923c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sBIT_SUPPORTED 9248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The sBIT chunk specifies the number of significant high-order bits 9258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in the pixel data. Values are in the range [1, bit_depth], and are 9268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * only specified for the channels in the pixel data. The contents of 9278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the low-order bits is not specified. Data is valid if 9288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (valid & PNG_INFO_sBIT) is non-zero. 9298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 930c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */ 9318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ 9348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectdefined(PNG_READ_BACKGROUND_SUPPORTED) 9358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The tRNS chunk supplies transparency data for paletted images and 9368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * other image types that don't need a full alpha channel. There are 9378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * "num_trans" transparency values for a paletted image, stored in the 9388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * same order as the palette colors, starting from index 0. Values 9398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * for the data are in the range [0, 255], ranging from fully transparent 9408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to fully opaque, respectively. For non-paletted images, there is a 9418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * single color specified that should be treated as fully transparent. 9428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. 9438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 944c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep trans PNG_DEPSTRUCT; /* transparent values for paletted image */ 945c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16 trans_values PNG_DEPSTRUCT; /* transparent color for non-palette image */ 9468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 9498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The bKGD chunk gives the suggested image background color if the 9508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * display program does not have its own background color and the image 9518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is needs to composited onto a background before display. The colors 9528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in "background" are normally in the same color space/depth as the 9538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. 9548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 955c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16 background PNG_DEPSTRUCT; 9568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 958c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 9598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards 9608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and downwards from the top-left corner of the display, page, or other 9618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * application-specific co-ordinate space. See the PNG_OFFSET_ defines 9628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. 9638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 964c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */ 965c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */ 966c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */ 9678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 969c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 9708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The pHYs chunk gives the physical pixel density of the image for 9718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ 9728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. 9738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 974c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */ 975c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */ 976c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see PNG_RESOLUTION_ below) */ 9778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 979c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_hIST_SUPPORTED 9808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The hIST chunk contains the relative frequency or importance of the 9818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * various palette entries, so that a viewer can intelligently select a 9828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * reduced-color palette, if required. Data is an array of "num_palette" 9838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) 9848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is non-zero. 9858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 986c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p hist PNG_DEPSTRUCT; 9878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 9888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_cHRM_SUPPORTED 9908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The cHRM chunk describes the CIE color characteristics of the monitor 9918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on which the PNG was created. This data allows the viewer to do gamut 9928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * mapping of the input image to ensure that the viewer sees the same 9938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * colors in the image as the creator. Values are in the range 9948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero. 9958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 9968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 997c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float x_white PNG_DEPSTRUCT; 998c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float y_white PNG_DEPSTRUCT; 999c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float x_red PNG_DEPSTRUCT; 1000c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float y_red PNG_DEPSTRUCT; 1001c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float x_green PNG_DEPSTRUCT; 1002c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float y_green PNG_DEPSTRUCT; 1003c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float x_blue PNG_DEPSTRUCT; 1004c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float y_blue PNG_DEPSTRUCT; 10058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1008c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pCAL_SUPPORTED 10098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The pCAL chunk describes a transformation between the stored pixel 10108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * values and original physical data values used to create the image. 10118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The integer range [0, 2^bit_depth - 1] maps to the floating-point 10128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * range given by [pcal_X0, pcal_X1], and are further transformed by a 10138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (possibly non-linear) transformation function given by "pcal_type" 10148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_ 10158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * defines below, and the PNG-Group's PNG extensions document for a 10168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * complete description of the transformations and how they should be 10178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * implemented, and for a description of the ASCII parameter strings. 10188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. 10198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1020c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp pcal_purpose PNG_DEPSTRUCT; /* pCAL chunk description string */ 1021c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_int_32 pcal_X0 PNG_DEPSTRUCT; /* minimum value */ 1022c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_int_32 pcal_X1 PNG_DEPSTRUCT; /* maximum value */ 1023c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp pcal_units PNG_DEPSTRUCT; /* Latin-1 string giving physical units */ 1024c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charpp pcal_params PNG_DEPSTRUCT; /* ASCII strings containing parameter values */ 1025c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte pcal_type PNG_DEPSTRUCT; /* equation type (see PNG_EQUATION_ below) */ 1026c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte pcal_nparams PNG_DEPSTRUCT; /* number of parameters given in pcal_params */ 10278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.0.6 */ 10308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FREE_ME_SUPPORTED 1031c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ 10328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1034c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ 1035c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) 1036c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Storage for unknown chunks that the library doesn't recognize. */ 1037c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT; 1038c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t unknown_chunks_num PNG_DEPSTRUCT; 10398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1041c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_iCCP_SUPPORTED 10428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* iCCP chunk data. */ 1043c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp iccp_name PNG_DEPSTRUCT; /* profile name */ 1044c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp iccp_profile PNG_DEPSTRUCT; /* International Color Consortium profile data */ 10458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Note to maintainer: should be png_bytep */ 1046c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 iccp_proflen PNG_DEPSTRUCT; /* ICC profile data length */ 1047c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */ 10488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1050c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sPLT_SUPPORTED 1051c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Data on sPLT chunks (there may be more than one). */ 1052c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_sPLT_tp splt_palettes PNG_DEPSTRUCT; 1053c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 splt_palettes_num PNG_DEPSTRUCT; 10548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1056c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sCAL_SUPPORTED 10578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The sCAL chunk describes the actual physical dimensions of the 10588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * subject matter of the graphic. The chunk contains a unit specification 10598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * a byte value, and two ASCII strings representing floating-point 10608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * values. The values are width and height corresponsing to one pixel 10618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in the image. This external representation is converted to double 10628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero. 10638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1064c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte scal_unit PNG_DEPSTRUCT; /* unit of physical scale */ 10658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 1066c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner double scal_pixel_width PNG_DEPSTRUCT; /* width of one pixel */ 1067c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner double scal_pixel_height PNG_DEPSTRUCT; /* height of one pixel */ 10688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 1070c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp scal_s_width PNG_DEPSTRUCT; /* string containing height */ 1071c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp scal_s_height PNG_DEPSTRUCT; /* string containing width */ 10728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1075c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INFO_IMAGE_SUPPORTED 10768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */ 10778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ 1078c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytepp row_pointers PNG_DEPSTRUCT; /* the image bits */ 10798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED) 1082c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image, if (valid & PNG_INFO_gAMA) */ 10838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED) 1086c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_x_white PNG_DEPSTRUCT; 1087c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_y_white PNG_DEPSTRUCT; 1088c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_x_red PNG_DEPSTRUCT; 1089c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_y_red PNG_DEPSTRUCT; 1090c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_x_green PNG_DEPSTRUCT; 1091c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_y_green PNG_DEPSTRUCT; 1092c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_x_blue PNG_DEPSTRUCT; 1093c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_y_blue PNG_DEPSTRUCT; 10948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 10958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_info; 10978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_info FAR * png_infop; 10998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_info FAR * FAR * png_infopp; 11008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Maximum positive integer used in PNG is (2^31)-1 */ 11028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) 11038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_UINT_32_MAX ((png_uint_32)(-1)) 11048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SIZE_MAX ((png_size_t)(-1)) 11058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 11068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */ 11078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MAX_UINT PNG_UINT_31_MAX 11088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 11098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These describe the color_type field in png_info. */ 11118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* color type masks */ 11128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_MASK_PALETTE 1 11138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_MASK_COLOR 2 11148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_MASK_ALPHA 4 11158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* color types. Note that not all combinations are legal */ 11178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_GRAY 0 11188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) 11198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) 11208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) 11218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) 11228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* aliases */ 11238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA 11248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA 11258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is for compression type. PNG 1.0-1.2 only define the single type. */ 11278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ 11288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE 11298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is for filter type. PNG 1.0-1.2 only define the single type. */ 11318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ 11328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ 11338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE 11348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the interlacing type. These values should NOT be changed. */ 11368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ 11378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ 11388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTERLACE_LAST 2 /* Not a valid value */ 11398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the oFFs chunk. These values should NOT be changed. */ 11418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ 11428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ 11438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_OFFSET_LAST 2 /* Not a valid value */ 11448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the pCAL chunk. These values should NOT be changed. */ 11468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ 11478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ 11488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ 11498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ 11508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EQUATION_LAST 4 /* Not a valid value */ 11518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the sCAL chunk. These values should NOT be changed. */ 11538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ 11548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SCALE_METER 1 /* meters per pixel */ 11558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SCALE_RADIAN 2 /* radians per pixel */ 11568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SCALE_LAST 3 /* Not a valid value */ 11578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the pHYs chunk. These values should NOT be changed. */ 11598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ 11608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RESOLUTION_METER 1 /* pixels/meter */ 11618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ 11628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are for the sRGB chunk. These values should NOT be changed. */ 11648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB_INTENT_PERCEPTUAL 0 11658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB_INTENT_RELATIVE 1 11668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB_INTENT_SATURATION 2 11678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB_INTENT_ABSOLUTE 3 11688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ 11698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is for text chunks */ 11718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_KEYWORD_MAX_LENGTH 79 11728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ 11748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MAX_PALETTE_LENGTH 256 11758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These determine if an ancillary chunk's data has been successfully read 11778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * from the PNG header, or if the application has filled in the corresponding 11788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * data in the info_struct to be written into the output file. The values 11798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * of the PNG_INFO_<chunk> defines should NOT be changed. 11808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 11818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_gAMA 0x0001 11828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_sBIT 0x0002 11838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_cHRM 0x0004 11848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_PLTE 0x0008 11858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_tRNS 0x0010 11868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_bKGD 0x0020 11878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_hIST 0x0040 11888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_pHYs 0x0080 11898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_oFFs 0x0100 11908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_tIME 0x0200 11918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_pCAL 0x0400 11928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ 11938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ 11948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ 11958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ 11968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ 11978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is used for the transformation routines, as some of them 11998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * change these values for the row. It also should enable using 12008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the routines for other purposes. 12018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 12028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_row_info_struct 12038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 12048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 width; /* width of row */ 12058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 rowbytes; /* number of bytes in row */ 12068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte color_type; /* color type of row */ 12078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte bit_depth; /* bit depth of row */ 12088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte channels; /* number of channels (1, 2, 3, or 4) */ 12098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_byte pixel_depth; /* bits per pixel (depth * channels) */ 12108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} png_row_info; 12118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_row_info FAR * png_row_infop; 12138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_row_info FAR * FAR * png_row_infopp; 12148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are the function types for the I/O functions and for the functions 12168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * that allow the user to override the default I/O functions with his or her 12178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * own. The png_error_ptr type should match that of user-supplied warning 12188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and error functions, while the png_rw_ptr type should match that of the 12198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * user read/write data functions. 12208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 12218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct png_struct_def png_struct; 12228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_struct FAR * png_structp; 12238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp)); 12258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t)); 1226c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 1227c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef void (PNGAPI *png_seek_ptr) PNGARG((png_structp, png_uint_32)); 1228c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 12298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp)); 12308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32, 12318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int)); 12328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32, 12338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int)); 12348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 12368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop)); 12378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); 12388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, 12398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32, int)); 12408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 12418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 12438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 12448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_LEGACY_SUPPORTED) 12458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, 12468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_row_infop, png_bytep)); 12478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 12488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1249c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_CHUNKS_SUPPORTED 12508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp)); 12518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1252c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 12538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); 12548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 12558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Transform masks for the high-level interface */ 12578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ 12588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ 12598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ 12608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ 12618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ 12628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ 12638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ 12648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ 12658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ 12668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ 12678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ 12688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ 1269c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only, deprecated */ 1270c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added to libpng-1.2.34 */ 1271c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* write only */ 1272c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ 1273c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added to libpng-1.2.41 */ 1274c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ 12758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Flags for MNG supported features */ 12778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 12788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_MNG_FILTER_64 0x04 12798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ALL_MNG_FEATURES 0x05 12808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t)); 12828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); 12838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The structure that holds the information to read and write PNG files. 12858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The only people who need to care about what is inside of this are the 12868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * people who will be modifying the library for their own special needs. 12878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * It should NOT be accessed directly by an application, except to store 12888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the jmp_buf. 12898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 12908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct png_struct_def 12928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 12938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SETJMP_SUPPORTED 12948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project jmp_buf jmpbuf; /* used in png_error */ 12958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1296c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing errors and aborting */ 1297c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing warnings */ 1298c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for error functions */ 1299c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing output data */ 1300c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading input data */ 1301c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 1302c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_seek_ptr seek_data_fn PNG_DEPSTRUCT; /* function for seeking input data */ 1303c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1304c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct for I/O functions */ 13058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1306c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1307c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read transform */ 13088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 13098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1310c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 1311c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write transform */ 13128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 13138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These were added in libpng-1.0.2 */ 1315c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED 13168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 13178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1318c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct for user transform */ 1319c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user transformed pixels */ 1320c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user transformed pixels */ 1321c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1322c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1323c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1324c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in the PNG file */ 1325c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various things to libpng */ 1326c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations to perform */ 1327c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1328c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression structure (below) */ 1329c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */ 1330c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */ 1331c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */ 1332c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */ 1333c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window bits */ 1334c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory level */ 1335c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression strategy */ 1336c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1337c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */ 1338c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */ 1339c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */ 1340c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */ 1341c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 rowbytes PNG_DEPSTRUCT; /* size of row in bytes */ 1342c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#if 0 /* Replaced with the following in libpng-1.2.43 */ 1343c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t irowbytes PNG_DEPSTRUCT; 1344c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1345c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added in libpng-1.2.43 */ 1346c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_LIMITS_SUPPORTED 1347c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown 1348c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * chunks that can be stored (0 means unlimited). 1349c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 1350c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; 1351c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1352c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced row in pixels */ 1353c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */ 1354c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous (unfiltered) row */ 1355c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ 1356c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_NO_WRITE_FILTER 1357c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row when filtering */ 1358c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row when filtering */ 1359c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row when filtering */ 1360c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row when filtering */ 1361c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1362c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_row_info row_info PNG_DEPSTRUCT; /* used for transformation routines */ 1363c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1364c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */ 1365c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */ 1366c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */ 1367c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in palette */ 1368c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */ 1369c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current chunk */ 1370c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte compression PNG_DEPSTRUCT; /* file compression type (always 0) */ 1371c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */ 1372c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 1373c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */ 1374c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see PNG_FILTER_ below ) */ 1375c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte color_type PNG_DEPSTRUCT; /* color type of file */ 1376c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */ 1377c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */ 1378c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ 1379c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte channels PNG_DEPSTRUCT; /* number of channels in file */ 1380c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */ 1381c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from start of file */ 13828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 13848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_LEGACY_SUPPORTED 1385c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte filler PNG_DEPSTRUCT; /* filler byte for pixel expansion */ 13868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1387c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel expansion */ 13888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 13898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 13908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1391c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_bKGD_SUPPORTED 1392c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte background_gamma_type PNG_DEPSTRUCT; 13938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# ifdef PNG_FLOATING_POINT_SUPPORTED 1394c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float background_gamma PNG_DEPSTRUCT; 13958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 1396c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16 background PNG_DEPSTRUCT; /* background color in screen gamma space */ 1397c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GAMMA_SUPPORTED 1398c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized to gamma 1.0 */ 13998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_bKGD_SUPPORTED */ 14018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1402c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_FLUSH_SUPPORTED 1403c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing output */ 1404c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, 0 - no flush */ 1405c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since last flush */ 14068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1409c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits 16-bit gamma */ 14108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 1411c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float gamma PNG_DEPSTRUCT; /* file gamma value */ 1412c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner float screen_gamma PNG_DEPSTRUCT; /* screen gamma value (display_exponent) */ 14138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1417c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit depth files */ 1418c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ 1419c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ 1420c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit depth files */ 1421c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ 1422c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ 14238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) 1426c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each available channel */ 14278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 1430c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit tranformation */ 14318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ 14348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1435c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep trans PNG_DEPSTRUCT; /* transparency values for paletted files */ 1436c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16 trans_values PNG_DEPSTRUCT; /* transparency values for non-paletted files */ 14378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1439c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each row is decoded */ 1440c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each row is encoded */ 14418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 1442c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header data fully read */ 1443c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each prog. row is decoded */ 1444c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image is complete */ 1445c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in save_buffer */ 1446c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously read data */ 1447c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in current_buffer */ 1448c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently used data */ 1449c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input chunk */ 1450c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in input data */ 1451c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now in save_buffer */ 1452c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of save_buffer */ 1453c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of available input data */ 1454c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now in current_buffer */ 1455c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int process_mode PNG_DEPSTRUCT; /* what push library is currently doing */ 1456c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int cur_palette PNG_DEPSTRUCT; /* current push library palette index */ 1457c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1458c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifdef PNG_TEXT_SUPPORTED 1459c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t current_text_size PNG_DEPSTRUCT; /* current size of text input data */ 1460c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left to read in input */ 1461c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp current_text PNG_DEPSTRUCT; /* current text chunk buffer */ 1462c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp current_text_ptr PNG_DEPSTRUCT; /* current location in current_text */ 1463c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif /* PNG_TEXT_SUPPORTED */ 14648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 14658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) 14678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* for the Borland special 64K segment handler */ 1468c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytepp offset_table_ptr PNG_DEPSTRUCT; 1469c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep offset_table PNG_DEPSTRUCT; 1470c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 offset_table_number PNG_DEPSTRUCT; 1471c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 offset_table_count PNG_DEPSTRUCT; 1472c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 offset_table_count_free PNG_DEPSTRUCT; 14738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1475c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_DITHER_SUPPORTED 1476c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */ 1477c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep dither_index PNG_DEPSTRUCT; /* index translation for palette files */ 14788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) 1481c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p hist PNG_DEPSTRUCT; /* histogram */ 14828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1484c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED 1485c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row filter selection */ 1486c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights for previous rows */ 1487c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of previous row(s) */ 1488c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous line(s) */ 1489c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for previous line(s) */ 1490c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter calculation cost */ 1491c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter calculation cost */ 14928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1494c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TIME_RFC1123_SUPPORTED 1495c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */ 14968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 14978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.0.6 */ 14998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FREE_ME_SUPPORTED 1501c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ 15028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1504c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_CHUNKS_SUPPORTED 1505c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp user_chunk_ptr PNG_DEPSTRUCT; 1506c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read chunk handler */ 15078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1509c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 1510c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_chunk_list PNG_DEPSTRUCT; 1511c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep chunk_list PNG_DEPSTRUCT; 15128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.0.3 */ 1515c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 1516c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte rgb_to_gray_status PNG_DEPSTRUCT; 15178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* These were changed from png_byte in libpng-1.0.6 */ 1518c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT; 1519c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT; 1520c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT; 15218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.4 (renamed in 1.0.9) */ 15248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_MNG_FEATURES_SUPPORTED) || \ 15258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 15268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1527c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Changed from png_byte to png_uint_32 at version 1.2.0 */ 15288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_1_0_X 1529c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte mng_features_permitted PNG_DEPSTRUCT; 15308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1531c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 mng_features_permitted PNG_DEPSTRUCT; 15328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */ 15338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.7 */ 15368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1537c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_gamma PNG_DEPSTRUCT; 15388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ 1541c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_MNG_FEATURES_SUPPORTED 1542c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte filter_type PNG_DEPSTRUCT; 15438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1545c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_1_0_X 15468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */ 1547c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 row_buf_size PNG_DEPSTRUCT; 15488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.2.0 */ 1551c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_ASSEMBLER_CODE_SUPPORTED 1552c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef PNG_1_0_X 1553c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifdef PNG_MMX_CODE_SUPPORTED 1554c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte mmx_bitdepth_threshold PNG_DEPSTRUCT; 1555c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 mmx_rowbytes_threshold PNG_DEPSTRUCT; 15568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 1557c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 asm_flags PNG_DEPSTRUCT; 15588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 15598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ 15628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_MEM_SUPPORTED 1563c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for mem functions */ 1564c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for allocating memory */ 1565c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_free_ptr free_fn PNG_DEPSTRUCT; /* function for freeing memory */ 15668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.13 and 1.2.0 */ 1569c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ 15708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1571c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_DITHER_SUPPORTED 15728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following three members were added at version 1.0.14 and 1.2.4 */ 1573c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */ 1574c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original index currently is */ 1575c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* in the palette */ 1576c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index points to this */ 1577c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* palette color */ 15788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New members added in libpng-1.0.16 and 1.2.6 */ 1581c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_byte compression_type PNG_DEPSTRUCT; 15828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1583c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_LIMITS_SUPPORTED 1584c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 user_width_max PNG_DEPSTRUCT; 1585c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 user_height_max PNG_DEPSTRUCT; 15868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 15878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New member added in libpng-1.0.25 and 1.2.17 */ 1589c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 1590c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Storage for unknown chunk that the library doesn't recognize. */ 1591c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_unknown_chunk unknown_chunk PNG_DEPSTRUCT; 15928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1593c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1594c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 1595c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_indexp index PNG_DEPSTRUCT; 1596c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 total_data_read; 1597c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1598c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1599c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* New members added in libpng-1.2.26 */ 1600c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT; 1601c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 old_prev_row_size PNG_DEPSTRUCT; 1602c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1603c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* New member added in libpng-1.2.30 */ 1604c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */ 16058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 16068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This triggers a compiler error in png.c, if png.c and png.h 16098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * do not agree upon the version number. 16108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1611c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnertypedef png_structp version_1_2_46; 16128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_struct FAR * FAR * png_structpp; 16148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Here are the function definitions most commonly used. This is not 16168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the place to find out how to use libpng. See libpng.txt for the 16178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * full explanation, see example.c for the summary. This just provides 16188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * a simple one line description of the use of each function. 16198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 16208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns the version number of the library */ 16228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void)); 16238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Tell lib we have already handled the first <num_bytes> magic bytes. 16258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Handling more than 8 bytes from the beginning of the file is an error. 16268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 16278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, 16288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int num_bytes)); 16298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a 16318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG file. Returns zero if the supplied bytes match the 8-byte PNG 16328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * signature, and non-zero otherwise. Having num_to_check == 0 or 16338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * start > 7 will always fail (ie return non-zero). 16348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 16358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, 16368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_size_t num_to_check)); 16378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Simple signature checking function. This is the same as calling 16398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). 16408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1641c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)) PNG_DEPRECATED; 16428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Allocate and initialize png_ptr struct for reading, and any other memory. */ 16448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_structp,png_create_read_struct) 16458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1646c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; 16478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Allocate and initialize png_ptr struct for writing, and any other memory */ 16498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_structp,png_create_write_struct) 16508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1651c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; 16528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_WRITE_SUPPORTED 16548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size) 16558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 16568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 16578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_WRITE_SUPPORTED 16598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_buffer_size) 16608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_uint_32 size)); 16618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 16628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Reset the compression stream */ 16648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr)); 16658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ 16678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_MEM_SUPPORTED 16688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_structp,png_create_read_struct_2) 16698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 16708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1671c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; 16728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_structp,png_create_write_struct_2) 16738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 16748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1675c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; 16768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 16778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write a PNG chunk - size, type, (optional) data, CRC. */ 16798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, 16808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep chunk_name, png_bytep data, png_size_t length)); 16818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write the start of a PNG chunk - length and chunk name. */ 16838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, 16848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep chunk_name, png_uint_32 length)); 16858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write the data of a PNG chunk started with png_write_chunk_start(). */ 16878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, 16888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep data, png_size_t length)); 16898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ 16918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); 16928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Allocate and initialize the info structure */ 16948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_infop,png_create_info_struct) 1695c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_ALLOCATED; 16968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 16988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Initialize the info structure (old interface - DEPRECATED) */ 1699c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr)) 1700c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_DEPRECATED; 17018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef png_info_init 17028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_info_init(info_ptr) png_info_init_3(&info_ptr,\ 17038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_sizeof(png_info)); 17048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, 17078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_size_t png_info_struct_size)); 17088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Writes all the PNG information before the image. */ 17108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, 17118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 17128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, 17138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 17148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1715c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1716c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read the information before the actual image data. */ 17178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, 17188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 17198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1721c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TIME_RFC1123_SUPPORTED 17228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_charp,png_convert_to_rfc1123) 17238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_timep ptime)); 17248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1726c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_CONVERT_tIME_SUPPORTED 1727c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Convert from a struct tm to png_time */ 17288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, 17298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct tm FAR * ttime)); 17308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1731c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Convert from time_t to png_time. Uses gmtime() */ 17328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, 17338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project time_t ttime)); 1734c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif /* PNG_CONVERT_tIME_SUPPORTED */ 17358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1736c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_EXPAND_SUPPORTED 17378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ 17388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); 1739c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_1_0_X 17408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp 17418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr)); 17428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); 17448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); 17458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 17468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Deprecated */ 1747c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp 1748c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_ptr)) PNG_DEPRECATED; 17498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 17538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Use blue, green, red order for pixels. */ 17548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); 17558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1757c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED 17588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Expand the grayscale to 24-bit RGB if necessary. */ 17598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); 17608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1762c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 17638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Reduce RGB to grayscale. */ 17648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 17658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, 17668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int error_action, double red, double green )); 17678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, 17698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int error_action, png_fixed_point red, png_fixed_point green )); 17708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp 17718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr)); 17728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, 17758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_colorp palette)); 17768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1777c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED 17788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); 17798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ 17828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) 17838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); 17848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ 17878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) 17888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); 17898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 17908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 17928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ 17938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, 17948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 filler, int flags)); 17958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The values of the PNG_FILLER_ defines should NOT be changed */ 17968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILLER_BEFORE 0 17978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILLER_AFTER 1 17988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ 1799c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_1_0_X 18008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, 18018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 filler, int flags)); 18028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ 18048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 18068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Swap bytes in 16-bit depth files. */ 18078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); 18088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) 18118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ 18128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr)); 18138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) 18168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Swap packing order of pixels in bytes. */ 18178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr)); 18188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 18218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Converts files to legal bit depths. */ 18228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, 18238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_8p true_bits)); 18248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ 18278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_INTERLACING_SUPPORTED) 18288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Have the code handle the interlacing. Returns the number of passes. */ 18298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); 18308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 18338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Invert monochrome files */ 18348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); 18358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1837c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_BACKGROUND_SUPPORTED 18388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Handle alpha and tRNS by replacing with a background color. */ 18398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 18408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, 18418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p background_color, int background_gamma_code, 18428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int need_expand, double background_gamma)); 18438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_GAMMA_UNKNOWN 0 18458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_GAMMA_SCREEN 1 18468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_GAMMA_FILE 2 18478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_GAMMA_UNIQUE 3 18488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1850c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_16_TO_8_SUPPORTED 1851c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Strip the second byte of information from a 16-bit depth file. */ 18528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); 18538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1855c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_DITHER_SUPPORTED 18568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Turn on dithering, and reduce the palette to the number of colors available. */ 18578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, 18588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_colorp palette, int num_palette, int maximum_colors, 18598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16p histogram, int full_dither)); 18608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1862c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GAMMA_SUPPORTED 18638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Handle gamma correction. Screen_gamma=(display_exponent) */ 18648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 18658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, 18668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double screen_gamma, double default_file_gamma)); 18678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 18718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 18728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 18738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */ 18748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Deprecated and will be removed. Use png_permit_mng_features() instead. */ 18758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, 1876c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int empty_plte_permitted)) PNG_DEPRECATED; 18778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1880c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_FLUSH_SUPPORTED 18818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Set how many lines between output flushes - 0 for no flushing */ 18828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); 18838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Flush the current PNG output buffer */ 18848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); 18858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1887c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Optional update palette with requested transformations */ 18888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); 18898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1890c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Optional call to update the users info structure */ 18918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, 18928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 18938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1895c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read one or more rows of image data. */ 18968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, 18978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); 18988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 18998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1901c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read a row of data. */ 19028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, 19038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep row, 19048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep display_row)); 19058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 19068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1907c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 1908c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Build image index for partial image decoding. */ 1909c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_build_index) PNGARG((png_structp png_ptr)); 1910c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_configure_decoder) 1911c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr, int *row_offset, int pass)); 1912c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 1913c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1914c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 19158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1916c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read the whole image into memory at once. */ 19178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, 19188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytepp image)); 19198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 19208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1921c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Write a row of image data */ 19228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, 19238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep row)); 19248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1925c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Write a few rows of image data */ 19268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, 19278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytepp row, png_uint_32 num_rows)); 19288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1929c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Write the image data */ 19308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, 19318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytepp image)); 19328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1933c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Writes the end of the PNG file. */ 19348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, 19358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 19368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1938c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read the end of the PNG file. */ 19398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, 19408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr)); 19418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 19428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1943c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Free any memory associated with the png_info_struct */ 19448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, 19458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infopp info_ptr_ptr)); 19468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1947c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Free any memory associated with the png_struct and the png_info_structs */ 19488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp 19498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); 19508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1951c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Free all memory used by the read (old method - NOT DLL EXPORTED) */ 19528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, 1953c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop end_info_ptr)) PNG_DEPRECATED; 19548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1955c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Free any memory associated with the png_struct and the png_info_structs */ 19568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_destroy_write_struct) 19578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); 19588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1959c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ 1960c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern void png_write_destroy PNGARG((png_structp png_ptr)) PNG_DEPRECATED; 19618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1962c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Set the libpng method of handling chunk CRC errors */ 19638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, 19648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int crit_action, int ancil_action)); 19658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Values for png_set_crc_action() to say how to handle CRC errors in 19678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ancillary and critical chunks, and whether to use the data contained 19688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * therein. Note that it is impossible to "discard" data in a critical 19698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * chunk. For versions prior to 0.90, the action was always error/quit, 19708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * whereas in version 0.90 and later, the action for CRC errors in ancillary 19718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * chunks is warn/discard. These values should NOT be changed. 19728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 19738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * value action:critical action:ancillary 19748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 19758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ 19768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ 19778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ 19788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ 19798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ 19808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ 19818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These functions give the user control over the scan-line filtering in 19838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng and the compression methods used by zlib. These functions are 19848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * mainly useful for testing, as the defaults should work with most users. 19858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Those users who are tight on memory or want faster performance at the 19868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * expense of compression can modify them. See the compression library 19878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * header file (zlib.h) for an explination of the compression functions. 19888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 19898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1990c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Set the filtering method(s) used by libpng. Currently, the only valid 19918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * value for "method" is 0. 19928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 19938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, 19948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int filters)); 19958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Flags for png_set_filter() to say which filters to use. The flags 19978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * are chosen so that they don't conflict with real filter types 19988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * below, in case they are supplied instead of the #defined constants. 19998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * These values should NOT be changed. 20008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_NO_FILTERS 0x00 20028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_NONE 0x08 20038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_SUB 0x10 20048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_UP 0x20 20058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_AVG 0x40 20068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_PAETH 0x80 20078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ 20088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_FILTER_AVG | PNG_FILTER_PAETH) 20098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. 20118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * These defines should NOT be changed. 20128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_NONE 0 20148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_SUB 1 20158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_UP 2 20168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_AVG 3 20178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_PAETH 4 20188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_VALUE_LAST 5 20198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */ 20218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ 20228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * defines, either the default (minimum-sum-of-absolute-differences), or 20238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the experimental method (weighted-minimum-sum-of-absolute-differences). 20248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 20258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Weights are factors >= 1.0, indicating how important it is to keep the 20268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * filter type consistent between rows. Larger numbers mean the current 20278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * filter is that many times as likely to be the same as the "num_weights" 20288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * previous filters. This is cumulative for each previous row with a weight. 20298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * There needs to be "num_weights" values in "filter_weights", or it can be 20308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * NULL if the weights aren't being specified. Weights have no influence on 20318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the selection of the first row filter. Well chosen weights can (in theory) 20328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * improve the compression for a given image. 20338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 20348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Costs are factors >= 1.0 indicating the relative decoding costs of a 20358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * filter type. Higher costs indicate more decoding expense, and are 20368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * therefore less likely to be selected over a filter with lower computational 20378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * costs. There needs to be a value in "filter_costs" for each valid filter 20388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't 20398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * setting the costs. Costs try to improve the speed of decompression without 20408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unduly increasing the compressed image size. 20418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 20428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * A negative weight or cost indicates the default value is to be used, and 20438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * values in the range [0.0, 1.0) indicate the value is to remain unchanged. 20448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The default values for both weights and costs are currently 1.0, but may 20458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * change if good general weighting/cost heuristics can be found. If both 20468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the weights and costs are set to 1.0, this degenerates the WEIGHTED method 20478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to the UNWEIGHTED method, but with added encoding time/computation. 20488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 20508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr, 20518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int heuristic_method, int num_weights, png_doublep filter_weights, 20528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_doublep filter_costs)); 20538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 20548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ 20558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Heuristic used for row filter selection. These defines should NOT be 20578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * changed. 20588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ 20608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ 20618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ 20628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ 20638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Set the library compression level. Currently, valid values range from 20658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 20668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (0 - no compression, 9 - "maximal" compression). Note that tests have 20678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * shown that zlib compression levels 3-6 usually perform as well as level 9 20688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * for PNG images, and do considerably fewer caclulations. In the future, 20698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * these values may not correspond directly to the zlib compression levels. 20708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr, 20728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int level)); 20738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_mem_level) 20758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, int mem_level)); 20768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_strategy) 20788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, int strategy)); 20798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_window_bits) 20818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, int window_bits)); 20828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr, 20848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int method)); 20858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These next functions are called for input/output, memory, and error 20878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, 20888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and call standard C I/O routines such as fread(), fwrite(), and 20898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * fprintf(). These functions can be made to use other I/O routines 20908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * at run time for those applications that need to handle I/O in a 20918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * different manner by calling png_set_???_fn(). See libpng.txt for 20928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * more information. 20938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 20948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2095c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_STDIO_SUPPORTED 20968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Initialize the input/output for the PNG file to the default functions. */ 20978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)); 20988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 20998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Replace the (error and abort), and warning functions with user 21018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * supplied functions. If no messages are to be printed you must still 21028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * write and use replacement functions. The replacement error_fn should 21038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * still do a longjmp to the last setjmp location if you are using this 21048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * method of error handling. If error_fn or warning_fn is NULL, the 21058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * default function will be used. 21068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 21078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr, 21098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); 21108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Return the user pointer associated with the error functions */ 21128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr)); 21138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Replace the default data output functions with a user supplied one(s). 21158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If buffered output is not used, then output_flush_fn can be set to NULL. 21168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time 21178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * output_flush_fn will be ignored (and thus can be NULL). 2118c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * It is probably a mistake to use NULL for output_flush_fn if 2119c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * write_data_fn is not also NULL unless you have built libpng with 2120c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's 2121c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * default flush function, which uses the standard *FILE structure, will 2122c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * be used. 21238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 21248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr, 21258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); 21268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Replace the default data input function with a user supplied one. */ 21288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr, 21298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp io_ptr, png_rw_ptr read_data_fn)); 21308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2131c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 2132c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Set the data seek function with a user supplied one. 2133c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * REQUIRED by partial image decode. 2134c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 2135c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_set_seek_fn) PNGARG((png_structp png_ptr, 2136c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_seek_ptr seek_data_fn)); 2137c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 2138c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 21398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Return the user pointer associated with the I/O functions */ 21408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr)); 21418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr, 21438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_read_status_ptr read_row_fn)); 21448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr, 21468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_write_status_ptr write_row_fn)); 21478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_MEM_SUPPORTED 21498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Replace the default memory allocation functions with user supplied one(s). */ 21508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr, 21518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); 21528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Return the user pointer associated with the memory functions */ 21538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr)); 21548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 21558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 21578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_LEGACY_SUPPORTED) 21588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp 21598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_user_transform_ptr read_user_transform_fn)); 21608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 21618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 21638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_LEGACY_SUPPORTED) 21648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp 21658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_user_transform_ptr write_user_transform_fn)); 21668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 21678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 21698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 21708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_LEGACY_SUPPORTED) 21718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp 21728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_voidp user_transform_ptr, int user_transform_depth, 21738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int user_transform_channels)); 21748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Return the user pointer associated with the user transform functions */ 21758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_user_transform_ptr) 21768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 21778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 21788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_CHUNKS_SUPPORTED 21808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr, 21818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); 21828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp 21838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr)); 21848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 21858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 21868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 21878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Sets the function callbacks for the push reader, and a pointer to a 21888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * user-defined structure available to the callback functions. 21898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 21908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr, 21918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp progressive_ptr, 21928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, 21938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_progressive_end_ptr end_fn)); 21948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2195c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Returns the user pointer associated with the push read functions */ 21968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_get_progressive_ptr) 21978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 21988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2199c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Function to be called when data becomes available */ 22008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, 22018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); 22028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2203c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Function that combines rows. Not very much different than the 22048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_combine_row() call. Is this even used????? 22058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 22068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, 22078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep old_row, png_bytep new_row)); 22088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 22098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, 2211c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 size)) PNG_ALLOCATED; 22128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2213c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_1_0_X 22148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_malloc_warn png_malloc 22158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 22168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng version 1.2.4 */ 22178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, 2218c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 size)) PNG_ALLOCATED; 22198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 22208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2221c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Frees a pointer allocated by png_malloc() */ 22228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); 22238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2224c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_1_0_X 22258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Function to allocate memory for zlib. */ 22268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items, 22278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uInt size)); 22288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Function to free memory for zlib */ 22308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr)); 22318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 22328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Free data that was allocated internally */ 22348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, 22358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_32 free_me, int num)); 22368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FREE_ME_SUPPORTED 22378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Reassign responsibility for freeing existing data, whether allocated 2238c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * by libpng or by the application 2239c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 22408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, 22418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int freer, png_uint_32 mask)); 22428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2243c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Assignments for png_data_freer */ 22448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_DESTROY_WILL_FREE_DATA 1 22458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SET_WILL_FREE_DATA 1 22468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_USER_WILL_FREE_DATA 2 22478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Flags for png_ptr->free_me and info_ptr->free_me */ 22488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_HIST 0x0008 22498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_ICCP 0x0010 22508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_SPLT 0x0020 22518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_ROWS 0x0040 22528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_PCAL 0x0080 22538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_SCAL 0x0100 22548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_UNKN 0x0200 22558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_LIST 0x0400 22568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_PLTE 0x1000 22578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_TRNS 0x2000 22588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_TEXT 0x4000 22598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_ALL 0x7fff 22608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ 22618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_MEM_SUPPORTED 22638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, 2264c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 size)) PNG_ALLOCATED; 22658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, 22668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp ptr)); 22678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 22688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr, 2270c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp s1, png_voidp s2, png_uint_32 size)) PNG_DEPRECATED; 22718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr, 2273c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_voidp s1, int value, png_uint_32 size)) PNG_DEPRECATED; 22748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(USE_FAR_KEYWORD) /* memory model conversion function */ 22768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, 22778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int check)); 22788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* USE_FAR_KEYWORD */ 22798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2280c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_NO_ERROR_TEXT 22818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Fatal error in PNG image of libpng - can't continue */ 22828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, 2283c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_const_charp error_message)) PNG_NORETURN; 22848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The same, but the chunk name is prepended to the error string. */ 22868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, 2287c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_const_charp error_message)) PNG_NORETURN; 2288c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#else 2289c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Fatal error in PNG image of libpng - can't continue */ 2290c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN; 2291c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 22928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WARNINGS 22948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Non-fatal error in libpng. Can continue, but may have a problem. */ 22958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, 22968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp warning_message)); 22978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 22988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_SUPPORTED 22998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Non-fatal error in libpng, chunk name is prepended to message. */ 23008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, 23018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp warning_message)); 23028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_SUPPORTED */ 23038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_NO_WARNINGS */ 23048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The png_set_<chunk> functions are for storing values in the png_info_struct. 23068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Similarly, the png_get_<chunk> calls are used to read values from the 23078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_info_struct, either storing the parameters in the passed variables, or 23088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * setting pointers into the png_info_struct where the data is stored. The 23098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_<chunk> functions return a non-zero value if the data was available 23108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in info_ptr, or return zero and do not change any of the parameters if the 23118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * data was not available. 23128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 23138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * These functions should be used instead of directly accessing png_info 23148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to avoid problems with future changes in the size and internal layout of 23158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_info_struct. 23168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 23178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns "flag" if chunk data is valid in info_ptr. */ 23188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, 23198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr, png_uint_32 flag)); 23208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns number of bytes needed to hold a transformed row. */ 23228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr, 23238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 23248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2325c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INFO_IMAGE_SUPPORTED 23268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns row_pointers, which is an array of pointers to scanlines that was 2327c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * returned from png_read_png(). 2328c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 23298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr, 23308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 23318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Set row_pointers, which is an array of pointers to scanlines for use 2332c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * by png_write_png(). 2333c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 23348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr, 23358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_bytepp row_pointers)); 23368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 23378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns number of color channels in image. */ 23398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, 23408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 23418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_EASY_ACCESS_SUPPORTED 23438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image width in pixels. */ 23448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp 23458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image height in pixels. */ 23488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp 23498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image bit_depth. */ 23528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp 23538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image color_type. */ 23568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp 23578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image filter_type. */ 23608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp 23618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image interlace_type. */ 23648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp 23658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image compression_type. */ 23688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp 23698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image resolution in pixels per meter, from pHYs chunk data. */ 23728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp 23738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp 23758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp 23778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns pixel aspect ratio, computed from pHYs chunk data. */ 23808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 23818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp 23828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 23848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ 23868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp 23878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp 23898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp 23918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp 23938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_ptr, png_infop info_ptr)); 23948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_EASY_ACCESS_SUPPORTED */ 23968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 23978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Returns pointer to signature string read from PNG header */ 23988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, 23998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 24008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2401c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_bKGD_SUPPORTED 24028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, 24038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_color_16p *background)); 24048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2406c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_bKGD_SUPPORTED 24078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, 24088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_color_16p background)); 24098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2411c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_cHRM_SUPPORTED 24128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 24138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, 24148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, double *white_x, double *white_y, double *red_x, 24158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double *red_y, double *green_x, double *green_y, double *blue_x, 24168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double *blue_y)); 24178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 24198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr, 24208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point 24218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, 24228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point 24238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *int_blue_x, png_fixed_point *int_blue_y)); 24248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2427c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_cHRM_SUPPORTED 24288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 24298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, 24308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, double white_x, double white_y, double red_x, 24318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double red_y, double green_x, double green_y, double blue_x, double blue_y)); 24328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 24348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr, 24358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, 24368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 24378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 24388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point int_blue_y)); 24398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2442c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_gAMA_SUPPORTED 24438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 24448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, 24458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, double *file_gamma)); 24468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr, 24488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_fixed_point *int_file_gamma)); 24498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2451c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_gAMA_SUPPORTED 24528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 24538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, 24548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, double file_gamma)); 24558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr, 24578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_fixed_point int_file_gamma)); 24588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2460c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_hIST_SUPPORTED 24618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, 24628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_16p *hist)); 24638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2465c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_hIST_SUPPORTED 24668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, 24678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_16p hist)); 24688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 24708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr, 24718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, 24728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *bit_depth, int *color_type, int *interlace_method, 24738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *compression_method, int *filter_method)); 24748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 24758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr, 24768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, 24778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int color_type, int interlace_method, int compression_method, 24788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int filter_method)); 24798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2480c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 24818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, 24828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, 24838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *unit_type)); 24848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2486c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 24878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, 24888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, 24898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int unit_type)); 24908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2492c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pCAL_SUPPORTED 24938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, 24948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, 24958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *type, int *nparams, png_charp *units, png_charpp *params)); 24968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 24978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2498c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pCAL_SUPPORTED 24998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, 25008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, 25018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int type, int nparams, png_charp units, png_charpp params)); 25028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2504c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 25058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, 25068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 25078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2509c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 25108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, 25118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); 25128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 25148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, 25158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_colorp *palette, int *num_palette)); 25168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 25178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, 25188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_colorp palette, int num_palette)); 25198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2520c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sBIT_SUPPORTED 25218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, 25228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_color_8p *sig_bit)); 25238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2525c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sBIT_SUPPORTED 25268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, 25278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_color_8p sig_bit)); 25288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2530c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sRGB_SUPPORTED 25318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, 25328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int *intent)); 25338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2535c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sRGB_SUPPORTED 25368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, 25378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int intent)); 25388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, 25398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int intent)); 25408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2542c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_iCCP_SUPPORTED 25438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, 25448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_charpp name, int *compression_type, 25458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charpp profile, png_uint_32 *proflen)); 25468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Note to maintainer: profile should be png_bytepp */ 25478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2549c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_iCCP_SUPPORTED 25508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, 25518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_charp name, int compression_type, 25528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp profile, png_uint_32 proflen)); 25538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Note to maintainer: profile should be png_bytep */ 25548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2556c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sPLT_SUPPORTED 25578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, 25588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_sPLT_tpp entries)); 25598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2561c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sPLT_SUPPORTED 25628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, 25638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_sPLT_tp entries, int nentries)); 25648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2566c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TEXT_SUPPORTED 25678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_get_text also returns the number of text chunks in *num_text */ 25688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, 25698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_textp *text_ptr, int *num_text)); 25708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 25728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 25738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Note while png_set_text() will accept a structure whose text, 25748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * language, and translated keywords are NULL pointers, the structure 25758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * returned by png_get_text will always contain regular 25768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * zero-terminated C strings. They might be empty strings but 25778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * they will never be NULL pointers. 25788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 25798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2580c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TEXT_SUPPORTED 25818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, 25828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_textp text_ptr, int num_text)); 25838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2585c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tIME_SUPPORTED 25868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, 25878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_timep *mod_time)); 25888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2590c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tIME_SUPPORTED 25918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, 25928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_timep mod_time)); 25938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 25948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2595c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tRNS_SUPPORTED 25968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, 25978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_bytep *trans, int *num_trans, 25988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p *trans_values)); 25998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2601c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tRNS_SUPPORTED 26028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, 26038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_bytep trans, int num_trans, 26048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p trans_values)); 26058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2607c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tRNS_SUPPORTED 26088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2610c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sCAL_SUPPORTED 26118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 26128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, 26138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int *unit, double *width, double *height)); 26148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 26158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 26168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr, 26178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)); 26188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_sCAL_SUPPORTED */ 26218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2622c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sCAL_SUPPORTED 26238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 26248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, 26258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int unit, double width, double height)); 26268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 26278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 26288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr, 26298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)); 26308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ 26338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2634c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 2635c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Provide a list of chunks and how they are to be handled, if the built-in 26368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project handling or default unknown chunk handling is not desired. Any chunks not 26378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project listed will be handled in the default manner. The IHDR and IEND chunks 26388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project must not be listed. 26398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project keep = 0: follow default behaviour 26408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project = 1: do not keep 26418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project = 2: keep only if safe-to-copy 26428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project = 3: keep even if unsafe-to-copy 26438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/ 26448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp 26458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, int keep, png_bytep chunk_list, int num_chunks)); 2646c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep 2647c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner chunk_name)); 2648c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 2649c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 26508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, 26518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); 26528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_set_unknown_chunk_location) 26538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location)); 26548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp 26558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); 26568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 26588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Png_free_data() will turn off the "valid" flag for anything it frees. 2659c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * If you need to turn it off for a chunk that your application has freed, 2660c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); 2661c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 26628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr, 26638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, int mask)); 26648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2665c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INFO_IMAGE_SUPPORTED 26668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The "params" pointer is currently not used and is for future expansion. */ 26678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, 26688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, 26698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int transforms, 26708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp params)); 26718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr, 26728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_infop info_ptr, 26738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int transforms, 26748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_voidp params)); 26758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 26768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 26778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Define PNG_DEBUG at compile time for debugging information. Higher 26788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * numbers for PNG_DEBUG mean more debugging information. This has 26798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * only been added since version 0.95 so it is not implemented throughout 26808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng yet, but more support will be added as needed. 26818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 26828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_DEBUG 26838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if (PNG_DEBUG > 0) 26848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) 26858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <crtdbg.h> 26868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if (PNG_DEBUG > 1) 2687c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef _DEBUG 2688c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define _DEBUG 2689c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 2690c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef png_debug 2691c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE) 2692c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 2693c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef png_debug1 2694c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1) 2695c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 2696c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef png_debug2 2697c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) 2698c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 26998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 27008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else /* PNG_DEBUG_FILE || !_MSC_VER */ 27018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_DEBUG_FILE 27028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_DEBUG_FILE stderr 27038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_DEBUG_FILE */ 2704c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 27058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if (PNG_DEBUG > 1) 2706c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO 2707c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * compilers. 2708c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 2709c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifdef __STDC__ 2710c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug 2711c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug(l,m) \ 2712c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2713c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2714c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ 2715c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ 2716c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2717c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2718c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug1 2719c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug1(l,m,p1) \ 2720c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2721c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2722c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ 2723c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \ 2724c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2725c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2726c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug2 2727c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug2(l,m,p1,p2) \ 2728c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2729c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2730c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ 2731c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \ 2732c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2733c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2734c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# else /* __STDC __ */ 2735c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug 2736c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug(l,m) \ 2737c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2738c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2739c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner char format[256]; \ 2740c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ 2741c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ 2742c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner m,PNG_STRING_NEWLINE); \ 2743c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,format); \ 2744c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2745c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2746c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug1 2747c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug1(l,m,p1) \ 2748c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2749c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2750c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner char format[256]; \ 2751c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ 2752c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ 2753c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner m,PNG_STRING_NEWLINE); \ 2754c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,format,p1); \ 2755c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2756c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2757c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifndef png_debug2 2758c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# define png_debug2(l,m,p1,p2) \ 2759c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner { \ 2760c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_tabs=l; \ 2761c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner char format[256]; \ 2762c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ 2763c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ 2764c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner m,PNG_STRING_NEWLINE); \ 2765c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner fprintf(PNG_DEBUG_FILE,format,p1,p2); \ 2766c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner } 2767c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif 2768c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# endif /* __STDC __ */ 27698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* (PNG_DEBUG > 1) */ 2770c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 27718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* _MSC_VER */ 27728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* (PNG_DEBUG > 0) */ 27738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_DEBUG */ 27748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef png_debug 27758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_debug(l, m) 27768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 27778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef png_debug1 27788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_debug1(l, m, p1) 27798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 27808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef png_debug2 27818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_debug2(l, m, p1, p2) 27828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 27838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 27848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); 27858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr)); 27868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)); 27878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr)); 27888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 27898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_MNG_FEATURES_SUPPORTED 27908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp 27918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_uint_32 mng_features_permitted)); 27928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 27938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 27948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* For use in png_set_keep_unknown, added to version 1.2.6 */ 27958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 27968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HANDLE_CHUNK_NEVER 1 27978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HANDLE_CHUNK_IF_SAFE 2 27988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HANDLE_CHUNK_ALWAYS 3 27998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added to version 1.2.0 */ 2801c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_ASSEMBLER_CODE_SUPPORTED 2802c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_MMX_CODE_SUPPORTED 28038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */ 28048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */ 28058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04 28068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08 28078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10 28088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20 28098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40 28108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80 28118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */ 28128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ 28148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_READ_INTERLACE \ 28158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ 28168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ 28178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ 28188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ) 28198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MMX_WRITE_FLAGS ( 0 ) 28208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \ 28228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \ 28238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_MMX_READ_FLAGS \ 28248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project | PNG_MMX_WRITE_FLAGS ) 28258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SELECT_READ 1 28278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SELECT_WRITE 2 28288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_MMX_CODE_SUPPORTED */ 28298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2830c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_1_0_X 28318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c */ 28328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask) 28338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((int flag_select, int *compilerID)); 28348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c */ 28368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_asm_flagmask) 28378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((int flag_select)); 28388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c */ 28408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_asm_flags) 28418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 28428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c */ 28448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold) 28458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 28468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c */ 28488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold) 28498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr)); 28508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngset.c */ 28528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_asm_flags) 28538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_uint_32 asm_flags)); 28548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngset.c */ 28568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_mmx_thresholds) 28578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold, 28588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 mmx_rowbytes_threshold)); 28598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */ 28618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2862c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifndef PNG_1_0_X 28638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png.c, pnggccrd.c, or pngvcrd.c */ 28648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(int,png_mmx_support) PNGARG((void)); 2865c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif /* PNG_1_0_X */ 28668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */ 28678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Strip the prepended error numbers ("#nnn ") from error and warning 2869c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * messages before passing them to the error or warning handler. 2870c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 28718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_ERROR_NUMBERS_SUPPORTED 28728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp 28738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_uint_32 strip_mode)); 28748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 28758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng-1.2.6 */ 28778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SET_USER_LIMITS_SUPPORTED 28788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp 28798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); 28808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp 28818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr)); 28828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp 28838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_ptr)); 28848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2885c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Maintainer: Put new public prototypes here ^, in libpng.3, and in 2886c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * project defs 2887c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 28888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED 28908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* With these routines we avoid an integer divide, which will be slower on 28918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * most machines. However, it does take more operations than the corresponding 28928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * divide method, so it may be slower on a few RISC systems. There are two 28938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. 28948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 28958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Note that the rounding factors are NOT supposed to be the same! 128 and 28968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 32768 are correct for the NODIV code; 127 and 32767 are correct for the 28978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * standard method. 28988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 28998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] 29008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ 29038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_composite(composite, fg, alpha, bg) \ 29058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \ 29068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project + (png_uint_16)(bg)*(png_uint_16)(255 - \ 29078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_16)(alpha)) + (png_uint_16)128); \ 29088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } 29098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_composite_16(composite, fg, alpha, bg) \ 29118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \ 29128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project + (png_uint_32)(bg)*(png_uint_32)(65535L - \ 29138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_32)(alpha)) + (png_uint_32)32768L); \ 29148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } 29158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2916c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#else /* Standard method using integer division */ 29178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_composite(composite, fg, alpha, bg) \ 29198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ 29208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ 29218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_16)127) / 255) 29228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_composite_16(composite, fg, alpha, bg) \ 29248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ 29258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ 29268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_uint_32)32767) / (png_uint_32)65535L) 29278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ 29298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Inline macros to do direct reads of bytes from the input buffer. These 29318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * require that you are using an architecture that uses PNG byte ordering 29328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (MSB first) and supports unaligned data storage. I think that PowerPC 29338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in big-endian mode and 680x0 are the only ones that will support this. 29348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The x86 line of processors definitely do not. The png_get_int_32() 29358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * routine also assumes we are using two's complement format for negative 29368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * values, which is almost certainly true. 29378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 2938c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_BIG_ENDIAN_SUPPORTED 29398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) 29408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) 29418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define png_get_int_32(buf) ( *((png_int_32p) (buf))) 29428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 29438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); 29448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); 29458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); 29468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */ 29478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(png_uint_32,png_get_uint_31) 29488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_structp png_ptr, png_bytep buf)); 29498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* No png_get_int_16 -- may be added if there's a real need for it. */ 29508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Place a 32-bit number into a buffer in PNG byte order (big-endian). 29528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_save_uint_32) 29548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_bytep buf, png_uint_32 i)); 29558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_save_int_32) 29568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_bytep buf, png_int_32 i)); 29578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Place a 16-bit number into a buffer in PNG byte order. 29598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The parameter is declared unsigned int, not png_uint_16, 29608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * just to avoid potential problems on pre-ANSI C compilers. 29618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_save_uint_16) 29638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNGARG((png_bytep buf, unsigned int i)); 29648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* No png_save_int_16 -- may be added if there's a real need for it. */ 29658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ************************************************************************* */ 29678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These next functions are used internally in the code. They generally 29698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * shouldn't be used unless you are writing code to add or replace some 29708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functionality in libpng. More information about most functions can 29718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * be found in the files where the functions are located. 29728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Various modes of operation, that are visible to applications because 29768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * they are used for unknown chunk location. 29778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_IHDR 0x01 29798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_PLTE 0x02 29808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_IDAT 0x04 29818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ 29828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_IEND 0x10 29838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2984c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INTERNAL 29858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 29868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* More modes of operation. Note that after an init, mode is set to 29878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * zero automatically when the structure is created. 29888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 29898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_gAMA 0x20 29908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_cHRM 0x40 29918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_sRGB 0x80 29928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_CHUNK_HEADER 0x100 29938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_WROTE_tIME 0x200 29948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 29958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_IS_GRAY 0x800 29968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_PNG_SIGNATURE 0x1000 29978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ 29988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2999c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Flags for the transformations the PNG library does on the image data */ 30008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BGR 0x0001 30018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTERLACE 0x0002 30028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_PACK 0x0004 30038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SHIFT 0x0008 30048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SWAP_BYTES 0x0010 30058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INVERT_MONO 0x0020 30068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_DITHER 0x0040 30078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND 0x0080 30088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_BACKGROUND_EXPAND 0x0100 30098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x0200 unused */ 30108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_16_TO_8 0x0400 30118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RGBA 0x0800 30128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EXPAND 0x1000 30138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_GAMMA 0x2000 30148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_GRAY_TO_RGB 0x4000 30158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FILLER 0x8000L 30168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_PACKSWAP 0x10000L 30178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_SWAP_ALPHA 0x20000L 30188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_STRIP_ALPHA 0x40000L 30198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INVERT_ALPHA 0x80000L 30208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_USER_TRANSFORM 0x100000L 30218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RGB_TO_GRAY_ERR 0x200000L 30228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RGB_TO_GRAY_WARN 0x400000L 30238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ 30248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x800000L Unused */ 30258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ 30268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ 3027c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_PREMULTIPLY_ALPHA 0x4000000L /* Added to libpng-1.2.41 */ 3028c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* by volker */ 30298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x8000000L unused */ 30308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x10000000L unused */ 30318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x20000000L unused */ 30328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x40000000L unused */ 30338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3034c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Flags for png_create_struct */ 30358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_STRUCT_PNG 0x0001 30368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_STRUCT_INFO 0x0002 30378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Scaling factor for filter heuristic weighting calculations */ 30398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_WEIGHT_SHIFT 8 30408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) 30418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COST_SHIFT 3 30428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) 30438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3044c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Flags for the png_ptr->flags rather than declaring a byte for each one */ 30458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 30468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 30478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 30488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 30498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 30508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ZLIB_FINISHED 0x0020 30518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ROW_INIT 0x0040 30528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_FILLER_AFTER 0x0080 30538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 30548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 30558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 30568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 30578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_FREE_PLTE 0x1000 30588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_FREE_TRNS 0x2000 30598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_FREE_HIST 0x4000 30608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L 30618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L 30628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L 30638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L 30648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L 30658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L 30668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */ 30678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */ 30688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x800000L unused */ 30698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x1000000L unused */ 30708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x2000000L unused */ 30718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x4000000L unused */ 30728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x8000000L unused */ 30738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x10000000L unused */ 30748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x20000000L unused */ 30758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* 0x40000000L unused */ 30768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ 30788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_FLAG_CRC_ANCILLARY_NOWARN) 30798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ 30818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_FLAG_CRC_CRITICAL_IGNORE) 30828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ 30848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_FLAG_CRC_CRITICAL_MASK) 30858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3086c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Save typing and make code easier to understand */ 30878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ 30898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project abs((int)((c1).green) - (int)((c2).green)) + \ 30908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project abs((int)((c1).blue) - (int)((c2).blue))) 30918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added to libpng-1.2.6 JB */ 30938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_ROWBYTES(pixel_bits, width) \ 30948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ((pixel_bits) >= 8 ? \ 30958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \ 30968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) ) 30978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 30988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PNG_OUT_OF_RANGE returns true if value is outside the range 3099c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * ideal-delta..ideal+delta. Each argument is evaluated twice. 3100c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * "ideal" and "delta" should be constants, normally simple 3101c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * integers, "value" a variable. Added to libpng-1.2.6 JB 3102c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 31038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_OUT_OF_RANGE(value, ideal, delta) \ 31048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) 31058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3106c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */ 31078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) 3108c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Place to hold the signature string for a PNG file. */ 31098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USE_GLOBAL_ARRAYS 31108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8]; 31118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 31128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 31138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_NO_EXTERN */ 31148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Constant strings for known chunk types. If you need to add a chunk, 31168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * define the name here, and add an invocation of the macro in png.c and 31178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * wherever it's needed. 31188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 31198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_IHDR png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'} 31208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_IDAT png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'} 31218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_IEND png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'} 31228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_PLTE png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'} 31238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_bKGD png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'} 31248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_cHRM png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'} 31258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_gAMA png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'} 31268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_hIST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'} 31278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_iCCP png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'} 31288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_iTXt png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'} 31298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_oFFs png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'} 31308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_pCAL png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'} 31318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sCAL png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'} 31328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_pHYs png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'} 31338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sBIT png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'} 31348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sPLT png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'} 31358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_sRGB png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'} 31368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_tEXt png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'} 31378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_tIME png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} 31388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_tRNS png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} 31398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_zTXt png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} 31408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USE_GLOBAL_ARRAYS 31428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5]; 31438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_IDAT[5]; 31448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_IEND[5]; 31458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_PLTE[5]; 31468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_bKGD[5]; 31478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_cHRM[5]; 31488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_gAMA[5]; 31498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_hIST[5]; 31508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_iCCP[5]; 31518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_iTXt[5]; 31528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_oFFs[5]; 31538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_pCAL[5]; 31548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_sCAL[5]; 31558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_pHYs[5]; 31568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_sBIT[5]; 31578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_sPLT[5]; 31588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_sRGB[5]; 31598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5]; 31608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5]; 31618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5]; 31628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5]; 31638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_USE_GLOBAL_ARRAYS */ 31648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 31668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Initialize png_ptr struct for reading, and allocate any other memory. 31678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (old interface - DEPRECATED - use png_create_read_struct instead). 31688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 3169c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr)) 3170c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_DEPRECATED; 31718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef png_read_init 31728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_read_init(png_ptr) png_read_init_3(&png_ptr, \ 31738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); 31748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 31758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr, 31778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp user_png_ver, png_size_t png_struct_size)); 31788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 31798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr, 31808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t 31818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_info_size)); 31828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 31838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 31858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Initialize png_ptr struct for writing, and allocate any other memory. 31868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (old interface - DEPRECATED - use png_create_write_struct instead). 31878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 3188c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turnerextern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr)) 3189c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_DEPRECATED; 31908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef png_write_init 31918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define png_write_init(png_ptr) png_write_init_3(&png_ptr, \ 31928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); 31938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 31948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr, 31968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp user_png_ver, png_size_t png_struct_size)); 31978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr, 31988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t 31998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_info_size)); 32008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Allocate memory for an internal libpng struct */ 3202c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN png_voidp png_create_struct PNGARG((int type)) PNG_PRIVATE; 32038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Free memory from internal libpng struct */ 3205c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)) PNG_PRIVATE; 32068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr 3208c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner malloc_fn, png_voidp mem_ptr)) PNG_PRIVATE; 32098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, 3210c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_free_ptr free_fn, png_voidp mem_ptr)) PNG_PRIVATE; 32118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Free any memory that info_ptr points to and reset struct. */ 32138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, 3214c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 32158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_1_0_X 32178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Function to allocate memory for zlib. */ 3218c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, 3219c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner uInt size)) PNG_PRIVATE; 32208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Function to free memory for zlib */ 3222c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)) PNG_PRIVATE; 32238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SIZE_T 32258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Function to convert a sizeof an item to png_sizeof item */ 3226c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size)) 3227c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_PRIVATE; 32288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Next four functions are used internally as callbacks. PNGAPI is required 3231c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. 3232c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 32338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr, 3235c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep data, png_size_t length)) PNG_PRIVATE; 32368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 32388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr, 3239c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep buffer, png_size_t length)) PNG_PRIVATE; 32408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr, 3243c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep data, png_size_t length)) PNG_PRIVATE; 32448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3245c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_FLUSH_SUPPORTED 3246c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_STDIO_SUPPORTED 3247c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr)) 3248c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_PRIVATE; 32498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else /* PNG_1_0_X */ 32528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 32538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr, 3254c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep buffer, png_size_t length)) PNG_PRIVATE; 32558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */ 32578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Reset the CRC variable */ 3259c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE; 32608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write the "data" buffer to whatever output you are using. */ 32628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, 3263c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t length)) PNG_PRIVATE; 32648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Read data from whatever input you are using into the "data" buffer */ 32668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, 3267c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t length)) PNG_PRIVATE; 3268c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3269c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 3270c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_seek_data PNGARG((png_structp png_ptr, 3271c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 3272c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 32738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Read bytes into buf, and update png_ptr->crc */ 32758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, 3276c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t length)) PNG_PRIVATE; 32778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Decompress data in a chunk that uses compression */ 32798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ 32808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) 3281c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr, 3282c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int comp_type, png_size_t chunklength, 3283c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t prefix_length, png_size_t *data_length)) PNG_PRIVATE; 32848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 32858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ 3287c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip) 3288c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_PRIVATE); 3289c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3290c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 3291c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ 3292c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN int png_opt_crc_finish PNGARG((png_structp png_ptr, 3293c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 skip, int check_crc) 3294c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_PRIVATE); 3295c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 32968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 32978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Read the CRC from the file and compare it to the libpng calculated CRC */ 3298c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)) PNG_PRIVATE; 32998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 33008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Calculate the CRC over a section of data. Note that we are only 33018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * passing a maximum of 64K on systems that have this as a memory limit, 33028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * since this is the maximum buffer size we can specify. 33038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 33048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, 3305c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t length)) PNG_PRIVATE; 33068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3307c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_FLUSH_SUPPORTED 3308c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_flush PNGARG((png_structp png_ptr)) PNG_PRIVATE; 33098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3311c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Simple function to write the signature */ 3312c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)) PNG_PRIVATE; 33138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3314c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Write various chunks */ 33158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 33168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write the IHDR chunk, and update the png_struct with the necessary 33178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * information. 33188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 33198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, 33208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 height, 33218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int bit_depth, int color_type, int compression_method, int filter_method, 3322c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int interlace_method)) PNG_PRIVATE; 33238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 33248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, 3325c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 num_pal)) PNG_PRIVATE; 33268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 33278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, 3328c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_size_t length)) PNG_PRIVATE; 33298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3330c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)) PNG_PRIVATE; 33318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3332c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_gAMA_SUPPORTED 33338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 3334c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)) 3335c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNG_PRIVATE; 33368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 3338c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, 3339c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point file_gamma)) PNG_PRIVATE; 33408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3343c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_sBIT_SUPPORTED 33448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, 3345c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int color_type)) PNG_PRIVATE; 33468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3348c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_cHRM_SUPPORTED 33498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 33508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, 33518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double white_x, double white_y, 33528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double red_x, double red_y, double green_x, double green_y, 3353c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner double blue_x, double blue_y)) PNG_PRIVATE; 33548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 33568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr, 33578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point int_white_x, png_fixed_point int_white_y, 33588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 33598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 3360c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_blue_y)) PNG_PRIVATE; 33618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3364c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_sRGB_SUPPORTED 33658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, 3366c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int intent)) PNG_PRIVATE; 33678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3369c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_iCCP_SUPPORTED 33708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, 33718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp name, int compression_type, 3372c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp profile, int proflen)) PNG_PRIVATE; 33738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Note to maintainer: profile should be png_bytep */ 33748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3376c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_sPLT_SUPPORTED 33778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, 3378c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_sPLT_tp palette)) PNG_PRIVATE; 33798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3381c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_tRNS_SUPPORTED 33828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, 3383c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16p values, int number, int color_type)) PNG_PRIVATE; 33848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3386c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_bKGD_SUPPORTED 33878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, 3388c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16p values, int color_type)) PNG_PRIVATE; 33898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3391c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_hIST_SUPPORTED 33928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, 3393c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_hist)) PNG_PRIVATE; 33948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 33958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 33968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ 33978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) 33988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, 3399c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp key, png_charpp new_key)) PNG_PRIVATE; 34008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3402c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_tEXt_SUPPORTED 34038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, 3404c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp text, png_size_t text_len)) PNG_PRIVATE; 34058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3407c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_zTXt_SUPPORTED 34088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, 3409c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp text, png_size_t text_len, int compression)) PNG_PRIVATE; 34108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3412c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_iTXt_SUPPORTED 34138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, 34148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int compression, png_charp key, png_charp lang, png_charp lang_key, 3415c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp text)) PNG_PRIVATE; 34168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3418c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ 34198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, 3420c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_textp text_ptr, int num_text)) PNG_PRIVATE; 34218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3423c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_oFFs_SUPPORTED 34248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, 3425c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_int_32 x_offset, png_int_32 y_offset, int unit_type)) PNG_PRIVATE; 34268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3428c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_pCAL_SUPPORTED 34298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, 34308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_int_32 X0, png_int_32 X1, int type, int nparams, 3431c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_charp units, png_charpp params)) PNG_PRIVATE; 34328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3434c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_pHYs_SUPPORTED 34358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, 34368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, 3437c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int unit_type)) PNG_PRIVATE; 34388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3440c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_tIME_SUPPORTED 34418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, 3442c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_timep mod_time)) PNG_PRIVATE; 34438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3445c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_sCAL_SUPPORTED 34468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO) 34478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr, 3448c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int unit, double width, double height)) PNG_PRIVATE; 34498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 34508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 34518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, 3452c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int unit, png_charp width, png_charp height)) PNG_PRIVATE; 34538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Called when finished processing a row of data */ 3458c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; 34598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Internal use only. Called before first row of data */ 3461c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; 34628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3463c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GAMMA_SUPPORTED 3464c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)) PNG_PRIVATE; 34658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3467c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Combine a row of data, dealing with alpha, etc. if requested */ 34688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, 3469c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int mask)) PNG_PRIVATE; 34708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3471c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_INTERLACING_SUPPORTED 3472c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Expand an interlaced row */ 34738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* OLD pre-1.0.9 interface: 34748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, 3475c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, int pass, png_uint_32 transformations)) PNG_PRIVATE; 34768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 3477c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)) PNG_PRIVATE; 34788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ 34818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3482c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_INTERLACING_SUPPORTED 3483c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Grab pixels out of a row for an interlaced pass */ 34848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, 3485c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, int pass)) PNG_PRIVATE; 34868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 34878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3488c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Unfilter a row */ 34898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, 3490c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_row_infop row_info, png_bytep row, png_bytep prev_row, 3491c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int filter)) PNG_PRIVATE; 34928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Choose the best filter to use and filter the row data */ 34948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, 3495c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_row_infop row_info)) PNG_PRIVATE; 34968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Write out the filtered row. */ 34988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, 3499c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep filtered_row)) PNG_PRIVATE; 3500c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Finish a row while reading, dealing with interlacing passes, etc. */ 35018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); 35028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3503c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INDEX_SUPPORTED 3504c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Update the decoder status to the given pass */ 3505c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_set_interlaced_pass PNGARG((png_structp png_ptr, int pass)); 3506c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 3507c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3508c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Initialize the row buffers, etc. */ 3509c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; 3510c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Optional call to update the users info structure */ 35118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, 3512c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 35138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3514c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* These are the functions that do the transformations */ 3515c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_FILLER_SUPPORTED 35168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, 3517c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_uint_32 filler, png_uint_32 flags)) PNG_PRIVATE; 35188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3520c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED 35218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, 3522c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3525c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED 35268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, 3527c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3530c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED 35318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, 3532c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3535c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED 35368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, 3537c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ 35418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project defined(PNG_READ_STRIP_ALPHA_SUPPORTED) 35428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, 3543c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_uint_32 flags)) PNG_PRIVATE; 35448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 3547c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, 3548c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) 3552c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, 3553c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3556c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 35578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop 3558c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner row_info, png_bytep row)) PNG_PRIVATE; 35598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3561c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED 35628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, 3563c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3566c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_PACK_SUPPORTED 3567c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, 3568c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3571c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_SHIFT_SUPPORTED 35728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, 3573c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_8p sig_bits)) PNG_PRIVATE; 35748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 3577c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, 3578c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3581c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_16_TO_8_SUPPORTED 3582c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, 3583c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 35848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3586c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_DITHER_SUPPORTED 35878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, 3588c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_bytep palette_lookup, 3589c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep dither_lookup)) PNG_PRIVATE; 35908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3591c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner# ifdef PNG_CORRECT_PALETTE_SUPPORTED 35928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, 3593c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_colorp palette, int num_palette)) PNG_PRIVATE; 35948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 35958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 35968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 3598c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, 3599c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 36008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3602c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_PACK_SUPPORTED 36038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, 3604c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_uint_32 bit_depth)) PNG_PRIVATE; 36058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3607c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_WRITE_SHIFT_SUPPORTED 36088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, 3609c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_8p bit_depth)) PNG_PRIVATE; 36108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3612c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_BACKGROUND_SUPPORTED 3613c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GAMMA_SUPPORTED 36148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, 36158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p trans_values, png_color_16p background, 36168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p background_1, 36178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, 36188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, 3619c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_16pp gamma_16_to_1, int gamma_shift)) PNG_PRIVATE; 36208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 36218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, 3622c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_color_16p trans_values, png_color_16p background)) PNG_PRIVATE; 36238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3626c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_GAMMA_SUPPORTED 36278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, 36288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep gamma_table, png_uint_16pp gamma_16_table, 3629c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int gamma_shift)) PNG_PRIVATE; 36308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3632c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_EXPAND_SUPPORTED 36338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, 3634c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_colorp palette, png_bytep trans, 3635c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int num_trans)) PNG_PRIVATE; 36368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, 3637c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row, png_color_16p trans_value)) PNG_PRIVATE; 36388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following decodes the appropriate chunks, and does error correction, 36418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * then calls the appropriate callback for the chunk if it is valid. 36428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 36438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3644c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Decode the IHDR chunk */ 36458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, 3646c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, 36488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 length)); 36498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, 36508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 length)); 36518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3652c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_bKGD_SUPPORTED 36538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, 3654c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3657c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_cHRM_SUPPORTED 36588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, 3659c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3662c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_gAMA_SUPPORTED 36638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, 3664c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3667c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_hIST_SUPPORTED 36688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, 3669c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3672c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_iCCP_SUPPORTED 36738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, 36748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 length)); 36758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_iCCP_SUPPORTED */ 36768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3677c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_iTXt_SUPPORTED 36788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3679c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3682c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_oFFs_SUPPORTED 36838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, 3684c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3687c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_pCAL_SUPPORTED 36888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, 3689c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3692c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_pHYs_SUPPORTED 36938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, 3694c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 36958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 36968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3697c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_sBIT_SUPPORTED 36988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, 3699c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3702c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_sCAL_SUPPORTED 37038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, 3704c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3707c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_sPLT_SUPPORTED 37088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, 3709c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_sPLT_SUPPORTED */ 37118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3712c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_sRGB_SUPPORTED 37138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, 3714c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3717c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_tEXt_SUPPORTED 37188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3719c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3722c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_tIME_SUPPORTED 37238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, 3724c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3727c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_tRNS_SUPPORTED 37288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, 3729c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3732c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_zTXt_SUPPORTED 37338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3734c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 37358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 37378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, 3738c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; 37398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 37408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, 3741c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep chunk_name)) PNG_PRIVATE; 37428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3743c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Handle the transformations for reading and writing */ 3744c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_read_transformations 3745c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_PRIVATE; 3746c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_do_write_transformations 3747c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3749c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_init_read_transformations 3750c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 37528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_PROGRESSIVE_READ_SUPPORTED 37538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, 3754c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, 3756c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 3757c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, 3759c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 length)) PNG_PRIVATE; 3760c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)) PNG_PRIVATE; 3761c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, 3763c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE; 3764c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, 3766c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE; 3767c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; 37688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, 3769c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; 37708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, 3771c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, 3773c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 3774c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, 3775c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 37768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, 3777c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, 3779c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 3780c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_read_push_finish_row 3781c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_PRIVATE; 3782c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_tEXt_SUPPORTED 37838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, 3784c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; 37858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, 3786c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 3788c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_zTXt_SUPPORTED 37898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, 3790c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; 37918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, 3792c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 3794c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_iTXt_SUPPORTED 37958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, 3796c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; 37978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, 3798c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_infop info_ptr)) PNG_PRIVATE; 37998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 38008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 38028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_MNG_FEATURES_SUPPORTED 38048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, 3805c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 38068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, 3807c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_bytep row)) PNG_PRIVATE; 38088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 38098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3810c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_ASSEMBLER_CODE_SUPPORTED 3811c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_MMX_CODE_SUPPORTED 38128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png.c */ /* PRIVATE */ 3813c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)) PNG_PRIVATE; 38148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 38158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 38168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3817c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3818c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* The following six functions will be exported in libpng-1.4.0. */ 38198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) 38208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr, 38218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 38228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr, 38248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 38258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr, 38278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 38288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr, 38308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 38318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr, 38338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr)); 38348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3835c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 38368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectPNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr, 38378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 38388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_pHYs_SUPPORTED */ 38398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ 38408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3841c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Read the chunk header (length + type name) */ 3842c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN png_uint_32 png_read_chunk_header 3843c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner PNGARG((png_structp png_ptr)) PNG_PRIVATE; 3844c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3845c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added at libpng version 1.2.34 */ 3846c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_cHRM_SUPPORTED 3847c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr, 3848c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_white_x, png_fixed_point int_white_y, 3849c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 3850c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 3851c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_fixed_point int_blue_y)) PNG_PRIVATE; 3852c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 3853c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3854c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_cHRM_SUPPORTED 3855c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_CHECK_cHRM_SUPPORTED 3856c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added at libpng version 1.2.34 */ 3857c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_64bit_product PNGARG((long v1, long v2, 3858c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner unsigned long *hi_product, unsigned long *lo_product)) PNG_PRIVATE; 3859c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 3860c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#endif 3861c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3862c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added at libpng version 1.2.41 */ 3863c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr, 3864c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 width, png_uint_32 height, int bit_depth, 3865c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int color_type, int interlace_type, int compression_type, 3866c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner int filter_type)) PNG_PRIVATE; 3867c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3868c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Added at libpng version 1.2.41 */ 3869c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' TurnerPNG_EXTERN png_voidp png_calloc PNGARG((png_structp png_ptr, 3870c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_uint_32 size)); 3871c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 38728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ 38738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_INTERNAL */ 38758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __cplusplus 38778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 38788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 38798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_VERSION_INFO_ONLY */ 3881c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Do not put anything past this line */ 38828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_H */ 3883