diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2011-11-20 20:38:24 +0100 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2011-11-22 17:16:02 +0100 |
commit | 757cd8d876b18c07e00b53fd4e5c01bedc106d2e (patch) | |
tree | eab216085c5b151ac19d37f0f57df76f9d60031d /libavutil/avutil.h | |
parent | 384bdaceeb9c82d5b64a6f73e5273298b38028e9 (diff) | |
download | ffmpeg-757cd8d876b18c07e00b53fd4e5c01bedc106d2e.tar.gz |
doxy: provide a start page and document libavutil
Introduce a basic layout, the subpages are currently left empty.
Split libavutil in multiple groups as example of the structure
Diffstat (limited to 'libavutil/avutil.h')
-rw-r--r-- | libavutil/avutil.h | 200 |
1 files changed, 197 insertions, 3 deletions
diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 436f79b82d..659a10f070 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -26,6 +26,95 @@ * external API header */ +/** + * @mainpage + * + * @section libav_intro Introduction + * + * This document describe the usage of the different libraries + * provided by Libav. + * + * @li @subpage libavcodec encoding/decoding library + * @li @subpage libavfilter graph based frame editing library + * @li @subpage libavformat I/O and muxing/demuxing library + * @li @ref lavu "libavutil" common utility library + * @li @subpage libpostproc post processing library + * @li @subpage libswscale color conversion and scaling library + * + */ + +/** + * @defgroup lavu Common utility functions + * + * @brief + * libavutil contains the code shared across all the other Libav + * libraries + * + * @note In order to use the functions provided by avutil you must include + * the specific header. + * + * @{ + * + * @defgroup lavu_crypto Crypto and Hashing + * + * @{ + * @} + * + * @defgroup lavu_math Maths + * @{ + * + * @} + * + * @defgroup lavu_string String Manipulation + * + * @{ + * + * @} + * + * @defgroup lavu_mem Memory Management + * + * @{ + * + * @} + * + * @defgroup lavu_data Data Structures + * @{ + * + * @} + * + * @defgroup lavu_audio Audio related + * + * @{ + * + * @} + * + * @defgroup lavu_error Error Codes + * + * @{ + * + * @} + * + * @defgroup lavu_misc Other + * + * @{ + * + * @defgroup lavu_internal Internal + * + * Not exported functions, for internal usage only + * + * @{ + * + * @} + */ + + +/** + * @defgroup preproc_misc Preprocessor String Macros + * + * String manipulation macros + * + * @{ + */ #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s @@ -35,10 +124,34 @@ #define AV_PRAGMA(s) _Pragma(#s) +/** + * @} + */ + +/** + * @defgroup version_utils Library Version Macros + * + * Useful to check and match library version in order to maintain + * backward compatibility. + * + * @{ + */ + #define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c) #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) +/** + * @} + * + * @defgroup lavu_ver Version and Build diagnostics + * + * Macros and function useful to check at compiletime and at runtime + * which version of libavutil is in use. + * + * @{ + */ + #define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MINOR 16 #define LIBAVUTIL_VERSION_MICRO 0 @@ -54,8 +167,16 @@ #define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) /** + * @} + * + * @defgroup depr_guards Deprecation guards * Those FF_API_* defines are not part of public API. * They may change, break or disappear at any time. + * + * They are used mostly internally to mark code that will be removed + * on the next major version. + * + * @{ */ #ifndef FF_API_GET_BITS_PER_SAMPLE_FMT #define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52) @@ -71,6 +192,15 @@ #endif /** + * @} + */ + +/** + * @addtogroup lavu_ver + * @{ + */ + +/** * Return the LIBAVUTIL_VERSION_INT constant. */ unsigned avutil_version(void); @@ -85,16 +215,35 @@ const char *avutil_configuration(void); */ const char *avutil_license(void); +/** + * @} + */ + +/** + * @addtogroup lavu_media Media Type + * @brief Media Type + */ + enum AVMediaType { - AVMEDIA_TYPE_UNKNOWN = -1, + AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA AVMEDIA_TYPE_VIDEO, AVMEDIA_TYPE_AUDIO, - AVMEDIA_TYPE_DATA, + AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous AVMEDIA_TYPE_SUBTITLE, - AVMEDIA_TYPE_ATTACHMENT, + AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse AVMEDIA_TYPE_NB }; +/** + * @defgroup lavu_const Constants + * @{ + * + * @defgroup lavu_enc Encoding specific + * + * @note those definition should move to avcodec + * @{ + */ + #define FF_LAMBDA_SHIFT 7 #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT) #define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda @@ -102,10 +251,46 @@ enum AVMediaType { #define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove +/** + * @} + * @defgroup lavu_time Timestamp specific + * + * Libav internal timebase and timestamp definitions + * + * @{ + */ + +/** + * @brief Undefined timestamp value + * + * Usually reported by demuxer that work on containers that do not provide + * either pts or dts. + */ + #define AV_NOPTS_VALUE INT64_C(0x8000000000000000) + +/** + * Internal time base represented as integer + */ + #define AV_TIME_BASE 1000000 + +/** + * Internal time base represented as fractional value + */ + #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} +/** + * @} + * @} + * @defgroup lavu_picture Image related + * + * AVPicture types, pixel formats and basic image planes manipulation. + * + * @{ + */ + enum AVPictureType { AV_PICTURE_TYPE_I = 1, ///< Intra AV_PICTURE_TYPE_P, ///< Predicted @@ -125,7 +310,16 @@ enum AVPictureType { */ char av_get_picture_type_char(enum AVPictureType pict_type); +/** + * @} + */ + #include "common.h" #include "error.h" +/** + * @} + * @} + */ + #endif /* AVUTIL_AVUTIL_H */ |