Mercurial > libavcodec.hg
comparison avcodec.h @ 581:8adda0af04e2 libavcodec
added proposed API for parse_only mode to extract compressed frames from compressed streams
| author | bellard |
|---|---|
| date | Thu, 25 Jul 2002 16:25:36 +0000 |
| parents | b0f52172f4c5 |
| children | d6955d0d7d27 |
comparison
equal
deleted
inserted
replaced
| 580:0b706debf55d | 581:8adda0af04e2 |
|---|---|
| 111 /* codec capabilities */ | 111 /* codec capabilities */ |
| 112 | 112 |
| 113 /* decoder can use draw_horiz_band callback */ | 113 /* decoder can use draw_horiz_band callback */ |
| 114 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 | 114 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 |
| 115 #define CODEC_CAP_DR1 0x0002 /* direct rendering method 1 */ | 115 #define CODEC_CAP_DR1 0x0002 /* direct rendering method 1 */ |
| 116 /* if 'parse_only' field is true, then avcodec_parse_frame() can be | |
| 117 used */ | |
| 118 #define CODEC_CAP_PARSE_ONLY 0x0004 | |
| 116 | 119 |
| 117 #define FRAME_RATE_BASE 10000 | 120 #define FRAME_RATE_BASE 10000 |
| 118 | 121 |
| 119 typedef struct AVCodecContext { | 122 typedef struct AVCodecContext { |
| 120 int bit_rate; | 123 int bit_rate; |
| 256 #define MBR 96 | 259 #define MBR 96 |
| 257 #endif | 260 #endif |
| 258 #define QP_TYPE int //FIXME note xxx this might be changed to int8_t | 261 #define QP_TYPE int //FIXME note xxx this might be changed to int8_t |
| 259 | 262 |
| 260 QP_TYPE *quant_store; /* field for communicating with external postprocessing */ | 263 QP_TYPE *quant_store; /* field for communicating with external postprocessing */ |
| 264 | |
| 261 unsigned qstride; | 265 unsigned qstride; |
| 262 | |
| 263 uint8_t *dr_buffer[3]; | 266 uint8_t *dr_buffer[3]; |
| 264 int dr_stride; | 267 int dr_stride; |
| 265 void *dr_opaque_frame; | 268 void *dr_opaque_frame; |
| 266 void (*get_buffer_callback)(struct AVCodecContext *c, int width, int height, int pict_type); | 269 void (*get_buffer_callback)(struct AVCodecContext *c, int width, int height, int pict_type); |
| 267 | 270 |
| 268 int has_b_frames; // is 1 if the decoded stream contains b frames | 271 int has_b_frames; // is 1 if the decoded stream contains b frames |
| 269 int dr_uvstride; | 272 int dr_uvstride; |
| 270 int dr_ip_buffer_count; | 273 int dr_ip_buffer_count; |
| 271 int block_align; /* currently only for adpcm codec in wav/avi */ | 274 int block_align; /* currently only for adpcm codec in wav/avi */ |
| 275 | |
| 276 int parse_only; /* decoding only: if true, only parsing is done | |
| 277 (function avcodec_parse_frame()). The frame | |
| 278 data is returned. Only MPEG codecs support this now. */ | |
| 272 | 279 |
| 273 //FIXME this should be reordered after kabis API is finished ... | 280 //FIXME this should be reordered after kabis API is finished ... |
| 274 /* | 281 /* |
| 275 Note: Below are located reserved fields for further usage | 282 Note: Below are located reserved fields for further usage |
| 276 It requires for ABI !!! | 283 It requires for ABI !!! |
| 290 *ptr_res6; | 297 *ptr_res6; |
| 291 unsigned long int | 298 unsigned long int |
| 292 ul_res0,ul_res1,ul_res2,ul_res3,ul_res4,ul_res5, | 299 ul_res0,ul_res1,ul_res2,ul_res3,ul_res4,ul_res5, |
| 293 ul_res6,ul_res7,ul_res8,ul_res9,ul_res10,ul_res11,ul_res12; | 300 ul_res6,ul_res7,ul_res8,ul_res9,ul_res10,ul_res11,ul_res12; |
| 294 unsigned int | 301 unsigned int |
| 295 ui_res0,ui_res1; | 302 ui_res0; |
| 296 unsigned short int | 303 unsigned short int |
| 297 us_res0,us_res1,us_res2,us_res3,us_res4,us_res5, | 304 us_res0,us_res1,us_res2,us_res3,us_res4,us_res5, |
| 298 us_res6,us_res7,us_res8,us_res9,us_res10,us_res11,us_res12; | 305 us_res6,us_res7,us_res8,us_res9,us_res10,us_res11,us_res12; |
| 299 unsigned char | 306 unsigned char |
| 300 uc_res0,uc_res1,uc_res2,uc_res3,uc_res4,uc_res5, | 307 uc_res0,uc_res1,uc_res2,uc_res3,uc_res4,uc_res5, |
| 457 int *frame_size_ptr, | 464 int *frame_size_ptr, |
| 458 UINT8 *buf, int buf_size); | 465 UINT8 *buf, int buf_size); |
| 459 int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture, | 466 int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture, |
| 460 int *got_picture_ptr, | 467 int *got_picture_ptr, |
| 461 UINT8 *buf, int buf_size); | 468 UINT8 *buf, int buf_size); |
| 469 int avcodec_parse_frame(AVCodecContext *avctx, UINT8 **pdata, | |
| 470 int *data_size_ptr, | |
| 471 UINT8 *buf, int buf_size); | |
| 462 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size, | 472 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size, |
| 463 const short *samples); | 473 const short *samples); |
| 464 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, | 474 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, |
| 465 const AVPicture *pict); | 475 const AVPicture *pict); |
| 466 | 476 |
