World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура AVFormatContext

#include <avformat.h>

+ Граф связей класса AVFormatContext:

Открытые атрибуты

const AVClassav_class
 
ff_const59 struct AVInputFormatiformat
 
ff_const59 struct AVOutputFormatoformat
 
voidpriv_data
 
AVIOContextpb
 
int ctx_flags
 
unsigned int nb_streams
 
AVStream ** streams
 
attribute_deprecated char filename [1024]
 
char * url
 
int64_t start_time
 
int64_t duration
 
int64_t bit_rate
 
unsigned int packet_size
 
int max_delay
 
int flags
 
int64_t probesize
 
int64_t max_analyze_duration
 
const uint8_tkey
 
int keylen
 
unsigned int nb_programs
 
AVProgram ** programs
 
enum AVCodecID video_codec_id
 
enum AVCodecID audio_codec_id
 
enum AVCodecID subtitle_codec_id
 
unsigned int max_index_size
 
unsigned int max_picture_buffer
 
unsigned int nb_chapters
 
AVChapter ** chapters
 
AVDictionarymetadata
 
int64_t start_time_realtime
 
int fps_probe_size
 
int error_recognition
 
AVIOInterruptCB interrupt_callback
 
int debug
 
int64_t max_interleave_delta
 
int strict_std_compliance
 
int event_flags
 
int max_ts_probe
 
int avoid_negative_ts
 
int ts_id
 
int audio_preload
 
int max_chunk_duration
 
int max_chunk_size
 
int use_wallclock_as_timestamps
 
int avio_flags
 
enum AVDurationEstimationMethod duration_estimation_method
 
int64_t skip_initial_bytes
 
unsigned int correct_ts_overflow
 
int seek2any
 
int flush_packets
 
int probe_score
 
int format_probesize
 
char * codec_whitelist
 
char * format_whitelist
 
AVFormatInternalinternal
 
int io_repositioned
 
AVCodecvideo_codec
 
AVCodecaudio_codec
 
AVCodecsubtitle_codec
 
AVCodecdata_codec
 
int metadata_header_padding
 
voidopaque
 
av_format_control_message control_message_cb
 
int64_t output_ts_offset
 
uint8_tdump_separator
 
enum AVCodecID data_codec_id
 
attribute_deprecated int(* open_cb )(struct AVFormatContext *s, AVIOContext **p, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)
 
char * protocol_whitelist
 
int(* io_open )(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, AVDictionary **options)
 
void(* io_close )(struct AVFormatContext *s, AVIOContext *pb)
 
char * protocol_blacklist
 
int max_streams
 
int skip_estimate_duration_from_pts
 

Подробное описание

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.

Fields can be accessed through AVOptions (av_opt*), the name string used matches the associated command line parameter name and can be found in libavformat/options_table.h. The AVOption/command line parameter names differ in some cases from the C structure field names for historic reasons or brevity.

См. определение в файле avformat.h строка 1344

Данные класса

◆ av_class

const AVClass* AVFormatContext::av_class

A class for logging and AVOptions. Set by avformat_alloc_context(). Exports (de)muxer private options if they exist.

См. определение в файле avformat.h строка 1349

◆ iformat

ff_const59 struct AVInputFormat* AVFormatContext::iformat

The input container format.

Demuxing only, set by avformat_open_input().

См. определение в файле avformat.h строка 1356

◆ oformat

ff_const59 struct AVOutputFormat* AVFormatContext::oformat

The output container format.

Muxing only, must be set by the caller before avformat_write_header().

См. определение в файле avformat.h строка 1363

◆ priv_data

void* AVFormatContext::priv_data

Format private data. This is an AVOptions-enabled struct if and only if iformat/oformat.priv_class is not NULL.

См. определение в файле avformat.h строка 1372

◆ pb

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.

См. определение в файле avformat.h строка 1386

Используется в Movie::LoadFromLOD() и AudioBufferDataSource::Open().

◆ ctx_flags

int AVFormatContext::ctx_flags

Flags signalling stream properties. A combination of AVFMTCTX_*. Set by libavformat.

См. определение в файле avformat.h строка 1393

◆ nb_streams

unsigned int AVFormatContext::nb_streams

Number of elements in AVFormatContext.streams.

Set by avformat_new_stream(), must not be modified by any other code.

См. определение в файле avformat.h строка 1400

◆ streams

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().

См. определение в файле avformat.h строка 1412

Используется в AVStreamWrapper::open() и AudioBaseDataSource::Open().

◆ filename

attribute_deprecated char AVFormatContext::filename[1024]

input or output filename

См. определение в файле avformat.h строка 1424

◆ url

char* AVFormatContext::url

input or output URL. Unlike the old filename field, this field has no length restriction.

Freed by libavformat in avformat_free_context().

См. определение в файле avformat.h строка 1440

◆ start_time

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.

См. определение в файле avformat.h строка 1449

◆ duration

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.

См. определение в файле avformat.h строка 1459

◆ bit_rate

int64_t 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.

См. определение в файле avformat.h строка 1466

◆ packet_size

unsigned int AVFormatContext::packet_size

См. определение в файле avformat.h строка 1468

◆ max_delay

int AVFormatContext::max_delay

См. определение в файле avformat.h строка 1469

◆ flags

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().

См. определение в файле avformat.h строка 1475

◆ probesize

int64_t AVFormatContext::probesize

Maximum size of the data read from input for determining the input container format. Demuxing only, set by the caller before avformat_open_input().

См. определение в файле avformat.h строка 1510

◆ max_analyze_duration

int64_t AVFormatContext::max_analyze_duration

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(). Can be set to 0 to let avformat choose using a heuristic.

См. определение в файле avformat.h строка 1518

◆ key

const uint8_t* AVFormatContext::key

См. определение в файле avformat.h строка 1520

◆ keylen

int AVFormatContext::keylen

См. определение в файле avformat.h строка 1521

◆ nb_programs

unsigned int AVFormatContext::nb_programs

См. определение в файле avformat.h строка 1523

◆ programs

AVProgram** AVFormatContext::programs

См. определение в файле avformat.h строка 1524

◆ video_codec_id

enum AVCodecID AVFormatContext::video_codec_id

Forced video codec_id. Demuxing: Set by user.

См. определение в файле avformat.h строка 1530

◆ audio_codec_id

enum AVCodecID AVFormatContext::audio_codec_id

Forced audio codec_id. Demuxing: Set by user.

См. определение в файле avformat.h строка 1536

◆ subtitle_codec_id

enum AVCodecID AVFormatContext::subtitle_codec_id

Forced subtitle codec_id. Demuxing: Set by user.

См. определение в файле avformat.h строка 1542

◆ max_index_size

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.

  • muxing: unused
  • demuxing: set by user

См. определение в файле avformat.h строка 1554

◆ max_picture_buffer

unsigned int AVFormatContext::max_picture_buffer

Maximum amount of memory in bytes to use for buffering frames obtained from realtime capture devices.

См. определение в файле avformat.h строка 1560

◆ nb_chapters

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.

  • muxing: set by user
  • demuxing: set by libavformat

См. определение в файле avformat.h строка 1573

◆ chapters

AVChapter** AVFormatContext::chapters

См. определение в файле avformat.h строка 1574

◆ metadata

AVDictionary* AVFormatContext::metadata

Metadata that applies to the whole file.

Freed by libavformat in avformat_free_context().

См. определение в файле avformat.h строка 1584

◆ start_time_realtime

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.

  • muxing: Set by the caller before avformat_write_header(). If set to either 0 or AV_NOPTS_VALUE, then the current wall-time will be used.
  • demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that the value may become known after some number of frames have been received.

См. определение в файле avformat.h строка 1597

◆ fps_probe_size

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().

См. определение в файле avformat.h строка 1604

◆ error_recognition

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().

См. определение в файле avformat.h строка 1611

◆ interrupt_callback

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.

См. определение в файле avformat.h строка 1622

◆ debug

int AVFormatContext::debug

Flags to enable debugging.

См. определение в файле avformat.h строка 1627

◆ max_interleave_delta

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().

См. определение в файле avformat.h строка 1646

◆ strict_std_compliance

int AVFormatContext::strict_std_compliance

Allow non-standard and experimental extension

См. также
AVCodecContext.strict_std_compliance

См. определение в файле avformat.h строка 1652

◆ event_flags

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_*.

См. определение в файле avformat.h строка 1659

◆ max_ts_probe

int AVFormatContext::max_ts_probe

Maximum number of packets to read while waiting for the first timestamp. Decoding only.

См. определение в файле avformat.h строка 1666

◆ avoid_negative_ts

int AVFormatContext::avoid_negative_ts

Avoid negative timestamps during muxing. Any value of the AVFMT_AVOID_NEG_TS_* constants. Note, this only works when using av_interleaved_write_frame. (interleave_packet_per_dts is in use)

  • muxing: Set by user
  • demuxing: unused

См. определение в файле avformat.h строка 1675

◆ ts_id

int AVFormatContext::ts_id

Transport stream id. This will be moved into demuxer private options. Thus no API/ABI compatibility

См. определение в файле avformat.h строка 1684

◆ audio_preload

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.

  • encoding: Set by user
  • decoding: unused

См. определение в файле avformat.h строка 1692

◆ max_chunk_duration

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.

  • encoding: Set by user
  • decoding: unused

См. определение в файле avformat.h строка 1700

◆ max_chunk_size

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.

  • encoding: Set by user
  • decoding: unused

См. определение в файле avformat.h строка 1708

◆ use_wallclock_as_timestamps

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.

  • encoding: unused
  • decoding: Set by user

См. определение в файле avformat.h строка 1716

◆ avio_flags

int AVFormatContext::avio_flags

avio flags, used to force AVIO_FLAG_DIRECT.

  • encoding: unused
  • decoding: Set by user

См. определение в файле avformat.h строка 1723

◆ duration_estimation_method

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.

  • encoding: unused
  • decoding: Read by user

См. определение в файле avformat.h строка 1731

◆ skip_initial_bytes

int64_t AVFormatContext::skip_initial_bytes

Skip initial bytes when opening stream

  • encoding: unused
  • decoding: Set by user

См. определение в файле avformat.h строка 1738

◆ correct_ts_overflow

unsigned int AVFormatContext::correct_ts_overflow

Correct single timestamp overflows

  • encoding: unused
  • decoding: Set by user

См. определение в файле avformat.h строка 1745

◆ seek2any

int AVFormatContext::seek2any

Force seeking to any (also non key) frames.

  • encoding: unused
  • decoding: Set by user

См. определение в файле avformat.h строка 1752

◆ flush_packets

int AVFormatContext::flush_packets

Flush the I/O context after each packet.

  • encoding: Set by user
  • decoding: unused

См. определение в файле avformat.h строка 1759

◆ probe_score

int AVFormatContext::probe_score

format probing score. The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes the format.

  • encoding: unused
  • decoding: set by avformat, read by user

См. определение в файле avformat.h строка 1768

◆ format_probesize

int AVFormatContext::format_probesize

number of bytes to read maximally to identify format.

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1775

◆ codec_whitelist

char* AVFormatContext::codec_whitelist

',' separated list of allowed decoders. If NULL then all are allowed

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1783

◆ format_whitelist

char* AVFormatContext::format_whitelist

',' separated list of allowed demuxers. If NULL then all are allowed

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1791

◆ internal

AVFormatInternal* AVFormatContext::internal

An opaque field for libavformat internal usage. Must not be accessed in any way by callers.

См. определение в файле avformat.h строка 1797

◆ io_repositioned

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.

См. определение в файле avformat.h строка 1805

◆ video_codec

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

См. определение в файле avformat.h строка 1813

◆ audio_codec

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

См. определение в файле avformat.h строка 1821

◆ subtitle_codec

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

См. определение в файле avformat.h строка 1829

◆ data_codec

AVCodec* AVFormatContext::data_codec

Forced data codec. This allows forcing a specific decoder, even when there are multiple with the same codec_id. Demuxing: Set by user

См. определение в файле avformat.h строка 1837

◆ metadata_header_padding

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.

См. определение в файле avformat.h строка 1844

◆ opaque

void* AVFormatContext::opaque

User data. This is a place for some private data of the user.

См. определение в файле avformat.h строка 1850

◆ control_message_cb

av_format_control_message AVFormatContext::control_message_cb

Callback used by devices to communicate with application.

См. определение в файле avformat.h строка 1855

◆ output_ts_offset

int64_t AVFormatContext::output_ts_offset

Output timestamp offset, in microseconds. Muxing: set by user

См. определение в файле avformat.h строка 1861

◆ dump_separator

uint8_t* AVFormatContext::dump_separator

dump format separator. can be ", " or "\n " or anything else

  • muxing: Set by user.
  • demuxing: Set by user.

См. определение в файле avformat.h строка 1869

◆ data_codec_id

enum AVCodecID AVFormatContext::data_codec_id

Forced Data codec_id. Demuxing: Set by user.

См. определение в файле avformat.h строка 1875

◆ open_cb

attribute_deprecated int(* AVFormatContext::open_cb) (struct AVFormatContext *s, AVIOContext **p, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)

Called to open further IO contexts when needed for demuxing.

This can be set by the user application to perform security checks on the URLs before opening them. The function should behave like avio_open2(), AVFormatContext is provided as contextual information and to reach AVFormatContext.opaque.

If NULL then some simple checks are used together with avio_open2().

Must not be accessed directly from outside avformat. @See av_format_set_open_cb()

Demuxing: Set by user.

Уст.:
Use io_open and io_close.

См. определение в файле avformat.h строка 1896

◆ protocol_whitelist

char* AVFormatContext::protocol_whitelist

',' separated list of allowed protocols.

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1904

◆ io_open

int(* AVFormatContext::io_open) (struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, AVDictionary **options)

A callback for opening new IO streams.

Whenever a muxer or a demuxer needs to open an IO stream (typically from avformat_open_input() for demuxers, but for certain formats can happen at other times as well), it will call this callback to obtain an IO context.

Аргументы
sthe format context
pbon success, the newly opened IO context should be returned here
urlthe url to open
flagsa combination of AVIO_FLAG_*
optionsa dictionary of additional options, with the same semantics as in avio_open2()
Возвращает
0 on success, a negative AVERROR code on failure
Заметки
Certain muxers and demuxers do nesting, i.e. they open one or more additional internal format contexts. Thus the AVFormatContext pointer passed to this callback may be different from the one facing the caller. It will, however, have the same 'opaque' field.

См. определение в файле avformat.h строка 1926

◆ io_close

void(* AVFormatContext::io_close) (struct AVFormatContext *s, AVIOContext *pb)

A callback for closing the streams opened with AVFormatContext.io_open().

См. определение в файле avformat.h строка 1932

◆ protocol_blacklist

char* AVFormatContext::protocol_blacklist

',' separated list of disallowed protocols.

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1939

◆ max_streams

int AVFormatContext::max_streams

The maximum number of streams.

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1946

◆ skip_estimate_duration_from_pts

int AVFormatContext::skip_estimate_duration_from_pts

Skip duration calcuation in estimate_timings_from_pts.

  • encoding: unused
  • decoding: set by user

См. определение в файле avformat.h строка 1953


Объявления и описания членов структуры находятся в файле: