FFmpeg
2.4.3
|
Format I/O context. More...
#include <avformat.h>
Data Fields | |
const AVClass * | av_class |
A class for logging and AVOptions. More... | |
struct AVInputFormat * | iformat |
The input container format. More... | |
struct AVOutputFormat * | oformat |
The output container format. More... | |
void * | priv_data |
Format private data. More... | |
AVIOContext * | pb |
I/O context. More... | |
int | ctx_flags |
Flags signalling stream properties. More... | |
unsigned int | nb_streams |
Number of elements in AVFormatContext.streams. More... | |
AVStream ** | streams |
A list of all streams in the file. More... | |
char | filename [1024] |
input or output filename More... | |
int64_t | start_time |
Position of the first frame of the component, in AV_TIME_BASE fractional seconds. More... | |
int64_t | duration |
Duration of the stream, in AV_TIME_BASE fractional seconds. More... | |
int | bit_rate |
Total stream bitrate in bit/s, 0 if not available. More... | |
unsigned int | packet_size |
int | max_delay |
int | flags |
Flags modifying the (de)muxer behaviour. More... | |
unsigned int | probesize |
attribute_deprecated int | max_analyze_duration |
const uint8_t * | key |
int | keylen |
unsigned int | nb_programs |
AVProgram ** | programs |
enum AVCodecID | video_codec_id |
Forced video codec_id. More... | |
enum AVCodecID | audio_codec_id |
Forced audio codec_id. More... | |
enum AVCodecID | subtitle_codec_id |
Forced subtitle codec_id. More... | |
unsigned int | max_index_size |
Maximum amount of memory in bytes to use for the index of each stream. More... | |
unsigned int | max_picture_buffer |
Maximum amount of memory in bytes to use for buffering frames obtained from realtime capture devices. More... | |
unsigned int | nb_chapters |
Number of chapters in AVChapter array. More... | |
AVChapter ** | chapters |
AVDictionary * | metadata |
Metadata that applies to the whole file. More... | |
int64_t | start_time_realtime |
Start time of the stream in real world time, in microseconds since the Unix epoch (00:00 1st January 1970). More... | |
int | fps_probe_size |
The number of frames used for determining the framerate in avformat_find_stream_info(). More... | |
int | error_recognition |
Error recognition; higher values will detect more errors but may misdetect some more or less valid parts as errors. More... | |
AVIOInterruptCB | interrupt_callback |
Custom interrupt callbacks for the I/O layer. More... | |
int | debug |
Flags to enable debugging. More... | |
int64_t | max_interleave_delta |
Maximum buffering duration for interleaving. More... | |
int | strict_std_compliance |
Allow non-standard and experimental extension. More... | |
int | event_flags |
Flags for the user to detect events happening on the file. More... | |
int | max_ts_probe |
Maximum number of packets to read while waiting for the first timestamp. More... | |
int | ts_id |
Transport stream id. More... | |
int | audio_preload |
Audio preload in microseconds. More... | |
int | max_chunk_duration |
Max chunk time in microseconds. More... | |
int | max_chunk_size |
Max chunk size in bytes Note, not all formats support this and unpredictable things may happen if it is used when not supported. More... | |
int | use_wallclock_as_timestamps |
forces the use of wallclock timestamps as pts/dts of packets This has undefined results in the presence of B frames. More... | |
int | avoid_negative_ts |
Avoid negative timestamps during muxing. More... | |
int | avio_flags |
avio flags, used to force AVIO_FLAG_DIRECT. More... | |
enum AVDurationEstimationMethod | duration_estimation_method |
The duration field can be estimated through various ways, and this field can be used to know how the duration was estimated. More... | |
int64_t | skip_initial_bytes |
Skip initial bytes when opening stream. More... | |
unsigned int | correct_ts_overflow |
Correct single timestamp overflows. More... | |
int | seek2any |
Force seeking to any (also non key) frames. More... | |
int | flush_packets |
Flush the I/O context after each packet. More... | |
int | probe_score |
format probing score. More... | |
int | format_probesize |
number of bytes to read maximally to identify format. More... | |
struct AVPacketList * | packet_buffer |
This buffer is only needed when packets were already buffered but not decoded, for example to get the codec parameters in MPEG streams. More... | |
struct AVPacketList * | packet_buffer_end |
int64_t | data_offset |
offset of the first packet More... | |
struct AVPacketList * | raw_packet_buffer |
Raw packets from the demuxer, prior to parsing and decoding. More... | |
struct AVPacketList * | raw_packet_buffer_end |
struct AVPacketList * | parse_queue |
Packets split by the parser get queued here. More... | |
struct AVPacketList * | parse_queue_end |
int | raw_packet_buffer_remaining_size |
int64_t | offset |
Offset to remap timestamps to be non-negative. More... | |
AVRational | offset_timebase |
Timebase for the timestamp offset. More... | |
AVFormatInternal * | internal |
An opaque field for libavformat internal usage. More... | |
int | io_repositioned |
IO repositioned flag. More... | |
AVCodec * | video_codec |
Forced video codec. More... | |
AVCodec * | audio_codec |
Forced audio codec. More... | |
AVCodec * | subtitle_codec |
Forced subtitle codec. More... | |
int | metadata_header_padding |
Number of bytes to be written as padding in a metadata header. More... | |
void * | opaque |
User data. More... | |
av_format_control_message | control_message_cb |
Callback used by devices to communicate with application. More... | |
int64_t | output_ts_offset |
Output timestamp offset, in microseconds. More... | |
int64_t | max_analyze_duration2 |
Maximum duration (in AV_TIME_BASE units) of the data read from input in avformat_find_stream_info(). More... | |
int64_t | probesize2 |
Maximum size of the data read from input for determining the input container format. More... | |
Format I/O context.
New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. sizeof(AVFormatContext) must not be used outside libav*, use avformat_alloc_context() to create an AVFormatContext.
Definition at line 1179 of file avformat.h.
const AVClass* AVFormatContext::av_class |
A class for logging and AVOptions.
Set by avformat_alloc_context(). Exports (de)muxer private options if they exist.
Definition at line 1184 of file avformat.h.
struct AVInputFormat* AVFormatContext::iformat |
The input container format.
Demuxing only, set by avformat_open_input().
Definition at line 1191 of file avformat.h.
struct AVOutputFormat* AVFormatContext::oformat |
The output container format.
Muxing only, must be set by the caller before avformat_write_header().
Definition at line 1198 of file avformat.h.
Referenced by add_stream(), main(), open_output_file(), and write_video_frame().
void* AVFormatContext::priv_data |
Format private data.
This is an AVOptions-enabled struct if and only if iformat/oformat.priv_class is not NULL.
Definition at line 1207 of file avformat.h.
AVIOContext* AVFormatContext::pb |
I/O context.
Do NOT set this field if AVFMT_NOFILE flag is set in iformat/oformat.flags. In such a case, the (de)muxer will handle I/O in some other way and this field will be NULL.
Definition at line 1221 of file avformat.h.
Referenced by main(), and open_output_file().
int AVFormatContext::ctx_flags |
Flags signalling stream properties.
A combination of AVFMTCTX_*. Set by libavformat.
Definition at line 1228 of file avformat.h.
unsigned int AVFormatContext::nb_streams |
Number of elements in AVFormatContext.streams.
Set by avformat_new_stream(), must not be modified by any other code.
Definition at line 1235 of file avformat.h.
Referenced by add_stream(), init_filters(), main(), open_input_file(), and open_output_file().
AVStream** AVFormatContext::streams |
A list of all streams in the file.
New streams are created with avformat_new_stream().
Freed by libavformat in avformat_free_context().
Definition at line 1247 of file avformat.h.
Referenced by encode_write_frame(), flush_encoder(), init_filters(), log_packet(), main(), open_codec_context(), open_input_file(), and open_output_file().
char AVFormatContext::filename[1024] |
input or output filename
Definition at line 1255 of file avformat.h.
int64_t AVFormatContext::start_time |
Position of the first frame of the component, in AV_TIME_BASE fractional seconds.
NEVER set this value directly: It is deduced from the AVStream values.
Demuxing only, set by libavformat.
Definition at line 1264 of file avformat.h.
int64_t AVFormatContext::duration |
Duration of the stream, in AV_TIME_BASE fractional seconds.
Only set this value if you know none of the individual stream durations and also do not set any of them. This is deduced from the AVStream values if not set.
Demuxing only, set by libavformat.
Definition at line 1274 of file avformat.h.
int AVFormatContext::bit_rate |
Total stream bitrate in bit/s, 0 if not available.
Never set it directly if the file_size and the duration are known as FFmpeg can compute it automatically.
Definition at line 1281 of file avformat.h.
unsigned int AVFormatContext::packet_size |
Definition at line 1283 of file avformat.h.
int AVFormatContext::max_delay |
Definition at line 1284 of file avformat.h.
int AVFormatContext::flags |
Flags modifying the (de)muxer behaviour.
A combination of AVFMT_FLAG_*. Set by the user before avformat_open_input() / avformat_write_header().
Definition at line 1290 of file avformat.h.
unsigned int AVFormatContext::probesize |
Definition at line 1316 of file avformat.h.
attribute_deprecated int AVFormatContext::max_analyze_duration |
Definition at line 1322 of file avformat.h.
const uint8_t* AVFormatContext::key |
Definition at line 1324 of file avformat.h.
int AVFormatContext::keylen |
Definition at line 1325 of file avformat.h.
unsigned int AVFormatContext::nb_programs |
Definition at line 1327 of file avformat.h.
AVProgram** AVFormatContext::programs |
Definition at line 1328 of file avformat.h.
enum AVCodecID AVFormatContext::video_codec_id |
enum AVCodecID AVFormatContext::audio_codec_id |
enum AVCodecID AVFormatContext::subtitle_codec_id |
unsigned int AVFormatContext::max_index_size |
Maximum amount of memory in bytes to use for the index of each stream.
If the index exceeds this size, entries will be discarded as needed to maintain a smaller size. This can lead to slower or less accurate seeking (depends on demuxer). Demuxers for which a full in-memory index is mandatory will ignore this.
Definition at line 1358 of file avformat.h.
unsigned int AVFormatContext::max_picture_buffer |
Maximum amount of memory in bytes to use for buffering frames obtained from realtime capture devices.
Definition at line 1364 of file avformat.h.
unsigned int AVFormatContext::nb_chapters |
Number of chapters in AVChapter array.
When muxing, chapters are normally written in the file header, so nb_chapters should normally be initialized before write_header is called. Some muxers (e.g. mov and mkv) can also write chapters in the trailer. To write chapters in the trailer, nb_chapters must be zero when write_header is called and non-zero when write_trailer is called.
Definition at line 1377 of file avformat.h.
AVChapter** AVFormatContext::chapters |
Definition at line 1378 of file avformat.h.
AVDictionary* AVFormatContext::metadata |
Metadata that applies to the whole file.
Freed by libavformat in avformat_free_context().
Definition at line 1388 of file avformat.h.
Referenced by main().
int64_t AVFormatContext::start_time_realtime |
Start time of the stream in real world time, in microseconds since the Unix epoch (00:00 1st January 1970).
That is, pts=0 in the stream was captured at this real world time.
Definition at line 1401 of file avformat.h.
int AVFormatContext::fps_probe_size |
The number of frames used for determining the framerate in avformat_find_stream_info().
Demuxing only, set by the caller before avformat_find_stream_info().
Definition at line 1408 of file avformat.h.
int AVFormatContext::error_recognition |
Error recognition; higher values will detect more errors but may misdetect some more or less valid parts as errors.
Demuxing only, set by the caller before avformat_open_input().
Definition at line 1415 of file avformat.h.
AVIOInterruptCB AVFormatContext::interrupt_callback |
Custom interrupt callbacks for the I/O layer.
demuxing: set by the user before avformat_open_input(). muxing: set by the user before avformat_write_header() (mainly useful for AVFMT_NOFILE formats). The callback should also be passed to avio_open2() if it's used to open the file.
Definition at line 1426 of file avformat.h.
int AVFormatContext::debug |
Flags to enable debugging.
Definition at line 1431 of file avformat.h.
int64_t AVFormatContext::max_interleave_delta |
Maximum buffering duration for interleaving.
To ensure all the streams are interleaved correctly, av_interleaved_write_frame() will wait until it has at least one packet for each stream before actually writing any packets to the output file. When some streams are "sparse" (i.e. there are large gaps between successive packets), this can result in excessive buffering.
This field specifies the maximum difference between the timestamps of the first and the last packet in the muxing queue, above which libavformat will output a packet regardless of whether it has queued a packet for all the streams.
Muxing only, set by the caller before avformat_write_header().
Definition at line 1450 of file avformat.h.
int AVFormatContext::strict_std_compliance |
Allow non-standard and experimental extension.
Definition at line 1456 of file avformat.h.
int AVFormatContext::event_flags |
Flags for the user to detect events happening on the file.
Flags must be cleared by the user once the event has been handled. A combination of AVFMT_EVENT_FLAG_*.
Definition at line 1463 of file avformat.h.
int AVFormatContext::max_ts_probe |
Maximum number of packets to read while waiting for the first timestamp.
Decoding only.
Definition at line 1470 of file avformat.h.
int AVFormatContext::ts_id |
Transport stream id.
This will be moved into demuxer private options. Thus no API/ABI compatibility
Definition at line 1477 of file avformat.h.
int AVFormatContext::audio_preload |
Audio preload in microseconds.
Note, not all formats support this and unpredictable things may happen if it is used when not supported.
Definition at line 1485 of file avformat.h.
int AVFormatContext::max_chunk_duration |
Max chunk time in microseconds.
Note, not all formats support this and unpredictable things may happen if it is used when not supported.
Definition at line 1493 of file avformat.h.
int AVFormatContext::max_chunk_size |
Max chunk size in bytes Note, not all formats support this and unpredictable things may happen if it is used when not supported.
Definition at line 1501 of file avformat.h.
int AVFormatContext::use_wallclock_as_timestamps |
forces the use of wallclock timestamps as pts/dts of packets This has undefined results in the presence of B frames.
Definition at line 1509 of file avformat.h.
int AVFormatContext::avoid_negative_ts |
Avoid negative timestamps during muxing.
0 -> allow negative timestamps 1 -> avoid negative timestamps -1 -> choose automatically (default) Note, this only works when interleave_packet_per_dts is in use.
Definition at line 1520 of file avformat.h.
int AVFormatContext::avio_flags |
avio flags, used to force AVIO_FLAG_DIRECT.
Definition at line 1527 of file avformat.h.
enum AVDurationEstimationMethod AVFormatContext::duration_estimation_method |
The duration field can be estimated through various ways, and this field can be used to know how the duration was estimated.
Definition at line 1535 of file avformat.h.
int64_t AVFormatContext::skip_initial_bytes |
Skip initial bytes when opening stream.
Definition at line 1542 of file avformat.h.
unsigned int AVFormatContext::correct_ts_overflow |
Correct single timestamp overflows.
Definition at line 1549 of file avformat.h.
int AVFormatContext::seek2any |
Force seeking to any (also non key) frames.
Definition at line 1556 of file avformat.h.
int AVFormatContext::flush_packets |
Flush the I/O context after each packet.
Definition at line 1563 of file avformat.h.
int AVFormatContext::probe_score |
format probing score.
The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes the format.
Definition at line 1572 of file avformat.h.
int AVFormatContext::format_probesize |
number of bytes to read maximally to identify format.
Definition at line 1579 of file avformat.h.
struct AVPacketList* AVFormatContext::packet_buffer |
This buffer is only needed when packets were already buffered but not decoded, for example to get the codec parameters in MPEG streams.
Definition at line 1594 of file avformat.h.
struct AVPacketList* AVFormatContext::packet_buffer_end |
Definition at line 1595 of file avformat.h.
int64_t AVFormatContext::data_offset |
offset of the first packet
Definition at line 1598 of file avformat.h.
struct AVPacketList* AVFormatContext::raw_packet_buffer |
Raw packets from the demuxer, prior to parsing and decoding.
This buffer is used for buffering packets until the codec can be identified, as parsing cannot be done without knowing the codec.
Definition at line 1606 of file avformat.h.
struct AVPacketList* AVFormatContext::raw_packet_buffer_end |
Definition at line 1607 of file avformat.h.
struct AVPacketList* AVFormatContext::parse_queue |
Packets split by the parser get queued here.
Definition at line 1611 of file avformat.h.
struct AVPacketList* AVFormatContext::parse_queue_end |
Definition at line 1612 of file avformat.h.
int AVFormatContext::raw_packet_buffer_remaining_size |
Definition at line 1617 of file avformat.h.
int64_t AVFormatContext::offset |
Offset to remap timestamps to be non-negative.
Expressed in timebase units.
Definition at line 1624 of file avformat.h.
AVRational AVFormatContext::offset_timebase |
Timebase for the timestamp offset.
Definition at line 1629 of file avformat.h.
AVFormatInternal* AVFormatContext::internal |
An opaque field for libavformat internal usage.
Must not be accessed in any way by callers.
Definition at line 1635 of file avformat.h.
int AVFormatContext::io_repositioned |
IO repositioned flag.
This is set by avformat when the underlaying IO context read pointer is repositioned, for example when doing byte based seeking. Demuxers can use the flag to detect such changes.
Definition at line 1643 of file avformat.h.
AVCodec* AVFormatContext::video_codec |
Forced video codec.
This allows forcing a specific decoder, even when there are multiple with the same codec_id. Demuxing: Set by user via av_format_set_video_codec (NO direct access).
Definition at line 1651 of file avformat.h.
AVCodec* AVFormatContext::audio_codec |
Forced audio codec.
This allows forcing a specific decoder, even when there are multiple with the same codec_id. Demuxing: Set by user via av_format_set_audio_codec (NO direct access).
Definition at line 1659 of file avformat.h.
AVCodec* AVFormatContext::subtitle_codec |
Forced subtitle codec.
This allows forcing a specific decoder, even when there are multiple with the same codec_id. Demuxing: Set by user via av_format_set_subtitle_codec (NO direct access).
Definition at line 1667 of file avformat.h.
int AVFormatContext::metadata_header_padding |
Number of bytes to be written as padding in a metadata header.
Demuxing: Unused. Muxing: Set by user via av_format_set_metadata_header_padding.
Definition at line 1674 of file avformat.h.
void* AVFormatContext::opaque |
User data.
This is a place for some private data of the user. Mostly usable with control_message_cb or any future callbacks in device's context.
Definition at line 1681 of file avformat.h.
av_format_control_message AVFormatContext::control_message_cb |
Callback used by devices to communicate with application.
Definition at line 1686 of file avformat.h.
int64_t AVFormatContext::output_ts_offset |
Output timestamp offset, in microseconds.
Muxing: set by user via AVOptions (NO direct access)
Definition at line 1692 of file avformat.h.
int64_t AVFormatContext::max_analyze_duration2 |
Maximum duration (in AV_TIME_BASE units) of the data read from input in avformat_find_stream_info().
Demuxing only, set by the caller before avformat_find_stream_info() via AVOptions (NO direct access). Can be set to 0 to let avformat choose using a heuristic.
Definition at line 1701 of file avformat.h.
int64_t AVFormatContext::probesize2 |
Maximum size of the data read from input for determining the input container format.
Demuxing only, set by the caller before avformat_open_input() via AVOptions (NO direct access).
Definition at line 1709 of file avformat.h.