Mercurial > libavcodec.hg
comparison avcodec.h @ 2979:bfabfdf9ce55 libavcodec
COSMETICS: tabs --> spaces, some prettyprinting
author | diego |
---|---|
date | Thu, 22 Dec 2005 01:10:11 +0000 |
parents | 1c22981c3498 |
children | 9d7d2bb70fd6 |
comparison
equal
deleted
inserted
replaced
2978:403183bbb505 | 2979:bfabfdf9ce55 |
---|---|
13 | 13 |
14 #include "avutil.h" | 14 #include "avutil.h" |
15 #include <sys/types.h> /* size_t */ | 15 #include <sys/types.h> /* size_t */ |
16 | 16 |
17 //FIXME the following 2 really dont belong in here | 17 //FIXME the following 2 really dont belong in here |
18 #define FFMPEG_VERSION_INT 0x000409 | 18 #define FFMPEG_VERSION_INT 0x000409 |
19 #define FFMPEG_VERSION "CVS" | 19 #define FFMPEG_VERSION "CVS" |
20 | 20 |
21 #define AV_STRINGIFY(s) AV_TOSTRING(s) | 21 #define AV_STRINGIFY(s) AV_TOSTRING(s) |
22 #define AV_TOSTRING(s) #s | 22 #define AV_TOSTRING(s) #s |
23 | 23 |
24 #define LIBAVCODEC_VERSION_INT ((51<<16)+(0<<8)+0) | 24 #define LIBAVCODEC_VERSION_INT ((51<<16)+(0<<8)+0) |
25 #define LIBAVCODEC_VERSION 51.0.0 | 25 #define LIBAVCODEC_VERSION 51.0.0 |
26 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT | 26 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT |
27 | 27 |
28 #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) | 28 #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) |
29 | 29 |
30 #define AV_NOPTS_VALUE int64_t_C(0x8000000000000000) | 30 #define AV_NOPTS_VALUE int64_t_C(0x8000000000000000) |
31 #define AV_TIME_BASE 1000000 | 31 #define AV_TIME_BASE 1000000 |
32 #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} | 32 #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} |
33 | 33 |
34 enum CodecID { | 34 enum CodecID { |
35 CODEC_ID_NONE, | 35 CODEC_ID_NONE, |
36 CODEC_ID_MPEG1VIDEO, | 36 CODEC_ID_MPEG1VIDEO, |
37 CODEC_ID_MPEG2VIDEO, /* prefered ID for MPEG Video 1 or 2 decoding */ | 37 CODEC_ID_MPEG2VIDEO, /* prefered ID for MPEG Video 1 or 2 decoding */ |
360 #define CODEC_FLAG2_STRICT_GOP 0x00000002 ///< strictly enforce GOP size | 360 #define CODEC_FLAG2_STRICT_GOP 0x00000002 ///< strictly enforce GOP size |
361 #define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< skip bitstream encoding | 361 #define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< skip bitstream encoding |
362 #define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< place global headers at every keyframe instead of in extradata | 362 #define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< place global headers at every keyframe instead of in extradata |
363 | 363 |
364 /* Unsupported options : | 364 /* Unsupported options : |
365 * Syntax Arithmetic coding (SAC) | 365 * Syntax Arithmetic coding (SAC) |
366 * Reference Picture Selection | 366 * Reference Picture Selection |
367 * Independant Segment Decoding */ | 367 * Independant Segment Decoding */ |
368 /* /Fx */ | 368 /* /Fx */ |
369 /* codec capabilities */ | 369 /* codec capabilities */ |
370 | 370 |
371 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< decoder can use draw_horiz_band callback | 371 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< decoder can use draw_horiz_band callback |
372 /** | 372 /** |
644 * - encoding: set by user\ | 644 * - encoding: set by user\ |
645 * - decoding: set by lavc\ | 645 * - decoding: set by lavc\ |
646 */\ | 646 */\ |
647 int8_t *ref_index[2]; | 647 int8_t *ref_index[2]; |
648 | 648 |
649 #define FF_QSCALE_TYPE_MPEG1 0 | 649 #define FF_QSCALE_TYPE_MPEG1 0 |
650 #define FF_QSCALE_TYPE_MPEG2 1 | 650 #define FF_QSCALE_TYPE_MPEG2 1 |
651 #define FF_QSCALE_TYPE_H264 2 | 651 #define FF_QSCALE_TYPE_H264 2 |
652 | 652 |
653 #define FF_BUFFER_TYPE_INTERNAL 1 | 653 #define FF_BUFFER_TYPE_INTERNAL 1 |
654 #define FF_BUFFER_TYPE_USER 2 ///< Direct rendering buffers (image is (de)allocated by user) | 654 #define FF_BUFFER_TYPE_USER 2 ///< Direct rendering buffers (image is (de)allocated by user) |
655 #define FF_BUFFER_TYPE_SHARED 4 ///< buffer from somewhere else, don't dealloc image (data/base), all other tables are not shared | 655 #define FF_BUFFER_TYPE_SHARED 4 ///< buffer from somewhere else, don't dealloc image (data/base), all other tables are not shared |
656 #define FF_BUFFER_TYPE_COPY 8 ///< just a (modified) copy of some other buffer, don't dealloc anything | 656 #define FF_BUFFER_TYPE_COPY 8 ///< just a (modified) copy of some other buffer, don't dealloc anything |
682 */ | 682 */ |
683 typedef struct AVCLASS AVClass; | 683 typedef struct AVCLASS AVClass; |
684 struct AVCLASS { | 684 struct AVCLASS { |
685 const char* class_name; | 685 const char* class_name; |
686 const char* (*item_name)(void*); /* actually passing a pointer to an AVCodecContext | 686 const char* (*item_name)(void*); /* actually passing a pointer to an AVCodecContext |
687 or AVFormatContext, which begin with an AVClass. | 687 or AVFormatContext, which begin with an AVClass. |
688 Needed because av_log is in libavcodec and has no visibility | 688 Needed because av_log is in libavcodec and has no visibility |
689 of AVIn/OutputFormat */ | 689 of AVIn/OutputFormat */ |
690 struct AVOption *option; | 690 struct AVOption *option; |
691 }; | 691 }; |
692 | 692 |
693 /** | 693 /** |
694 * main external api structure. | 694 * main external api structure. |
1250 * with FORCE flag you may instead enable given CPU features | 1250 * with FORCE flag you may instead enable given CPU features |
1251 * (Dangerous: usable in case of misdetection, improper usage however will | 1251 * (Dangerous: usable in case of misdetection, improper usage however will |
1252 * result into program crash) | 1252 * result into program crash) |
1253 */ | 1253 */ |
1254 unsigned dsp_mask; | 1254 unsigned dsp_mask; |
1255 #define FF_MM_FORCE 0x80000000 /* force usage of selected flags (OR) */ | 1255 #define FF_MM_FORCE 0x80000000 /* force usage of selected flags (OR) */ |
1256 /* lower 16 bits - CPU features */ | 1256 /* lower 16 bits - CPU features */ |
1257 #ifdef HAVE_MMX | 1257 #ifdef HAVE_MMX |
1258 #define FF_MM_MMX 0x0001 /* standard MMX */ | 1258 #define FF_MM_MMX 0x0001 /* standard MMX */ |
1259 #define FF_MM_3DNOW 0x0004 /* AMD 3DNOW */ | 1259 #define FF_MM_3DNOW 0x0004 /* AMD 3DNOW */ |
1260 #define FF_MM_MMXEXT 0x0002 /* SSE integer functions or AMD MMX ext */ | 1260 #define FF_MM_MMXEXT 0x0002 /* SSE integer functions or AMD MMX ext */ |
1261 #define FF_MM_SSE 0x0008 /* SSE functions */ | 1261 #define FF_MM_SSE 0x0008 /* SSE functions */ |
1262 #define FF_MM_SSE2 0x0010 /* PIV SSE2 functions */ | 1262 #define FF_MM_SSE2 0x0010 /* PIV SSE2 functions */ |
1263 #define FF_MM_3DNOWEXT 0x0020 /* AMD 3DNowExt */ | 1263 #define FF_MM_3DNOWEXT 0x0020 /* AMD 3DNowExt */ |
1264 #endif /* HAVE_MMX */ | 1264 #endif /* HAVE_MMX */ |
1265 #ifdef HAVE_IWMMXT | 1265 #ifdef HAVE_IWMMXT |
1266 #define FF_MM_IWMMXT 0x0100 /* XScale IWMMXT */ | 1266 #define FF_MM_IWMMXT 0x0100 /* XScale IWMMXT */ |
1267 #endif /* HAVE_IWMMXT */ | 1267 #endif /* HAVE_IWMMXT */ |
1268 | 1268 |
1269 /** | 1269 /** |
1270 * bits per sample/pixel from the demuxer (needed for huffyuv). | 1270 * bits per sample/pixel from the demuxer (needed for huffyuv). |
1271 * - encoding: set by lavc | 1271 * - encoding: set by lavc |
2221 int has_alpha, int *loss_ptr); | 2221 int has_alpha, int *loss_ptr); |
2222 | 2222 |
2223 #define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ | 2223 #define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ |
2224 #define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */ | 2224 #define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */ |
2225 int img_get_alpha_info(const AVPicture *src, | 2225 int img_get_alpha_info(const AVPicture *src, |
2226 int pix_fmt, int width, int height); | 2226 int pix_fmt, int width, int height); |
2227 | 2227 |
2228 /* convert among pixel formats */ | 2228 /* convert among pixel formats */ |
2229 int img_convert(AVPicture *dst, int dst_pix_fmt, | 2229 int img_convert(AVPicture *dst, int dst_pix_fmt, |
2230 const AVPicture *src, int pix_fmt, | 2230 const AVPicture *src, int pix_fmt, |
2231 int width, int height); | 2231 int width, int height); |