00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AVCODEC_PNG_H
00023 #define AVCODEC_PNG_H
00024
00025 #include <stdint.h>
00026
00027 #define PNG_COLOR_MASK_PALETTE 1
00028 #define PNG_COLOR_MASK_COLOR 2
00029 #define PNG_COLOR_MASK_ALPHA 4
00030
00031 #define PNG_COLOR_TYPE_GRAY 0
00032 #define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
00033 #define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR)
00034 #define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
00035 #define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
00036
00037 #define PNG_FILTER_TYPE_LOCO 64
00038 #define PNG_FILTER_VALUE_NONE 0
00039 #define PNG_FILTER_VALUE_SUB 1
00040 #define PNG_FILTER_VALUE_UP 2
00041 #define PNG_FILTER_VALUE_AVG 3
00042 #define PNG_FILTER_VALUE_PAETH 4
00043 #define PNG_FILTER_VALUE_MIXED 5
00044
00045 #define PNG_IHDR 0x0001
00046 #define PNG_IDAT 0x0002
00047 #define PNG_ALLIMAGE 0x0004
00048 #define PNG_PLTE 0x0008
00049
00050 #define NB_PASSES 7
00051
00052 #define PNGSIG 0x89504e470d0a1a0a
00053 #define MNGSIG 0x8a4d4e470d0a1a0a
00054
00055
00056 extern const uint8_t ff_png_pass_ymask[NB_PASSES];
00057
00058 void *ff_png_zalloc(void *opaque, unsigned int items, unsigned int size);
00059
00060 void ff_png_zfree(void *opaque, void *ptr);
00061
00062 int ff_png_get_nb_channels(int color_type);
00063
00064
00065 int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
00066
00067 void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
00068
00069 #endif