Commit 757cd8d8 authored by Luca Barbato's avatar Luca Barbato

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
parent 384bdace
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "attributes.h" #include "attributes.h"
/** /**
* @ingroup lavu_crypto
* Calculate the Adler32 checksum of a buffer. * Calculate the Adler32 checksum of a buffer.
* *
* Passing the return value to a subsequent av_adler32_update() call * Passing the return value to a subsequent av_adler32_update() call
......
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
#include <stdint.h> #include <stdint.h>
/**
* @defgroup lavu_aes AES
* @ingroup lavu_crypto
* @{
*/
extern const int av_aes_size; extern const int av_aes_size;
struct AVAES; struct AVAES;
...@@ -44,4 +50,8 @@ int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); ...@@ -44,4 +50,8 @@ int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
*/ */
void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
/**
* @}
*/
#endif /* AVUTIL_AES_H */ #endif /* AVUTIL_AES_H */
...@@ -29,7 +29,15 @@ ...@@ -29,7 +29,15 @@
* audio conversion routines * audio conversion routines
*/ */
/* Audio channel masks */ /**
* @addtogroup lavu_audio
* @{
*/
/**
* @defgroup channel_masks Audio channel masks
* @{
*/
#define AV_CH_FRONT_LEFT 0x00000001 #define AV_CH_FRONT_LEFT 0x00000001
#define AV_CH_FRONT_RIGHT 0x00000002 #define AV_CH_FRONT_RIGHT 0x00000002
#define AV_CH_FRONT_CENTER 0x00000004 #define AV_CH_FRONT_CENTER 0x00000004
...@@ -56,7 +64,11 @@ ...@@ -56,7 +64,11 @@
to be the native codec channel order. */ to be the native codec channel order. */
#define AV_CH_LAYOUT_NATIVE 0x8000000000000000LL #define AV_CH_LAYOUT_NATIVE 0x8000000000000000LL
/* Audio channel convenience macros */ /**
* @}
* @defgroup channel_mask_c Audio channel convenience macros
* @{
* */
#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) #define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER)
#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) #define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)
...@@ -73,6 +85,10 @@ ...@@ -73,6 +85,10 @@
#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) #define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) #define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
/**
* @}
*/
/** /**
* Return a channel layout id that matches name, 0 if no match. * Return a channel layout id that matches name, 0 if no match.
*/ */
...@@ -92,4 +108,8 @@ void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int6 ...@@ -92,4 +108,8 @@ void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int6
*/ */
int av_get_channel_layout_nb_channels(int64_t channel_layout); int av_get_channel_layout_nb_channels(int64_t channel_layout);
/**
* @}
*/
#endif /* AVUTIL_AUDIOCONVERT_H */ #endif /* AVUTIL_AUDIOCONVERT_H */
...@@ -24,6 +24,11 @@ ...@@ -24,6 +24,11 @@
#include <stddef.h> #include <stddef.h>
#include "attributes.h" #include "attributes.h"
/**
* @addtogroup lavu_string
* @{
*/
/** /**
* Return non-zero if pfx is a prefix of str. If it is, *ptr is set to * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to
* the address of the first character in str after the prefix. * the address of the first character in str after the prefix.
...@@ -72,7 +77,7 @@ char *av_stristr(const char *haystack, const char *needle); ...@@ -72,7 +77,7 @@ char *av_stristr(const char *haystack, const char *needle);
* @param size size of destination buffer * @param size size of destination buffer
* @return the length of src * @return the length of src
* *
* WARNING: since the return value is the length of src, src absolutely * @warning since the return value is the length of src, src absolutely
* _must_ be a properly 0-terminated string, otherwise this will read beyond * _must_ be a properly 0-terminated string, otherwise this will read beyond
* the end of the buffer and possibly crash. * the end of the buffer and possibly crash.
*/ */
...@@ -90,9 +95,9 @@ size_t av_strlcpy(char *dst, const char *src, size_t size); ...@@ -90,9 +95,9 @@ size_t av_strlcpy(char *dst, const char *src, size_t size);
* @param size size of destination buffer * @param size size of destination buffer
* @return the total length of src and dst * @return the total length of src and dst
* *
* WARNING: since the return value use the length of src and dst, these absolutely * @warning since the return value use the length of src and dst, these
* _must_ be a properly 0-terminated strings, otherwise this will read beyond * absolutely _must_ be a properly 0-terminated strings, otherwise this
* the end of the buffer and possibly crash. * will read beyond the end of the buffer and possibly crash.
*/ */
size_t av_strlcat(char *dst, const char *src, size_t size); size_t av_strlcat(char *dst, const char *src, size_t size);
...@@ -153,14 +158,18 @@ static inline int av_tolower(int c) ...@@ -153,14 +158,18 @@ static inline int av_tolower(int c)
/* /*
* Locale independent case-insensitive compare. * Locale independent case-insensitive compare.
* Note: This means only ASCII-range characters are case-insensitive * @note This means only ASCII-range characters are case-insensitive
*/ */
int av_strcasecmp(const char *a, const char *b); int av_strcasecmp(const char *a, const char *b);
/** /**
* Locale independent case-insensitive compare. * Locale independent case-insensitive compare.
* Note: This means only ASCII-range characters are case-insensitive * @note This means only ASCII-range characters are case-insensitive
*/ */
int av_strncasecmp(const char *a, const char *b, size_t n); int av_strncasecmp(const char *a, const char *b, size_t n);
/**
* @}
*/
#endif /* AVUTIL_AVSTRING_H */ #endif /* AVUTIL_AVSTRING_H */
...@@ -26,6 +26,95 @@ ...@@ -26,6 +26,95 @@
* external API header * 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_STRINGIFY(s) AV_TOSTRING(s)
#define AV_TOSTRING(s) #s #define AV_TOSTRING(s) #s
...@@ -35,10 +124,34 @@ ...@@ -35,10 +124,34 @@
#define AV_PRAGMA(s) _Pragma(#s) #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_INT(a, b, c) (a<<16 | b<<8 | c)
#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
#define AV_VERSION(a, b, c) AV_VERSION_DOT(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_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 16 #define LIBAVUTIL_VERSION_MINOR 16
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
...@@ -54,8 +167,16 @@ ...@@ -54,8 +167,16 @@
#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) #define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
/** /**
* @}
*
* @defgroup depr_guards Deprecation guards
* Those FF_API_* defines are not part of public API. * Those FF_API_* defines are not part of public API.
* They may change, break or disappear at any time. * 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 #ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52) #define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52)
...@@ -70,6 +191,15 @@ ...@@ -70,6 +191,15 @@
#define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 52) #define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 52)
#endif #endif
/**
* @}
*/
/**
* @addtogroup lavu_ver
* @{
*/
/** /**
* Return the LIBAVUTIL_VERSION_INT constant. * Return the LIBAVUTIL_VERSION_INT constant.
*/ */
...@@ -85,16 +215,35 @@ const char *avutil_configuration(void); ...@@ -85,16 +215,35 @@ const char *avutil_configuration(void);
*/ */
const char *avutil_license(void); const char *avutil_license(void);
/**
* @}
*/
/**
* @addtogroup lavu_media Media Type
* @brief Media Type
*/
enum AVMediaType { enum AVMediaType {
AVMEDIA_TYPE_UNKNOWN = -1, AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA
AVMEDIA_TYPE_VIDEO, AVMEDIA_TYPE_VIDEO,
AVMEDIA_TYPE_AUDIO, AVMEDIA_TYPE_AUDIO,
AVMEDIA_TYPE_DATA, AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous
AVMEDIA_TYPE_SUBTITLE, AVMEDIA_TYPE_SUBTITLE,
AVMEDIA_TYPE_ATTACHMENT, AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse
AVMEDIA_TYPE_NB 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_SHIFT 7
#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT) #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda #define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
...@@ -102,10 +251,46 @@ enum AVMediaType { ...@@ -102,10 +251,46 @@ enum AVMediaType {
#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove #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) #define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
/**
* Internal time base represented as integer
*/
#define AV_TIME_BASE 1000000 #define AV_TIME_BASE 1000000
/**
* Internal time base represented as fractional value
*/
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} #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 { enum AVPictureType {
AV_PICTURE_TYPE_I = 1, ///< Intra AV_PICTURE_TYPE_I = 1, ///< Intra
AV_PICTURE_TYPE_P, ///< Predicted AV_PICTURE_TYPE_P, ///< Predicted
...@@ -125,7 +310,16 @@ enum AVPictureType { ...@@ -125,7 +310,16 @@ enum AVPictureType {
*/ */
char av_get_picture_type_char(enum AVPictureType pict_type); char av_get_picture_type_char(enum AVPictureType pict_type);
/**
* @}
*/
#include "common.h" #include "common.h"
#include "error.h" #include "error.h"
/**
* @}
* @}
*/
#endif /* AVUTIL_AVUTIL_H */ #endif /* AVUTIL_AVUTIL_H */
...@@ -23,6 +23,13 @@ ...@@ -23,6 +23,13 @@
#include <stdint.h> #include <stdint.h>
/**
* @defgroup lavu_base64 Base64
* @ingroup lavu_crypto
* @{
*/
/** /**
* Decode a base64-encoded string. * Decode a base64-encoded string.
* *
...@@ -51,4 +58,8 @@ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); ...@@ -51,4 +58,8 @@ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
*/ */
#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) #define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1)
/**
* @}
*/
#endif /* AVUTIL_BASE64_H */ #endif /* AVUTIL_BASE64_H */
...@@ -26,7 +26,11 @@ ...@@ -26,7 +26,11 @@
#define AVUTIL_DICT_H #define AVUTIL_DICT_H
/** /**
* @defgroup dict_api Public Dictionary API * @addtogroup lavu_dict AVDictionary
* @ingroup lavu_data
*
* @brief Simple key:value store
*
* @{ * @{
* Dictionaries are used for storing key:value pairs. To create * Dictionaries are used for storing key:value pairs. To create
* an AVDictionary, simply pass an address of a NULL pointer to * an AVDictionary, simply pass an address of a NULL pointer to
...@@ -52,7 +56,6 @@ ...@@ -52,7 +56,6 @@
* av_dict_free(&d); * av_dict_free(&d);
* @endcode * @endcode
* *
* @}
*/ */
#define AV_DICT_MATCH_CASE 1 #define AV_DICT_MATCH_CASE 1
...@@ -111,4 +114,8 @@ void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags); ...@@ -111,4 +114,8 @@ void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags);
*/ */
void av_dict_free(AVDictionary **m); void av_dict_free(AVDictionary **m);
/**
* @}
*/
#endif // AVUTIL_DICT_H #endif // AVUTIL_DICT_H
...@@ -27,6 +27,13 @@ ...@@ -27,6 +27,13 @@
#include <errno.h> #include <errno.h>
#include "avutil.h" #include "avutil.h"
/**
* @addtogroup lavu_error
*
* @{
*/
/* error handling */ /* error handling */
#if EDOM > 0 #if EDOM > 0
#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. #define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions.
...@@ -65,4 +72,8 @@ ...@@ -65,4 +72,8 @@
*/ */
int av_strerror(int errnum, char *errbuf, size_t errbuf_size); int av_strerror(int errnum, char *errbuf, size_t errbuf_size);
/**
* @}
*/
#endif /* AVUTIL_ERROR_H */ #endif /* AVUTIL_ERROR_H */
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
/** /**
* @file * @file
* misc image utilities * misc image utilities
*
* @addtogroup lavu_picture
* @{
*/ */
#include "avutil.h" #include "avutil.h"
...@@ -127,4 +130,9 @@ int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *lo ...@@ -127,4 +130,9 @@ int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *lo
int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt); int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt);
/**
* @}
*/
#endif /* AVUTIL_IMGUTILS_H */ #endif /* AVUTIL_IMGUTILS_H */
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
#include "config.h" #include "config.h"
#include "attributes.h" #include "attributes.h"
/**
* @addtogroup lavu_internal
* @{
*/
extern const uint32_t ff_inverse[257]; extern const uint32_t ff_inverse[257];
#if ARCH_ARM #if ARCH_ARM
...@@ -76,4 +81,7 @@ static inline av_const unsigned int ff_sqrt(unsigned int a) ...@@ -76,4 +81,7 @@ static inline av_const unsigned int ff_sqrt(unsigned int a)
return b - (a < b * b); return b - (a < b * b);
} }
/**
* @}
*/
#endif /* AVUTIL_INTMATH_H */ #endif /* AVUTIL_INTMATH_H */
...@@ -22,6 +22,13 @@ ...@@ -22,6 +22,13 @@
#ifndef AVUTIL_LZO_H #ifndef AVUTIL_LZO_H
#define AVUTIL_LZO_H #define AVUTIL_LZO_H
/**
* @defgroup lavu_lzo LZO
* @ingroup lavu_crypto
*
* @{
*/
#include <stdint.h> #include <stdint.h>
/** @name Error flags returned by av_lzo1x_decode /** @name Error flags returned by av_lzo1x_decode
...@@ -63,4 +70,8 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen); ...@@ -63,4 +70,8 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen);
*/ */
void av_memcpy_backptr(uint8_t *dst, int back, int cnt); void av_memcpy_backptr(uint8_t *dst, int back, int cnt);
/**
* @}
*/
#endif /* AVUTIL_LZO_H */ #endif /* AVUTIL_LZO_H */
...@@ -57,6 +57,12 @@ ...@@ -57,6 +57,12 @@
#define INFINITY (1.0/0.0) #define INFINITY (1.0/0.0)
#endif #endif
/**
* @addtogroup lavu_math
* @{
*/
enum AVRounding { enum AVRounding {
AV_ROUND_ZERO = 0, ///< Round toward zero. AV_ROUND_ZERO = 0, ///< Round toward zero.
AV_ROUND_INF = 1, ///< Round away from zero. AV_ROUND_INF = 1, ///< Round away from zero.
...@@ -109,4 +115,8 @@ int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); ...@@ -109,4 +115,8 @@ int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
*/ */
int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod);
/**
* @}
*/
#endif /* AVUTIL_MATHEMATICS_H */ #endif /* AVUTIL_MATHEMATICS_H */
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
#include <stdint.h> #include <stdint.h>
/**
* @defgroup lavu_md5 MD5
* @ingroup lavu_crypto
* @{
*/
extern const int av_md5_size; extern const int av_md5_size;
struct AVMD5; struct AVMD5;
...@@ -32,5 +38,9 @@ void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, const int len); ...@@ -32,5 +38,9 @@ void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, const int len);
void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); void av_md5_final(struct AVMD5 *ctx, uint8_t *dst);
void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len); void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len);
/**
* @}
*/
#endif /* AVUTIL_MD5_H */ #endif /* AVUTIL_MD5_H */
...@@ -29,6 +29,12 @@ ...@@ -29,6 +29,12 @@
#include "attributes.h" #include "attributes.h"
#include "avutil.h" #include "avutil.h"
/**
* @addtogroup lavu_mem
* @{
*/
#if defined(__ICC) && _ICC < 1200 || defined(__SUNPRO_C) #if defined(__ICC) && _ICC < 1200 || defined(__SUNPRO_C)
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
#define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
...@@ -123,4 +129,8 @@ char *av_strdup(const char *s) av_malloc_attrib; ...@@ -123,4 +129,8 @@ char *av_strdup(const char *s) av_malloc_attrib;
*/ */
void av_freep(void *ptr); void av_freep(void *ptr);
/**
* @}
*/
#endif /* AVUTIL_MEM_H */ #endif /* AVUTIL_MEM_H */
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
/** /**
* @defgroup avoptions AVOptions * @defgroup avoptions AVOptions
* @ingroup lavu_data
* @{ * @{
* AVOptions provide a generic system to declare options on arbitrary structs * AVOptions provide a generic system to declare options on arbitrary structs
* ("objects"). An option can have a help text, a type and a range of possible * ("objects"). An option can have a help text, a type and a range of possible
...@@ -212,7 +213,6 @@ ...@@ -212,7 +213,6 @@
* filled with option as a parameter. This allows to set some options * filled with option as a parameter. This allows to set some options
* that cannot be set otherwise, since e.g. the input file format is not known * that cannot be set otherwise, since e.g. the input file format is not known
* before the file is actually opened. * before the file is actually opened.
* @}
*/ */
enum AVOptionType{ enum AVOptionType{
...@@ -584,6 +584,7 @@ int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t ...@@ -584,6 +584,7 @@ int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t
int av_opt_get_double(void *obj, const char *name, int search_flags, double *out_val); int av_opt_get_double(void *obj, const char *name, int search_flags, double *out_val);
int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val); int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val);
/** /**
* @}
* @} * @}
*/ */
......
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
#define AVUTIL_RANDOM_SEED_H #define AVUTIL_RANDOM_SEED_H
#include <stdint.h> #include <stdint.h>
/**
* @addtogroup lavu_crypto
* @{
*/
/** /**
* Get random data. * Get random data.
...@@ -33,4 +37,8 @@ ...@@ -33,4 +37,8 @@
*/ */
uint32_t av_get_random_seed(void); uint32_t av_get_random_seed(void);
/**
* @}
*/
#endif /* AVUTIL_RANDOM_SEED_H */ #endif /* AVUTIL_RANDOM_SEED_H */
...@@ -32,6 +32,11 @@ ...@@ -32,6 +32,11 @@
#include <limits.h> #include <limits.h>
#include "attributes.h" #include "attributes.h"
/**
* @addtogroup lavu_math
* @{
*/
/** /**
* rational number numerator/denominator * rational number numerator/denominator
*/ */
...@@ -132,4 +137,8 @@ int av_nearer_q(AVRational q, AVRational q1, AVRational q2); ...@@ -132,4 +137,8 @@ int av_nearer_q(AVRational q, AVRational q1, AVRational q2);
*/ */
int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); int av_find_nearest_q_idx(AVRational q, const AVRational* q_list);
/**
* @}
*/
#endif /* AVUTIL_RATIONAL_H */ #endif /* AVUTIL_RATIONAL_H */
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
#include <stdint.h> #include <stdint.h>
/**
* @defgroup lavu_sha SHA
* @ingroup lavu_crypto
* @{
*/
extern const int av_sha_size; extern const int av_sha_size;
struct AVSHA; struct AVSHA;
...@@ -53,4 +59,8 @@ void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len) ...@@ -53,4 +59,8 @@ void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len)
*/ */
void av_sha_final(struct AVSHA* context, uint8_t *digest); void av_sha_final(struct AVSHA* context, uint8_t *digest);
/**
* @}
*/
#endif /* AVUTIL_SHA_H */ #endif /* AVUTIL_SHA_H */
...@@ -21,14 +21,24 @@ ...@@ -21,14 +21,24 @@
/** /**
* @file * @file
* A tree container. * A tree container.
* Insertion, removal, finding equal, largest which is smaller than and
* smallest which is larger than, all have O(log n) worst case complexity.
* @author Michael Niedermayer <michaelni@gmx.at> * @author Michael Niedermayer <michaelni@gmx.at>
*/ */
#ifndef AVUTIL_TREE_H #ifndef AVUTIL_TREE_H
#define AVUTIL_TREE_H #define AVUTIL_TREE_H
/**
* @addtogroup lavu_tree AVTree
* @ingroup lavu_data
*
* Low complexity tree container
*
* Insertion, removal, finding equal, largest which is smaller than and
* smallest which is larger than, all have O(log n) worst case complexity.
* @{
*/
struct AVTreeNode; struct AVTreeNode;
extern const int av_tree_node_size; extern const int av_tree_node_size;
...@@ -91,5 +101,8 @@ void av_tree_destroy(struct AVTreeNode *t); ...@@ -91,5 +101,8 @@ void av_tree_destroy(struct AVTreeNode *t);
*/ */
void av_tree_enumerate(struct AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem)); void av_tree_enumerate(struct AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem));
/**
* @}
*/
#endif /* AVUTIL_TREE_H */ #endif /* AVUTIL_TREE_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment