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