Mercurial > libavcodec.hg
comparison avcodec.h @ 903:22ee74da2cd3 libavcodec
cleanup
adding AVVideoFrame
moving quality, pict_type, key_frame, qscale_table, ... to AVVideoFrame
removing obsolete variables in AVCodecContext
skiping of MBs in b frames
correctly initalizing AVCodecContext
picture buffer cleanup
author | michaelni |
---|---|
date | Wed, 04 Dec 2002 10:04:03 +0000 |
parents | 6acc8394960d |
children | 2b93dc762f9a |
comparison
equal
deleted
inserted
replaced
902:6acc8394960d | 903:22ee74da2cd3 |
---|---|
3 | 3 |
4 #include "common.h" | 4 #include "common.h" |
5 | 5 |
6 #define LIBAVCODEC_VERSION_INT 0x000406 | 6 #define LIBAVCODEC_VERSION_INT 0x000406 |
7 #define LIBAVCODEC_VERSION "0.4.6" | 7 #define LIBAVCODEC_VERSION "0.4.6" |
8 #define LIBAVCODEC_BUILD 4640 | 8 #define LIBAVCODEC_BUILD 4641 |
9 #define LIBAVCODEC_BUILD_STR "4640" | 9 #define LIBAVCODEC_BUILD_STR "4641" |
10 | 10 |
11 enum CodecID { | 11 enum CodecID { |
12 CODEC_ID_NONE, | 12 CODEC_ID_NONE, |
13 CODEC_ID_MPEG1VIDEO, | 13 CODEC_ID_MPEG1VIDEO, |
14 CODEC_ID_H263, | 14 CODEC_ID_H263, |
138 #define CODEC_FLAG_PASS1 0x0200 /* use internal 2pass ratecontrol in first pass mode */ | 138 #define CODEC_FLAG_PASS1 0x0200 /* use internal 2pass ratecontrol in first pass mode */ |
139 #define CODEC_FLAG_PASS2 0x0400 /* use internal 2pass ratecontrol in second pass mode */ | 139 #define CODEC_FLAG_PASS2 0x0400 /* use internal 2pass ratecontrol in second pass mode */ |
140 #define CODEC_FLAG_EXTERN_HUFF 0x1000 /* use external huffman table (for mjpeg) */ | 140 #define CODEC_FLAG_EXTERN_HUFF 0x1000 /* use external huffman table (for mjpeg) */ |
141 #define CODEC_FLAG_GRAY 0x2000 /* only decode/encode grayscale */ | 141 #define CODEC_FLAG_GRAY 0x2000 /* only decode/encode grayscale */ |
142 #define CODEC_FLAG_EMU_EDGE 0x4000/* dont draw edges */ | 142 #define CODEC_FLAG_EMU_EDGE 0x4000/* dont draw edges */ |
143 #define CODEC_FLAG_DR1 0x8000 /* direct renderig type 1 (store internal frames in external buffers) */ | |
144 #define CODEC_FLAG_TRUNCATED 0x00010000 /* input bitstream might be truncated at a random location instead | 143 #define CODEC_FLAG_TRUNCATED 0x00010000 /* input bitstream might be truncated at a random location instead |
145 of only at frame boundaries */ | 144 of only at frame boundaries */ |
146 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000 /* normalize adaptive quantization */ | 145 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000 /* normalize adaptive quantization */ |
147 #define CODEC_FLAG_INTERLACED_DCT 0x00040000 /* use interlaced dct */ | 146 #define CODEC_FLAG_INTERLACED_DCT 0x00040000 /* use interlaced dct */ |
148 #define CODEC_FLAG_LOW_DELAY 0x00080000 /* force low delay / will fail on b frames */ | 147 #define CODEC_FLAG_LOW_DELAY 0x00080000 /* force low delay / will fail on b frames */ |
157 #define CODEC_CAP_PARSE_ONLY 0x0004 | 156 #define CODEC_CAP_PARSE_ONLY 0x0004 |
158 #define CODEC_CAP_TRUNCATED 0x0008 | 157 #define CODEC_CAP_TRUNCATED 0x0008 |
159 | 158 |
160 #define FRAME_RATE_BASE 10000 | 159 #define FRAME_RATE_BASE 10000 |
161 | 160 |
161 #define FF_COMMON_PICTURE \ | |
162 uint8_t *data[4];\ | |
163 int linesize[4];\ | |
164 /**\ | |
165 * pointer to the first allocated byte of the picture. can be used in get_buffer/release_buffer | |
166 * this isnt used by lavc unless the default get/release_buffer() is used\ | |
167 * encoding: \ | |
168 * decoding: \ | |
169 */\ | |
170 uint8_t *base[4];\ | |
171 /**\ | |
172 * 1 -> keyframe, 0-> not\ | |
173 * encoding: set by lavc\ | |
174 * decoding: set by lavc\ | |
175 */\ | |
176 int key_frame;\ | |
177 \ | |
178 /**\ | |
179 * picture type of the frame, see ?_TYPE below\ | |
180 * encoding: set by lavc for coded_picture (and set by user for input)\ | |
181 * decoding: set by lavc\ | |
182 */\ | |
183 int pict_type;\ | |
184 \ | |
185 /**\ | |
186 * presentation timestamp in micro seconds (time when frame should be shown to user)\ | |
187 * if 0 then the frame_rate will be used as reference\ | |
188 * encoding: MUST be set by user\ | |
189 * decoding: set by lavc\ | |
190 */\ | |
191 long long int pts;\ | |
192 \ | |
193 /**\ | |
194 * picture number in bitstream order.\ | |
195 * encoding: set by\ | |
196 * decoding: set by lavc\ | |
197 */\ | |
198 int coded_picture_number;\ | |
199 /**\ | |
200 * encoding: set by\ | |
201 * decoding: set by lavc\ | |
202 * picture number in display order.\ | |
203 */\ | |
204 int display_picture_number;\ | |
205 \ | |
206 /**\ | |
207 * quality (between 1 (good) and 31 (bad)) \ | |
208 * encoding: set by lavc for coded_picture (and set by user for input)\ | |
209 * decoding: set by lavc\ | |
210 */\ | |
211 float quality; \ | |
212 \ | |
213 /**\ | |
214 * buffer age (1->was last buffer and dint change, 2->..., ...).\ | |
215 * set to something large if the buffer has not been used yet \ | |
216 * encoding: unused\ | |
217 * decoding: MUST be set by get_buffer()\ | |
218 */\ | |
219 int age;\ | |
220 \ | |
221 /**\ | |
222 * is this picture used as reference\ | |
223 * encoding: unused\ | |
224 * decoding: set by lavc (before get_buffer() call))\ | |
225 */\ | |
226 int reference;\ | |
227 \ | |
228 /**\ | |
229 * QP table\ | |
230 * encoding: unused\ | |
231 * decoding: set by lavc\ | |
232 */\ | |
233 int8_t *qscale_table;\ | |
234 /**\ | |
235 * QP store stride\ | |
236 * encoding: unused\ | |
237 * decoding: set by lavc\ | |
238 */\ | |
239 int qstride;\ | |
240 \ | |
241 /**\ | |
242 * mbskip_table[mb]>=1 if MB didnt change\ | |
243 * stride= mb_width = (width+15)>>4\ | |
244 * encoding: unused\ | |
245 * decoding: set by lavc\ | |
246 */\ | |
247 uint8_t *mbskip_table;\ | |
248 \ | |
249 /**\ | |
250 * for some private data of the user\ | |
251 * encoding: unused\ | |
252 * decoding: set by user\ | |
253 */\ | |
254 void *opaque;\ | |
255 | |
256 /* FIXME: these should have FF_ */ | |
257 #define I_TYPE 1 // Intra | |
258 #define P_TYPE 2 // Predicted | |
259 #define B_TYPE 3 // Bi-dir predicted | |
260 #define S_TYPE 4 // S(GMC)-VOP MPEG4 | |
261 | |
262 typedef struct AVVideoFrame { | |
263 FF_COMMON_PICTURE | |
264 } AVVideoFrame; | |
265 | |
162 typedef struct AVCodecContext { | 266 typedef struct AVCodecContext { |
163 /** | 267 /** |
164 * the average bitrate | 268 * the average bitrate |
165 * encoding: set by user. unused for constant quantizer encoding | 269 * encoding: set by user. unused for constant quantizer encoding |
166 * decoding: set by lavc. 0 or some bitrate if this info is available in the stream | 270 * decoding: set by lavc. 0 or some bitrate if this info is available in the stream |
189 */ | 293 */ |
190 int sub_id; | 294 int sub_id; |
191 | 295 |
192 /** | 296 /** |
193 * motion estimation algorithm used for video coding | 297 * motion estimation algorithm used for video coding |
194 * encoding: set by user. | 298 * encoding: MUST be set by user. |
195 * decoding: unused | 299 * decoding: unused |
196 */ | 300 */ |
197 int me_method; | 301 int me_method; |
198 | 302 |
199 /** | 303 /** |
210 /* video only */ | 314 /* video only */ |
211 /** | 315 /** |
212 * frames per sec multiplied by FRAME_RATE_BASE | 316 * frames per sec multiplied by FRAME_RATE_BASE |
213 * for variable fps this is the precission, so if the timestamps | 317 * for variable fps this is the precission, so if the timestamps |
214 * can be specified in msec precssion then this is 1000*FRAME_RATE_BASE | 318 * can be specified in msec precssion then this is 1000*FRAME_RATE_BASE |
215 * encoding: set by user | 319 * encoding: MUST be set by user |
216 * decoding: set by lavc. 0 or the frame_rate if available | 320 * decoding: set by lavc. 0 or the frame_rate if available |
217 */ | 321 */ |
218 int frame_rate; | 322 int frame_rate; |
219 | 323 |
220 /** | 324 /** |
221 * encoding: set by user. | 325 * encoding: MUST be set by user. |
222 * decoding: set by user, some codecs might override / change it during playback | 326 * decoding: set by user, some codecs might override / change it during playback |
223 */ | 327 */ |
224 int width, height; | 328 int width, height; |
225 | 329 |
226 /** | |
227 * Obsolete, will be removed | |
228 */ | |
229 int aspect_ratio_info; | |
230 #define FF_ASPECT_SQUARE 1 | 330 #define FF_ASPECT_SQUARE 1 |
231 #define FF_ASPECT_4_3_625 2 | 331 #define FF_ASPECT_4_3_625 2 |
232 #define FF_ASPECT_4_3_525 3 | 332 #define FF_ASPECT_4_3_525 3 |
233 #define FF_ASPECT_16_9_625 4 | 333 #define FF_ASPECT_16_9_625 4 |
234 #define FF_ASPECT_16_9_525 5 | 334 #define FF_ASPECT_16_9_525 5 |
272 /* the following data should not be initialized */ | 372 /* the following data should not be initialized */ |
273 int frame_size; /* in samples, initialized when calling 'init' */ | 373 int frame_size; /* in samples, initialized when calling 'init' */ |
274 int frame_number; /* audio or video frame number */ | 374 int frame_number; /* audio or video frame number */ |
275 int real_pict_num; /* returns the real picture number of | 375 int real_pict_num; /* returns the real picture number of |
276 previous encoded frame */ | 376 previous encoded frame */ |
277 | 377 |
278 /** | 378 /** |
279 * 1 -> keyframe, 0-> not | 379 * 1 -> keyframe, 0-> not (this if for audio only, for video, AVVideoFrame.key_frame should be used) |
280 * encoding: set by lavc (for the outputed bitstream, not the input frame) | 380 * encoding: set by lavc (for the outputed bitstream, not the input frame) |
281 * decoding: set by lavc (for the decoded bitstream, not the displayed frame) | 381 * decoding: set by lavc (for the decoded bitstream, not the displayed frame) |
282 */ | 382 */ |
283 int key_frame; | 383 int key_frame; |
284 | |
285 /** | |
286 * picture type of the previous en/decoded frame, see ?_TYPE below | |
287 * encoding: set by lavc (for the outputed bitstream, not the input frame) | |
288 * decoding: set by lavc (for the decoded bitstream, not the displayed frame) | |
289 */ | |
290 int pict_type; | |
291 /* FIXME: these should have FF_ */ | |
292 #define I_TYPE 1 // Intra | |
293 #define P_TYPE 2 // Predicted | |
294 #define B_TYPE 3 // Bi-dir predicted | |
295 #define S_TYPE 4 // S(GMC)-VOP MPEG4 | |
296 | 384 |
297 /** | 385 /** |
298 * number of frames the decoded output will be delayed relative to | 386 * number of frames the decoded output will be delayed relative to |
299 * the encoded input | 387 * the encoded input |
300 * encoding: set by lavc. | 388 * encoding: set by lavc. |
301 * decoding: unused | 389 * decoding: unused |
302 */ | 390 */ |
303 int delay; | 391 int delay; |
304 | |
305 /** | |
306 * mbskip_table[mb]=1 if MB didnt change, is only valid for I/P frames | |
307 * stride= mb_width = (width+15)>>4 (FIXME export stride?) | |
308 * encoding: unused | |
309 * decoding: set by lavc | |
310 */ | |
311 uint8_t *mbskip_table; | |
312 | 392 |
313 /* encoding parameters */ | 393 /* encoding parameters */ |
314 /** | |
315 * quality (between 1 (good) and 31 (bad)) | |
316 * encoding: set by user if CODEC_FLAG_QSCALE is set otherwise set by lavc | |
317 * decoding: set by lavc | |
318 */ | |
319 int quality; /* quality of the previous encoded frame | |
320 | |
321 this is allso used to set the quality in vbr mode | |
322 and the per frame quality in CODEC_FLAG_TYPE (second pass mode) */ | |
323 float qcompress; /* amount of qscale change between easy & hard scenes (0.0-1.0)*/ | 394 float qcompress; /* amount of qscale change between easy & hard scenes (0.0-1.0)*/ |
324 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */ | 395 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */ |
325 | 396 |
326 /** | 397 /** |
327 * minimum quantizer | 398 * minimum quantizer |
483 * decoding: set by user | 554 * decoding: set by user |
484 */ | 555 */ |
485 int error_resilience; | 556 int error_resilience; |
486 | 557 |
487 /** | 558 /** |
488 * obsolete, just here to keep ABI compatible (should be removed perhaps, dunno) | 559 * called at the beginning of each frame to get a buffer for it. |
489 */ | 560 * if pic.reference is set then the frame will be read later by lavc |
490 int *quant_store; | |
491 | |
492 /** | |
493 * QP store stride | |
494 * encoding: unused | 561 * encoding: unused |
495 * decoding: set by lavc | 562 * decoding: set by lavc, user can override |
496 */ | 563 */ |
497 int qstride; | 564 int (*get_buffer)(struct AVCodecContext *c, AVVideoFrame *pic); |
498 | 565 |
499 /** | 566 /** |
500 * buffer, where the next picture should be decoded into | 567 * called to release buffers which where allocated with get_buffer. |
568 * a released buffer can be reused in get_buffer() | |
569 * pic.data[*] must be set to NULL | |
501 * encoding: unused | 570 * encoding: unused |
502 * decoding: set by user in get_buffer_callback to a buffer into which the next part | 571 * decoding: set by lavc, user can override |
503 * of the bitstream will be decoded, and set by lavc at end of frame to the | 572 */ |
504 * next frame which needs to be displayed | 573 void (*release_buffer)(struct AVCodecContext *c, AVVideoFrame *pic); |
505 */ | |
506 uint8_t *dr_buffer[3]; | |
507 | |
508 /** | |
509 * stride of the luminance part of the dr buffer | |
510 * encoding: unused | |
511 * decoding: set by user | |
512 */ | |
513 int dr_stride; | |
514 | |
515 /** | |
516 * same behavior as dr_buffer, just for some private data of the user | |
517 * encoding: unused | |
518 * decoding: set by user in get_buffer_callback, and set by lavc at end of frame | |
519 */ | |
520 void *dr_opaque_frame; | |
521 | |
522 /** | |
523 * called at the beginning of each frame to get a buffer for it | |
524 * encoding: unused | |
525 * decoding: set by user | |
526 */ | |
527 int (*get_buffer_callback)(struct AVCodecContext *c, int width, int height, int pict_type); | |
528 | 574 |
529 /** | 575 /** |
530 * is 1 if the decoded stream contains b frames, 0 otherwise | 576 * is 1 if the decoded stream contains b frames, 0 otherwise |
531 * encoding: unused | 577 * encoding: unused |
532 * decoding: set by lavc | 578 * decoding: set by lavc |
533 */ | 579 */ |
534 int has_b_frames; | 580 int has_b_frames; |
535 | |
536 /** | |
537 * stride of the chrominance part of the dr buffer | |
538 * encoding: unused | |
539 * decoding: set by user | |
540 */ | |
541 int dr_uvstride; | |
542 | |
543 /** | |
544 * number of dr buffers | |
545 * encoding: unused | |
546 * decoding: set by user | |
547 */ | |
548 int dr_ip_buffer_count; | |
549 | 581 |
550 int block_align; /* used by some WAV based audio codecs */ | 582 int block_align; /* used by some WAV based audio codecs */ |
551 | 583 |
552 int parse_only; /* decoding only: if true, only parsing is done | 584 int parse_only; /* decoding only: if true, only parsing is done |
553 (function avcodec_parse_frame()). The frame | 585 (function avcodec_parse_frame()). The frame |
643 * initial complexity for pass1 ratecontrol | 675 * initial complexity for pass1 ratecontrol |
644 * encoding: set by user. | 676 * encoding: set by user. |
645 * decoding: unused | 677 * decoding: unused |
646 */ | 678 */ |
647 float rc_initial_cplx; | 679 float rc_initial_cplx; |
648 | |
649 /** | |
650 * Obsolete, will be removed | |
651 */ | |
652 int aspected_width; | |
653 int aspected_height; | |
654 | 680 |
655 /** | 681 /** |
656 * dct algorithm, see FF_DCT_* below | 682 * dct algorithm, see FF_DCT_* below |
657 * encoding: set by user | 683 * encoding: set by user |
658 * decoding: unused | 684 * decoding: unused |
662 #define FF_DCT_FASTINT 1 | 688 #define FF_DCT_FASTINT 1 |
663 #define FF_DCT_INT 2 | 689 #define FF_DCT_INT 2 |
664 #define FF_DCT_MMX 3 | 690 #define FF_DCT_MMX 3 |
665 #define FF_DCT_MLIB 4 | 691 #define FF_DCT_MLIB 4 |
666 #define FF_DCT_ALTIVEC 5 | 692 #define FF_DCT_ALTIVEC 5 |
667 | |
668 /** | |
669 * presentation timestamp in micro seconds (time when frame should be shown to user) | |
670 * if 0 then the frame_rate will be used as reference | |
671 * encoding: set by user | |
672 * decoding; set by lavc | |
673 */ | |
674 long long int pts; | |
675 | 693 |
676 /** | 694 /** |
677 * luminance masking (0-> disabled) | 695 * luminance masking (0-> disabled) |
678 * encoding: set by user | 696 * encoding: set by user |
679 * decoding: unused | 697 * decoding: unused |
753 int error_concealment; | 771 int error_concealment; |
754 #define FF_EC_GUESS_MVS 1 | 772 #define FF_EC_GUESS_MVS 1 |
755 #define FF_EC_DEBLOCK 2 | 773 #define FF_EC_DEBLOCK 2 |
756 | 774 |
757 /** | 775 /** |
758 * QP table of the currently decoded frame | |
759 * encoding; unused | |
760 * decoding: set by lavc | |
761 */ | |
762 int8_t *current_qscale_table; | |
763 /** | |
764 * QP table of the currently displayed frame | |
765 * encoding; unused | |
766 * decoding: set by lavc | |
767 */ | |
768 int8_t *display_qscale_table; | |
769 /** | |
770 * force specific pict_type. | |
771 * encoding; set by user (I/P/B_TYPE) | |
772 * decoding: unused | |
773 */ | |
774 int force_type; | |
775 /** | |
776 * dsp_mask could be used to disable unwanted | 776 * dsp_mask could be used to disable unwanted |
777 * CPU features (i.e. MMX, SSE. ...) | 777 * CPU features (i.e. MMX, SSE. ...) |
778 */ | 778 */ |
779 unsigned dsp_mask; | 779 unsigned dsp_mask; |
780 | 780 |
781 /** | 781 /** |
782 * bits per sample/pixel from the demuxer (needed for huffyuv) | 782 * bits per sample/pixel from the demuxer (needed for huffyuv) |
783 * encoding; set by lavc | 783 * encoding: set by lavc |
784 * decoding: set by user | 784 * decoding: set by user |
785 */ | 785 */ |
786 int bits_per_sample; | 786 int bits_per_sample; |
787 | 787 |
788 /** | 788 /** |
789 * prediction method (needed for huffyuv) | 789 * prediction method (needed for huffyuv) |
790 * encoding; set by user | 790 * encoding: set by user |
791 * decoding: unused | 791 * decoding: unused |
792 */ | 792 */ |
793 int prediction_method; | 793 int prediction_method; |
794 #define FF_PRED_LEFT 0 | 794 #define FF_PRED_LEFT 0 |
795 #define FF_PRED_PLANE 1 | 795 #define FF_PRED_PLANE 1 |
799 * aspect ratio. (0 if unknown) | 799 * aspect ratio. (0 if unknown) |
800 * encoding: set by user. | 800 * encoding: set by user. |
801 * decoding: set by lavc. | 801 * decoding: set by lavc. |
802 */ | 802 */ |
803 float aspect_ratio; | 803 float aspect_ratio; |
804 | |
805 /** | |
806 * the picture in the bitstream | |
807 * encoding: set by lavc | |
808 * decoding: set by lavc | |
809 */ | |
810 AVVideoFrame *coded_picture; | |
804 } AVCodecContext; | 811 } AVCodecContext; |
805 | 812 |
806 typedef struct AVCodec { | 813 typedef struct AVCodec { |
807 const char *name; | 814 const char *name; |
808 int type; | 815 int type; |
926 void img_resample_close(ImgReSampleContext *s); | 933 void img_resample_close(ImgReSampleContext *s); |
927 | 934 |
928 void avpicture_fill(AVPicture *picture, UINT8 *ptr, | 935 void avpicture_fill(AVPicture *picture, UINT8 *ptr, |
929 int pix_fmt, int width, int height); | 936 int pix_fmt, int width, int height); |
930 int avpicture_get_size(int pix_fmt, int width, int height); | 937 int avpicture_get_size(int pix_fmt, int width, int height); |
938 void avcodec_get_chroma_sub_sample(int fmt, int *h_shift, int *v_shift); | |
931 | 939 |
932 /* convert among pixel formats */ | 940 /* convert among pixel formats */ |
933 int img_convert(AVPicture *dst, int dst_pix_fmt, | 941 int img_convert(AVPicture *dst, int dst_pix_fmt, |
934 AVPicture *src, int pix_fmt, | 942 AVPicture *src, int pix_fmt, |
935 int width, int height); | 943 int width, int height); |
955 AVCodec *avcodec_find_encoder_by_name(const char *name); | 963 AVCodec *avcodec_find_encoder_by_name(const char *name); |
956 AVCodec *avcodec_find_decoder(enum CodecID id); | 964 AVCodec *avcodec_find_decoder(enum CodecID id); |
957 AVCodec *avcodec_find_decoder_by_name(const char *name); | 965 AVCodec *avcodec_find_decoder_by_name(const char *name); |
958 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); | 966 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); |
959 | 967 |
968 void avcodec_get_context_defaults(AVCodecContext *s); | |
960 AVCodecContext *avcodec_alloc_context(void); | 969 AVCodecContext *avcodec_alloc_context(void); |
970 AVVideoFrame *avcodec_alloc_picture(void); | |
971 | |
972 int avcodec_default_get_buffer(AVCodecContext *s, AVVideoFrame *pic); | |
973 void avcodec_default_release_buffer(AVCodecContext *s, AVVideoFrame *pic); | |
974 | |
961 int avcodec_open(AVCodecContext *avctx, AVCodec *codec); | 975 int avcodec_open(AVCodecContext *avctx, AVCodec *codec); |
962 int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples, | 976 int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples, |
963 int *frame_size_ptr, | 977 int *frame_size_ptr, |
964 UINT8 *buf, int buf_size); | 978 UINT8 *buf, int buf_size); |
965 int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture, | 979 int avcodec_decode_video(AVCodecContext *avctx, AVVideoFrame *picture, |
966 int *got_picture_ptr, | 980 int *got_picture_ptr, |
967 UINT8 *buf, int buf_size); | 981 UINT8 *buf, int buf_size); |
968 int avcodec_parse_frame(AVCodecContext *avctx, UINT8 **pdata, | 982 int avcodec_parse_frame(AVCodecContext *avctx, UINT8 **pdata, |
969 int *data_size_ptr, | 983 int *data_size_ptr, |
970 UINT8 *buf, int buf_size); | 984 UINT8 *buf, int buf_size); |
971 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size, | 985 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size, |
972 const short *samples); | 986 const short *samples); |
973 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, | 987 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, |
974 const AVPicture *pict); | 988 const AVVideoFrame *pict); |
975 | 989 |
976 int avcodec_close(AVCodecContext *avctx); | 990 int avcodec_close(AVCodecContext *avctx); |
977 | 991 |
978 void avcodec_register_all(void); | 992 void avcodec_register_all(void); |
979 | 993 |