annotate png.h @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 84963c795459
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
1 /*
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
2 * PNG image format
8629
04423b2f6e0b cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 8250
diff changeset
3 * Copyright (c) 2003 Fabrice Bellard
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
4 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
5 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
6 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
11 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
15 * Lesser General Public License for more details.
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
16 *
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
3036
0b546eab515d Update licensing information: The FSF changed postal address.
diego
parents: 2967
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
20 */
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
21
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6406
diff changeset
22 #ifndef AVCODEC_PNG_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6406
diff changeset
23 #define AVCODEC_PNG_H
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
24
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
25 #include <stdint.h>
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
26
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
27 #define PNG_COLOR_MASK_PALETTE 1
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
28 #define PNG_COLOR_MASK_COLOR 2
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
29 #define PNG_COLOR_MASK_ALPHA 4
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
30
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
31 #define PNG_COLOR_TYPE_GRAY 0
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
32 #define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
33 #define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR)
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
34 #define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
35 #define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
36
6406
49dcfab1bda3 decode mng color decorrelation
lorenm
parents: 6396
diff changeset
37 #define PNG_FILTER_TYPE_LOCO 64
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
38 #define PNG_FILTER_VALUE_NONE 0
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
39 #define PNG_FILTER_VALUE_SUB 1
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
40 #define PNG_FILTER_VALUE_UP 2
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
41 #define PNG_FILTER_VALUE_AVG 3
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
42 #define PNG_FILTER_VALUE_PAETH 4
6396
2d7afa1bc573 png filters
lorenm
parents: 5830
diff changeset
43 #define PNG_FILTER_VALUE_MIXED 5
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
44
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
45 #define PNG_IHDR 0x0001
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
46 #define PNG_IDAT 0x0002
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
47 #define PNG_ALLIMAGE 0x0004
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
48 #define PNG_PLTE 0x0008
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
49
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
50 #define NB_PASSES 7
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
51
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
52 extern const uint8_t ff_pngsig[8];
6406
49dcfab1bda3 decode mng color decorrelation
lorenm
parents: 6396
diff changeset
53 extern const uint8_t ff_mngsig[8];
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
54
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
55 /* Mask to determine which y pixels are valid in a pass */
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
56 extern const uint8_t ff_png_pass_ymask[NB_PASSES];
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
57
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
58 /* minimum x value */
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
59 extern const uint8_t ff_png_pass_xmin[NB_PASSES];
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
60
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
61 /* x shift to get row width */
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
62 extern const uint8_t ff_png_pass_xshift[NB_PASSES];
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
63
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
64 /* Mask to determine which pixels are valid in a pass */
5337
26f4095e35d2 separate en/decoder specific parts from png.c
mru
parents: 5097
diff changeset
65 extern const uint8_t ff_png_pass_mask[NB_PASSES];
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
66
8250
cf4d575b1982 Delete unnecessary 'extern' keywords.
diego
parents: 7760
diff changeset
67 void *ff_png_zalloc(void *opaque, unsigned int items, unsigned int size);
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
68
8250
cf4d575b1982 Delete unnecessary 'extern' keywords.
diego
parents: 7760
diff changeset
69 void ff_png_zfree(void *opaque, void *ptr);
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
70
8250
cf4d575b1982 Delete unnecessary 'extern' keywords.
diego
parents: 7760
diff changeset
71 int ff_png_get_nb_channels(int color_type);
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
72
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
73 /* compute the row size of an interleaved pass */
8250
cf4d575b1982 Delete unnecessary 'extern' keywords.
diego
parents: 7760
diff changeset
74 int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
2342
8b6668325ff8 porting png support from -f image to -f image2
michael
parents:
diff changeset
75
11375
84963c795459 Move some prototypes from dsputil.c to reasonable header files
mru
parents: 8629
diff changeset
76 void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
84963c795459 Move some prototypes from dsputil.c to reasonable header files
mru
parents: 8629
diff changeset
77
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6406
diff changeset
78 #endif /* AVCODEC_PNG_H */