annotate utils.c @ 229:f418b5c5ff67 libavcodec

PATCH by Rik Snel <rsnel@cube.dyndns.org> this patch enhances the jpeg header writer. It can be asked to omit quantisation and huffman tables and it can write different horizontal and vertical sampling factors. (the last thing is useless for libavcodec itself (because libavcodec only handles YUV420P at ecoder level), but the values are initialized so that operation of libavcodec is not impaired)
author arpi_esp
date Sat, 09 Feb 2002 01:23:41 +0000
parents 53da914d6f46
children e1bacfb3f51f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
1 /*
986e461dc072 Initial revision
glantau
parents:
diff changeset
2 * utils for libavcodec
986e461dc072 Initial revision
glantau
parents:
diff changeset
3 * Copyright (c) 2001 Gerard Lantau.
986e461dc072 Initial revision
glantau
parents:
diff changeset
4 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
986e461dc072 Initial revision
glantau
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
986e461dc072 Initial revision
glantau
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
986e461dc072 Initial revision
glantau
parents:
diff changeset
8 * (at your option) any later version.
986e461dc072 Initial revision
glantau
parents:
diff changeset
9 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
986e461dc072 Initial revision
glantau
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
986e461dc072 Initial revision
glantau
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
986e461dc072 Initial revision
glantau
parents:
diff changeset
13 * GNU General Public License for more details.
986e461dc072 Initial revision
glantau
parents:
diff changeset
14 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
986e461dc072 Initial revision
glantau
parents:
diff changeset
16 * along with this program; if not, write to the Free Software
986e461dc072 Initial revision
glantau
parents:
diff changeset
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
986e461dc072 Initial revision
glantau
parents:
diff changeset
18 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
19 #include <stdio.h>
986e461dc072 Initial revision
glantau
parents:
diff changeset
20 #include <string.h>
986e461dc072 Initial revision
glantau
parents:
diff changeset
21 #include <errno.h>
986e461dc072 Initial revision
glantau
parents:
diff changeset
22 #include "common.h"
986e461dc072 Initial revision
glantau
parents:
diff changeset
23 #include "dsputil.h"
986e461dc072 Initial revision
glantau
parents:
diff changeset
24 #include "avcodec.h"
80
f2d17413c4e3 memalign autodetection
nickols_k
parents: 77
diff changeset
25 #ifdef HAVE_MALLOC_H
f2d17413c4e3 memalign autodetection
nickols_k
parents: 77
diff changeset
26 #include <malloc.h>
f2d17413c4e3 memalign autodetection
nickols_k
parents: 77
diff changeset
27 #else
f2d17413c4e3 memalign autodetection
nickols_k
parents: 77
diff changeset
28 #include <stdlib.h>
f2d17413c4e3 memalign autodetection
nickols_k
parents: 77
diff changeset
29 #endif
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
30
986e461dc072 Initial revision
glantau
parents:
diff changeset
31 /* memory alloc */
986e461dc072 Initial revision
glantau
parents:
diff changeset
32 void *av_mallocz(int size)
986e461dc072 Initial revision
glantau
parents:
diff changeset
33 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
34 void *ptr;
77
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
35 #if defined ( ARCH_X86 ) && defined ( HAVE_MEMALIGN )
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
36 ptr = memalign(64,size);
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
37 /* Why 64?
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
38 Indeed, we should align it:
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
39 on 4 for 386
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
40 on 16 for 486
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
41 on 32 for 586, PPro - k6-III
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
42 on 64 for K7 (maybe for P3 too).
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
43 Because L1 and L2 caches are aligned on those values.
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
44 But I don't want to code such logic here!
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
45 */
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
46 #else
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
47 ptr = malloc(size);
77
9e8ae8222ddc Aligned malloc. Another 10% of speedup.
nickols_k
parents: 71
diff changeset
48 #endif
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
49 if (!ptr)
986e461dc072 Initial revision
glantau
parents:
diff changeset
50 return NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
51 memset(ptr, 0, size);
986e461dc072 Initial revision
glantau
parents:
diff changeset
52 return ptr;
986e461dc072 Initial revision
glantau
parents:
diff changeset
53 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
54
986e461dc072 Initial revision
glantau
parents:
diff changeset
55 /* encoder management */
986e461dc072 Initial revision
glantau
parents:
diff changeset
56 AVCodec *first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
57
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 void register_avcodec(AVCodec *format)
986e461dc072 Initial revision
glantau
parents:
diff changeset
59 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 AVCodec **p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 p = &first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
62 while (*p != NULL) p = &(*p)->next;
986e461dc072 Initial revision
glantau
parents:
diff changeset
63 *p = format;
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 format->next = NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
66
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 int avcodec_open(AVCodecContext *avctx, AVCodec *codec)
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
69 int ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
70
986e461dc072 Initial revision
glantau
parents:
diff changeset
71 avctx->codec = codec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
72 avctx->frame_number = 0;
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 avctx->priv_data = av_mallocz(codec->priv_data_size);
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 if (!avctx->priv_data)
986e461dc072 Initial revision
glantau
parents:
diff changeset
75 return -ENOMEM;
986e461dc072 Initial revision
glantau
parents:
diff changeset
76 ret = avctx->codec->init(avctx);
986e461dc072 Initial revision
glantau
parents:
diff changeset
77 if (ret < 0) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
78 free(avctx->priv_data);
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 avctx->priv_data = NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 return ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 return 0;
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
84
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size,
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 const short *samples)
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 int ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
89
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 ret = avctx->codec->encode(avctx, buf, buf_size, (void *)samples);
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 avctx->frame_number++;
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 return ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
94
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size,
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 const AVPicture *pict)
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 int ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
99
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 ret = avctx->codec->encode(avctx, buf, buf_size, (void *)pict);
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 avctx->frame_number++;
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 return ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
104
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 /* decode a frame. return -1 if error, otherwise return the number of
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 bytes used. If no frame could be decompressed, *got_picture_ptr is
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 zero. Otherwise, it is non zero */
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture,
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 int *got_picture_ptr,
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 UINT8 *buf, int buf_size)
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 int ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
113
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 buf, buf_size);
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 avctx->frame_number++;
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 return ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
119
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 /* decode an audio frame. return -1 if error, otherwise return the
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 *number of bytes used. If no frame could be decompressed,
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 *frame_size_ptr is zero. Otherwise, it is the decompressed frame
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 *size in BYTES. */
986e461dc072 Initial revision
glantau
parents:
diff changeset
124 int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples,
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 int *frame_size_ptr,
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 UINT8 *buf, int buf_size)
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 int ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
129
986e461dc072 Initial revision
glantau
parents:
diff changeset
130 ret = avctx->codec->decode(avctx, samples, frame_size_ptr,
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 buf, buf_size);
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 avctx->frame_number++;
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 return ret;
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
135
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 int avcodec_close(AVCodecContext *avctx)
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 if (avctx->codec->close)
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 avctx->codec->close(avctx);
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 free(avctx->priv_data);
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 avctx->priv_data = NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 avctx->codec = NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 return 0;
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
145
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 AVCodec *avcodec_find_encoder(enum CodecID id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 AVCodec *p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 p = first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 while (p) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 if (p->encode != NULL && p->id == id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 return p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
153 p = p->next;
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 return NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
157
177
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
158 AVCodec *avcodec_find_encoder_by_name(const char *name)
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
159 {
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
160 AVCodec *p;
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
161 p = first_avcodec;
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
162 while (p) {
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
163 if (p->encode != NULL && strcmp(name,p->name) == 0)
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
164 return p;
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
165 p = p->next;
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
166 }
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
167 return NULL;
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
168 }
53da914d6f46 avcodec_find_encoder_by_name() patch by Alex
arpi_esp
parents: 94
diff changeset
169
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
170 AVCodec *avcodec_find_decoder(enum CodecID id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
171 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
172 AVCodec *p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
173 p = first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
174 while (p) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
175 if (p->decode != NULL && p->id == id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
176 return p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
177 p = p->next;
986e461dc072 Initial revision
glantau
parents:
diff changeset
178 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
179 return NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
180 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
181
986e461dc072 Initial revision
glantau
parents:
diff changeset
182 AVCodec *avcodec_find_decoder_by_name(const char *name)
986e461dc072 Initial revision
glantau
parents:
diff changeset
183 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
184 AVCodec *p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
185 p = first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
186 while (p) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
187 if (p->decode != NULL && strcmp(name,p->name) == 0)
986e461dc072 Initial revision
glantau
parents:
diff changeset
188 return p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
189 p = p->next;
986e461dc072 Initial revision
glantau
parents:
diff changeset
190 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
191 return NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
192 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
193
986e461dc072 Initial revision
glantau
parents:
diff changeset
194 AVCodec *avcodec_find(enum CodecID id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
195 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
196 AVCodec *p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
197 p = first_avcodec;
986e461dc072 Initial revision
glantau
parents:
diff changeset
198 while (p) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
199 if (p->id == id)
986e461dc072 Initial revision
glantau
parents:
diff changeset
200 return p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
201 p = p->next;
986e461dc072 Initial revision
glantau
parents:
diff changeset
202 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
203 return NULL;
986e461dc072 Initial revision
glantau
parents:
diff changeset
204 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
205
55
6064342168f4 picture utils
glantau
parents: 24
diff changeset
206 const char *pix_fmt_str[] = {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
207 "yuv420p",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
208 "yuv422",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
209 "rgb24",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
210 "bgr24",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
211 "yuv422p",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
212 "yuv444p",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
213 };
6064342168f4 picture utils
glantau
parents: 24
diff changeset
214
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
215 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
986e461dc072 Initial revision
glantau
parents:
diff changeset
216 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
217 const char *codec_name;
986e461dc072 Initial revision
glantau
parents:
diff changeset
218 AVCodec *p;
986e461dc072 Initial revision
glantau
parents:
diff changeset
219 char buf1[32];
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
220 int bitrate;
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
221
986e461dc072 Initial revision
glantau
parents:
diff changeset
222 if (encode)
986e461dc072 Initial revision
glantau
parents:
diff changeset
223 p = avcodec_find_encoder(enc->codec_id);
986e461dc072 Initial revision
glantau
parents:
diff changeset
224 else
986e461dc072 Initial revision
glantau
parents:
diff changeset
225 p = avcodec_find_decoder(enc->codec_id);
986e461dc072 Initial revision
glantau
parents:
diff changeset
226
986e461dc072 Initial revision
glantau
parents:
diff changeset
227 if (p) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
228 codec_name = p->name;
986e461dc072 Initial revision
glantau
parents:
diff changeset
229 } else if (enc->codec_name[0] != '\0') {
986e461dc072 Initial revision
glantau
parents:
diff changeset
230 codec_name = enc->codec_name;
986e461dc072 Initial revision
glantau
parents:
diff changeset
231 } else {
986e461dc072 Initial revision
glantau
parents:
diff changeset
232 /* output avi tags */
986e461dc072 Initial revision
glantau
parents:
diff changeset
233 if (enc->codec_type == CODEC_TYPE_VIDEO) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
234 snprintf(buf1, sizeof(buf1), "%c%c%c%c",
986e461dc072 Initial revision
glantau
parents:
diff changeset
235 enc->codec_tag & 0xff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
236 (enc->codec_tag >> 8) & 0xff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
237 (enc->codec_tag >> 16) & 0xff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
238 (enc->codec_tag >> 24) & 0xff);
986e461dc072 Initial revision
glantau
parents:
diff changeset
239 } else {
986e461dc072 Initial revision
glantau
parents:
diff changeset
240 snprintf(buf1, sizeof(buf1), "0x%04x", enc->codec_tag);
986e461dc072 Initial revision
glantau
parents:
diff changeset
241 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
242 codec_name = buf1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
243 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
244
986e461dc072 Initial revision
glantau
parents:
diff changeset
245 switch(enc->codec_type) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
246 case CODEC_TYPE_VIDEO:
986e461dc072 Initial revision
glantau
parents:
diff changeset
247 snprintf(buf, buf_size,
986e461dc072 Initial revision
glantau
parents:
diff changeset
248 "Video: %s%s",
986e461dc072 Initial revision
glantau
parents:
diff changeset
249 codec_name, enc->flags & CODEC_FLAG_HQ ? " (hq)" : "");
55
6064342168f4 picture utils
glantau
parents: 24
diff changeset
250 if (enc->codec_id == CODEC_ID_RAWVIDEO) {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
251 snprintf(buf + strlen(buf), buf_size - strlen(buf),
6064342168f4 picture utils
glantau
parents: 24
diff changeset
252 ", %s",
6064342168f4 picture utils
glantau
parents: 24
diff changeset
253 pix_fmt_str[enc->pix_fmt]);
6064342168f4 picture utils
glantau
parents: 24
diff changeset
254 }
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
255 if (enc->width) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
256 snprintf(buf + strlen(buf), buf_size - strlen(buf),
986e461dc072 Initial revision
glantau
parents:
diff changeset
257 ", %dx%d, %0.2f fps",
986e461dc072 Initial revision
glantau
parents:
diff changeset
258 enc->width, enc->height,
986e461dc072 Initial revision
glantau
parents:
diff changeset
259 (float)enc->frame_rate / FRAME_RATE_BASE);
986e461dc072 Initial revision
glantau
parents:
diff changeset
260 }
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
261 bitrate = enc->bit_rate;
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
262 break;
986e461dc072 Initial revision
glantau
parents:
diff changeset
263 case CODEC_TYPE_AUDIO:
986e461dc072 Initial revision
glantau
parents:
diff changeset
264 snprintf(buf, buf_size,
986e461dc072 Initial revision
glantau
parents:
diff changeset
265 "Audio: %s",
986e461dc072 Initial revision
glantau
parents:
diff changeset
266 codec_name);
986e461dc072 Initial revision
glantau
parents:
diff changeset
267 if (enc->sample_rate) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
268 snprintf(buf + strlen(buf), buf_size - strlen(buf),
986e461dc072 Initial revision
glantau
parents:
diff changeset
269 ", %d Hz, %s",
986e461dc072 Initial revision
glantau
parents:
diff changeset
270 enc->sample_rate,
986e461dc072 Initial revision
glantau
parents:
diff changeset
271 enc->channels == 2 ? "stereo" : "mono");
986e461dc072 Initial revision
glantau
parents:
diff changeset
272 }
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
273 /* for PCM codecs, compute bitrate directly */
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
274 switch(enc->codec_id) {
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
275 case CODEC_ID_PCM_S16LE:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
276 case CODEC_ID_PCM_S16BE:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
277 case CODEC_ID_PCM_U16LE:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
278 case CODEC_ID_PCM_U16BE:
94
7e263a256a6f fixed pcm bitrate
glantau
parents: 92
diff changeset
279 bitrate = enc->sample_rate * enc->channels * 16;
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
280 break;
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
281 case CODEC_ID_PCM_S8:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
282 case CODEC_ID_PCM_U8:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
283 case CODEC_ID_PCM_ALAW:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
284 case CODEC_ID_PCM_MULAW:
94
7e263a256a6f fixed pcm bitrate
glantau
parents: 92
diff changeset
285 bitrate = enc->sample_rate * enc->channels * 8;
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
286 break;
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
287 default:
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
288 bitrate = enc->bit_rate;
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
289 break;
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
290 }
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
291 break;
986e461dc072 Initial revision
glantau
parents:
diff changeset
292 default:
986e461dc072 Initial revision
glantau
parents:
diff changeset
293 abort();
986e461dc072 Initial revision
glantau
parents:
diff changeset
294 }
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
295 if (bitrate != 0) {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
296 snprintf(buf + strlen(buf), buf_size - strlen(buf),
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
297 ", %d kb/s", bitrate / 1000);
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
298 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
299 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
300
55
6064342168f4 picture utils
glantau
parents: 24
diff changeset
301 /* Picture field are filled with 'ptr' addresses */
6064342168f4 picture utils
glantau
parents: 24
diff changeset
302 void avpicture_fill(AVPicture *picture, UINT8 *ptr,
6064342168f4 picture utils
glantau
parents: 24
diff changeset
303 int pix_fmt, int width, int height)
6064342168f4 picture utils
glantau
parents: 24
diff changeset
304 {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
305 int size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
306
6064342168f4 picture utils
glantau
parents: 24
diff changeset
307 size = width * height;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
308 switch(pix_fmt) {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
309 case PIX_FMT_YUV420P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
310 picture->data[0] = ptr;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
311 picture->data[1] = picture->data[0] + size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
312 picture->data[2] = picture->data[1] + size / 4;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
313 picture->linesize[0] = width;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
314 picture->linesize[1] = width / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
315 picture->linesize[2] = width / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
316 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
317 case PIX_FMT_YUV422P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
318 picture->data[0] = ptr;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
319 picture->data[1] = picture->data[0] + size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
320 picture->data[2] = picture->data[1] + size / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
321 picture->linesize[0] = width;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
322 picture->linesize[1] = width / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
323 picture->linesize[2] = width / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
324 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
325 case PIX_FMT_YUV444P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
326 picture->data[0] = ptr;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
327 picture->data[1] = picture->data[0] + size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
328 picture->data[2] = picture->data[1] + size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
329 picture->linesize[0] = width;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
330 picture->linesize[1] = width;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
331 picture->linesize[2] = width;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
332 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
333 case PIX_FMT_RGB24:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
334 case PIX_FMT_BGR24:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
335 picture->data[0] = ptr;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
336 picture->data[1] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
337 picture->data[2] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
338 picture->linesize[0] = width * 3;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
339 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
340 case PIX_FMT_YUV422:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
341 picture->data[0] = ptr;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
342 picture->data[1] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
343 picture->data[2] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
344 picture->linesize[0] = width * 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
345 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
346 default:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
347 picture->data[0] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
348 picture->data[1] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
349 picture->data[2] = NULL;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
350 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
351 }
6064342168f4 picture utils
glantau
parents: 24
diff changeset
352 }
6064342168f4 picture utils
glantau
parents: 24
diff changeset
353
6064342168f4 picture utils
glantau
parents: 24
diff changeset
354 int avpicture_get_size(int pix_fmt, int width, int height)
6064342168f4 picture utils
glantau
parents: 24
diff changeset
355 {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
356 int size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
357
6064342168f4 picture utils
glantau
parents: 24
diff changeset
358 size = width * height;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
359 switch(pix_fmt) {
6064342168f4 picture utils
glantau
parents: 24
diff changeset
360 case PIX_FMT_YUV420P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
361 size = (size * 3) / 2;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
362 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
363 case PIX_FMT_YUV422P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
364 size = (size * 2);
6064342168f4 picture utils
glantau
parents: 24
diff changeset
365 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
366 case PIX_FMT_YUV444P:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
367 size = (size * 3);
6064342168f4 picture utils
glantau
parents: 24
diff changeset
368 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
369 case PIX_FMT_RGB24:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
370 case PIX_FMT_BGR24:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
371 size = (size * 3);
6064342168f4 picture utils
glantau
parents: 24
diff changeset
372 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
373 case PIX_FMT_YUV422:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
374 size = (size * 2);
6064342168f4 picture utils
glantau
parents: 24
diff changeset
375 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
376 default:
6064342168f4 picture utils
glantau
parents: 24
diff changeset
377 size = -1;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
378 break;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
379 }
6064342168f4 picture utils
glantau
parents: 24
diff changeset
380 return size;
6064342168f4 picture utils
glantau
parents: 24
diff changeset
381 }
6064342168f4 picture utils
glantau
parents: 24
diff changeset
382
6064342168f4 picture utils
glantau
parents: 24
diff changeset
383
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
384 /* must be called before any other functions */
986e461dc072 Initial revision
glantau
parents:
diff changeset
385 void avcodec_init(void)
986e461dc072 Initial revision
glantau
parents:
diff changeset
386 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
387 dsputil_init();
986e461dc072 Initial revision
glantau
parents:
diff changeset
388 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
389
986e461dc072 Initial revision
glantau
parents:
diff changeset
390 /* simple call to use all the codecs */
986e461dc072 Initial revision
glantau
parents:
diff changeset
391 void avcodec_register_all(void)
986e461dc072 Initial revision
glantau
parents:
diff changeset
392 {
3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
393 /* encoders */
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
394 #ifdef CONFIG_ENCODERS
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
395 register_avcodec(&ac3_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
396 register_avcodec(&mp2_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
397 register_avcodec(&mpeg1video_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
398 register_avcodec(&h263_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
399 register_avcodec(&h263p_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
400 register_avcodec(&rv10_encoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
401 register_avcodec(&mjpeg_encoder);
71
79be2c581c01 changed opendivx to mpeg4
glantau
parents: 55
diff changeset
402 register_avcodec(&mpeg4_encoder);
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
403 register_avcodec(&msmpeg4_encoder);
3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
404 #endif /* CONFIG_ENCODERS */
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
405 register_avcodec(&rawvideo_codec);
3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
406
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
407 /* decoders */
3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
408 #ifdef CONFIG_DECODERS
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
409 register_avcodec(&h263_decoder);
71
79be2c581c01 changed opendivx to mpeg4
glantau
parents: 55
diff changeset
410 register_avcodec(&mpeg4_decoder);
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
411 register_avcodec(&msmpeg4_decoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
412 register_avcodec(&mpeg_decoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
413 register_avcodec(&h263i_decoder);
986e461dc072 Initial revision
glantau
parents:
diff changeset
414 register_avcodec(&rv10_decoder);
24
08265a63313e added MJPEG decoder + comments
glantau
parents: 3
diff changeset
415 register_avcodec(&mjpeg_decoder);
3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
416 register_avcodec(&mp3_decoder);
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
417 #ifdef CONFIG_AC3
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
418 register_avcodec(&ac3_decoder);
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
419 #endif
1bdbd869c1f0 added CONFIG_AC3, CONFIG_MPGLIB, CONFIG_DECODERS and CONFIG_ENCODERS (Arpi: don't forget to put CONFIG_DECODERS in mplayer)
glantau
parents: 0
diff changeset
420 #endif /* CONFIG_DECODERS */
92
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
421
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
422 /* pcm codecs */
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
423
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
424 #define PCM_CODEC(id, name) \
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
425 register_avcodec(& name ## _encoder); \
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
426 register_avcodec(& name ## _decoder); \
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
427
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
428 PCM_CODEC(CODEC_ID_PCM_S16LE, pcm_s16le);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
429 PCM_CODEC(CODEC_ID_PCM_S16BE, pcm_s16be);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
430 PCM_CODEC(CODEC_ID_PCM_U16LE, pcm_u16le);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
431 PCM_CODEC(CODEC_ID_PCM_U16BE, pcm_u16be);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
432 PCM_CODEC(CODEC_ID_PCM_S8, pcm_s8);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
433 PCM_CODEC(CODEC_ID_PCM_U8, pcm_u8);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
434 PCM_CODEC(CODEC_ID_PCM_ALAW, pcm_alaw);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
435 PCM_CODEC(CODEC_ID_PCM_MULAW, pcm_mulaw);
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
436
1d3eb6cdc6b5 added pcm codecs
glantau
parents: 91
diff changeset
437 #undef PCM_CODEC
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
438 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
439
986e461dc072 Initial revision
glantau
parents:
diff changeset
440 static int encode_init(AVCodecContext *s)
986e461dc072 Initial revision
glantau
parents:
diff changeset
441 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
442 return 0;
986e461dc072 Initial revision
glantau
parents:
diff changeset
443 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
444
986e461dc072 Initial revision
glantau
parents:
diff changeset
445 static int decode_frame(AVCodecContext *avctx,
986e461dc072 Initial revision
glantau
parents:
diff changeset
446 void *data, int *data_size,
986e461dc072 Initial revision
glantau
parents:
diff changeset
447 UINT8 *buf, int buf_size)
986e461dc072 Initial revision
glantau
parents:
diff changeset
448 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
449 return -1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
450 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
451
986e461dc072 Initial revision
glantau
parents:
diff changeset
452 static int encode_frame(AVCodecContext *avctx,
986e461dc072 Initial revision
glantau
parents:
diff changeset
453 unsigned char *frame, int buf_size, void *data)
986e461dc072 Initial revision
glantau
parents:
diff changeset
454 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
455 return -1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
456 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
457
986e461dc072 Initial revision
glantau
parents:
diff changeset
458 AVCodec rawvideo_codec = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
459 "rawvideo",
986e461dc072 Initial revision
glantau
parents:
diff changeset
460 CODEC_TYPE_VIDEO,
986e461dc072 Initial revision
glantau
parents:
diff changeset
461 CODEC_ID_RAWVIDEO,
986e461dc072 Initial revision
glantau
parents:
diff changeset
462 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
463 encode_init,
986e461dc072 Initial revision
glantau
parents:
diff changeset
464 encode_frame,
986e461dc072 Initial revision
glantau
parents:
diff changeset
465 NULL,
986e461dc072 Initial revision
glantau
parents:
diff changeset
466 decode_frame,
986e461dc072 Initial revision
glantau
parents:
diff changeset
467 };