annotate png.c @ 47:45308962220f libavformat

added jpeg image encoder and decoder (new YUV handling routines and mjpeg codec fixes are necessary to go further)
author bellard
date Sun, 02 Feb 2003 19:18:09 +0000
parents 7c5da7e7239a
children bde449e6b743
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
1 /*
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
2 * PNG image format
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
3 * Copyright (c) 2003 Fabrice Bellard.
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
4 *
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
9 *
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
13 * Lesser General Public License for more details.
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
14 *
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
16 * License along with this library; if not, write to the Free Software
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
18 */
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
19 #include "avformat.h"
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
20
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
21 #include "libpng/png.h"
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
22
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
23 extern const uint8_t png_sig[];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
24
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
25 static int png_probe(AVProbeData *pd)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
26 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
27 if (pd->buf_size >= 8 &&
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
28 memcmp(pd->buf, png_sig, 8) == 0)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
29 return AVPROBE_SCORE_MAX;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
30 else
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
31 return 0;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
32 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
33
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
34 png_voidp PNGAPI
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
35 png_memset_check (png_structp png_ptr, png_voidp s1, int value,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
36 png_uint_32 length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
37 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
38 png_size_t size;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
39
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
40 size = (png_size_t)length;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
41 if ((png_uint_32)size != length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
42 png_error(png_ptr,"Overflow in png_memset_check.");
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
43
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
44 return (png_memset (s1, value, size));
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
45
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
46 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
47
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
48 png_voidp PNGAPI
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
49 png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
50 png_uint_32 length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
51 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
52 png_size_t size;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
53
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
54 size = (png_size_t)length;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
55 if ((png_uint_32)size != length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
56 png_error(png_ptr,"Overflow in png_memcpy_check.");
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
57
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
58 return(png_memcpy (s1, s2, size));
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
59 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
60
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
61 void png_error (png_struct *png_ptr, const char *message)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
62 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
63 longjmp(png_ptr->jmpbuf, 0);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
64 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
65
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
66 void png_warning (png_struct *png_ptr, const char *message)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
67 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
68 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
69
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
70 void PNGAPI
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
71 png_chunk_error(png_structp png_ptr, png_const_charp error_message)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
72 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
73 char msg[18+64];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
74 // png_format_buffer(png_ptr, msg, error_message);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
75 png_error(png_ptr, msg);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
76 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
77
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
78 void PNGAPI
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
79 png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
80 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
81 char msg[18+64];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
82 // png_format_buffer(png_ptr, msg, warning_message);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
83 png_warning(png_ptr, msg);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
84 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
85
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
86 void png_read_data (png_struct *png_ptr, png_byte *data, png_uint_32 length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
87 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
88 int ret;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
89
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
90 ret = get_buffer(png_ptr->io_ptr, data, length);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
91 if (ret != length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
92 png_error (png_ptr, "Read Error");
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
93 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
94
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
95 void *png_malloc (png_struct *png_ptr, png_uint_32 size)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
96 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
97 return av_malloc(size);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
98 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
99
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
100 void png_free (png_struct *png_ptr, void *ptr)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
101 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
102 return av_free(ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
103 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
104
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
105 static int png_read(ByteIOContext *f,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
106 int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
107 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
108 png_struct png_struct1, *png_ptr;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
109 png_info png_info1, png_info2, *info_ptr, *end_info;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
110 AVImageInfo info1, *info = &info1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
111 int y, height, ret, row_size;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
112 uint8_t *ptr;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
113
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
114 png_ptr = &png_struct1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
115 png_read_init(png_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
116
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
117 info_ptr = &png_info1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
118 end_info = &png_info2;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
119
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
120 png_info_init(info_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
121 png_info_init(end_info);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
122
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
123 png_ptr->io_ptr = f;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
124
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
125 if (setjmp(png_jmpbuf(png_ptr))) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
126 png_read_destroy (png_ptr, info_ptr, NULL);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
127 return -1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
128 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
129
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
130 png_read_info (png_ptr, info_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
131
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
132 /* init image info */
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
133 info->width = info_ptr->width;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
134 info->height = info_ptr->height;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
135
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
136 if (info_ptr->bit_depth == 8 &&
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
137 info_ptr->color_type == PNG_COLOR_TYPE_RGB) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
138 info->pix_fmt = PIX_FMT_RGB24;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
139 row_size = info_ptr->width * 3;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
140 } else if (info_ptr->bit_depth == 8 &&
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
141 info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
142 info->pix_fmt = PIX_FMT_GRAY8;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
143 row_size = info_ptr->width;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
144 } else if (info_ptr->bit_depth == 1 &&
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
145 info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
146 info->pix_fmt = PIX_FMT_MONOBLACK;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
147 row_size = (info_ptr->width + 7) >> 3;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
148 } else {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
149 png_read_destroy (png_ptr, info_ptr, NULL);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
150 return -1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
151 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
152 ret = alloc_cb(opaque, info);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
153 if (ret) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
154 png_read_destroy (png_ptr, info_ptr, NULL);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
155 return ret;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
156 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
157
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
158 /* now read the whole image */
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
159 png_start_read_image (png_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
160
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
161 height = info->height;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
162 ptr = info->pict.data[0];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
163 for (y = 0; y < height; y++) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
164 png_read_row (png_ptr, NULL, NULL);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
165 memcpy(ptr, png_ptr->row_buf + 1, row_size);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
166 ptr += info->pict.linesize[0];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
167 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
168
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
169 png_read_destroy (png_ptr, info_ptr, NULL);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
170 return 0;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
171 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
172
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
173 void
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
174 png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
175 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
176 put_buffer(png_ptr->io_ptr, data, length);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
177 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
178
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
179 static int png_write(ByteIOContext *pb, AVImageInfo *info)
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
180 {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
181 png_struct png_struct1, *png_ptr;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
182 png_info png_info1, *info_ptr;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
183 int w, h, y;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
184 uint8_t *ptr;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
185
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
186 png_ptr = &png_struct1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
187 info_ptr = &png_info1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
188
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
189 png_write_init(png_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
190 png_info_init(info_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
191
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
192 png_ptr->io_ptr = pb;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
193
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
194 if (setjmp(png_ptr->jmpbuf)) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
195 png_write_destroy(png_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
196 return -1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
197 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
198
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
199 w = info->width;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
200 h = info->height;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
201
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
202 info_ptr->width = w;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
203 info_ptr->height = h;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
204 switch(info->pix_fmt) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
205 case PIX_FMT_RGB24:
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
206 info_ptr->bit_depth = 8;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
207 info_ptr->color_type = PNG_COLOR_TYPE_RGB;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
208 break;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
209 case PIX_FMT_GRAY8:
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
210 info_ptr->bit_depth = 8;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
211 info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
212 break;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
213 case PIX_FMT_MONOBLACK:
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
214 info_ptr->bit_depth = 1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
215 info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
216 break;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
217 default:
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
218 return -1;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
219 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
220 png_write_info(png_ptr, info_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
221
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
222 ptr = info->pict.data[0];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
223 for(y=0;y<h;y++) {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
224 png_write_row(png_ptr, ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
225 ptr += info->pict.linesize[0];
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
226 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
227 png_write_end(png_ptr, info_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
228 png_write_destroy(png_ptr);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
229 put_flush_packet(pb);
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
230 return 0;
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
231 }
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
232
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
233 AVImageFormat png_image_format = {
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
234 "png",
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
235 "png",
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
236 png_probe,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
237 png_read,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
238 (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_MONOBLACK),
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
239 png_write,
7c5da7e7239a added basic png handling
bellard
parents:
diff changeset
240 };