diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-12-11 12:05:11 +0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-12-12 22:44:12 +0400 |
commit | ccbc106841ced3ea2653a48cae1038a324313f1c (patch) | |
tree | ca2d45334bce0acf1b725d207be53d7b9df9d533 /libavformat | |
parent | abf2c2d787ed3e3d91425b38c4b356b8f00f8dc2 (diff) |
lavf doxy: add some general lavf information.
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/avformat.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libavformat/avformat.h b/libavformat/avformat.h index cfec2f6a99..688137259d 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -31,6 +31,41 @@ * @defgroup libavf I/O and Muxing/Demuxing Library * @{ * + * Libavformat (lavf) is a library for dealing with various media container + * formats. Its main two purposes are demuxing - i.e. splitting a media file + * into component streams, and the reverse process of muxing - writing supplied + * data in a specified container format. It also has an @ref lavf_io + * "I/O module" which supports a number of protocols for accessing the data (e.g. + * file, tcp, http and others). Before using lavf, you need to call + * av_register_all() to register all compiled muxers, demuxers and protocols. + * Unless you are absolutely sure you won't use libavformat's network + * capabilities, you should also call avformat_network_init(). + * + * A supported input format is described by an AVInputFormat struct, conversely + * an output format is described by AVOutputFormat. You can iterate over all + * registered input/output formats using the av_iformat_next() / + * av_oformat_next() functions. The protocols layer is not part of the public + * API, so you can only get the names of supported protocols with the + * avio_enum_protocols() function. + * + * Main lavf structure used for both muxing and demuxing is AVFormatContext, + * which exports all information about the file being read or written. As with + * most Libav structures, its size is not part of public ABI, so it cannot be + * allocated on stack or directly with av_malloc(). To create an + * AVFormatContext, use avformat_alloc_context() (some functions, like + * avformat_open_input() might do that for you). + * + * Most importantly an AVFormatContext contains: + * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat + * "output" format. It is either autodetected or set by user for input; + * always set by user for output. + * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all + * elementary streams stored in the file. AVStreams are typically referred to + * using their index in this array. + * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or + * set by user for input, always set by user for output (unless you are dealing + * with an AVFMT_NOFILE format). + * * @defgroup lavf_decoding Demuxing * @{ * @} |