FFmpeg 5.1.6
Data Fields
AVStream Struct Reference

Stream structure. More...

#include <libavformat/avformat.h>

Data Fields

int index
 stream index in AVFormatContext More...
 
int id
 Format-specific stream ID. More...
 
void * priv_data
 
AVRational time_base
 This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented. More...
 
int64_t start_time
 Decoding: pts of the first frame of the stream in presentation order, in stream time base. More...
 
int64_t duration
 Decoding: duration of the stream, in stream time base. More...
 
int64_t nb_frames
 number of frames in this stream if known or 0 More...
 
int disposition
 Stream disposition - a combination of AV_DISPOSITION_* flags. More...
 
enum AVDiscard discard
 Selects which packets can be discarded at will and do not need to be demuxed. More...
 
AVRational sample_aspect_ratio
 sample aspect ratio (0 if unknown) More...
 
AVDictionarymetadata
 
AVRational avg_frame_rate
 Average framerate. More...
 
AVPacket attached_pic
 For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet will contain the attached picture. More...
 
AVPacketSideDataside_data
 An array of side data that applies to the whole stream (i.e. More...
 
int nb_side_data
 The number of elements in the AVStream.side_data array. More...
 
int event_flags
 Flags indicating events happening on the stream, a combination of AVSTREAM_EVENT_FLAG_*. More...
 
AVRational r_frame_rate
 Real base framerate of the stream. More...
 
AVCodecParameterscodecpar
 Codec parameters associated with this stream. More...
 
int pts_wrap_bits
 Number of bits in timestamps. More...
 

Detailed Description

Stream structure.

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(AVStream) must not be used outside libav*.

Examples
demuxing_decoding.c, hw_decode.c, muxing.c, qsvdec.c, remuxing.c, transcode_aac.c, transcoding.c, and vaapi_transcode.c.

Definition at line 948 of file avformat.h.

Field Documentation

◆ index

int AVStream::index

stream index in AVFormatContext

Examples
muxing.c, and qsvdec.c.

Definition at line 956 of file avformat.h.

Referenced by main(), and write_frame().

◆ id

int AVStream::id

Format-specific stream ID.

decoding: set by libavformat encoding: set by the user, replaced by libavformat if left unset

Examples
muxing.c.

Definition at line 962 of file avformat.h.

Referenced by add_stream().

◆ priv_data

void* AVStream::priv_data

Definition at line 964 of file avformat.h.

◆ time_base

AVRational AVStream::time_base

This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.

decoding: set by libavformat encoding: May be set by the caller before avformat_write_header() to provide a hint to the muxer about the desired timebase. In avformat_write_header(), the muxer will overwrite this field with the timebase that will actually be used for the timestamps written into the file (which may or may not be related to the user-provided one, depending on the format).

Examples
filtering_audio.c, filtering_video.c, muxing.c, remuxing.c, transcode_aac.c, transcoding.c, and vaapi_transcode.c.

Definition at line 978 of file avformat.h.

Referenced by add_stream(), dec_enc(), encode_write(), encode_write_frame(), get_audio_frame(), init_filters(), log_packet(), main(), open_input_file(), open_output_file(), and write_frame().

◆ start_time

int64_t AVStream::start_time

Decoding: pts of the first frame of the stream in presentation order, in stream time base.

Only set this if you are absolutely 100% sure that the value you set it to really is the pts of the first frame. This may be undefined (AV_NOPTS_VALUE).

Note
The ASF header does NOT contain a correct start_time the ASF demuxer must NOT set this.

Definition at line 988 of file avformat.h.

◆ duration

int64_t AVStream::duration

Decoding: duration of the stream, in stream time base.

If a source file does not specify a duration, but does specify a bitrate, this value will be estimated from bitrate and file size.

Encoding: May be set by the caller before avformat_write_header() to provide a hint to the muxer about the estimated duration.

Definition at line 998 of file avformat.h.

◆ nb_frames

int64_t AVStream::nb_frames

number of frames in this stream if known or 0

Definition at line 1000 of file avformat.h.

◆ disposition

int AVStream::disposition

Stream disposition - a combination of AV_DISPOSITION_* flags.

Definition at line 1008 of file avformat.h.

◆ discard

enum AVDiscard AVStream::discard

Selects which packets can be discarded at will and do not need to be demuxed.

Examples
qsvdec.c.

Definition at line 1010 of file avformat.h.

Referenced by main().

◆ sample_aspect_ratio

AVRational AVStream::sample_aspect_ratio

sample aspect ratio (0 if unknown)

  • encoding: Set by user.
  • decoding: Set by libavformat.

Definition at line 1017 of file avformat.h.

◆ metadata

AVDictionary* AVStream::metadata

Definition at line 1019 of file avformat.h.

◆ avg_frame_rate

AVRational AVStream::avg_frame_rate

Average framerate.

Definition at line 1028 of file avformat.h.

◆ attached_pic

AVPacket AVStream::attached_pic

For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet will contain the attached picture.

decoding: set by libavformat, must not be modified by the caller. encoding: unused

Definition at line 1037 of file avformat.h.

◆ side_data

AVPacketSideData* AVStream::side_data

An array of side data that applies to the whole stream (i.e.

the container does not allow it to change between packets).

There may be no overlap between the side data in this array and side data in the packets. I.e. a given side data is either exported by the muxer (demuxing) / set by the caller (muxing) in this array, then it never appears in the packets, or the side data is exported / sent through the packets (always in the first packet where the value becomes known or changes), then it does not appear in this array.

  • demuxing: Set by libavformat when the stream is created.
  • muxing: May be set by the caller before avformat_write_header().

Freed by libavformat in avformat_free_context().

See also
av_format_inject_global_side_data()

Definition at line 1057 of file avformat.h.

◆ nb_side_data

int AVStream::nb_side_data

The number of elements in the AVStream.side_data array.

Definition at line 1061 of file avformat.h.

◆ event_flags

int AVStream::event_flags

Flags indicating events happening on the stream, a combination of AVSTREAM_EVENT_FLAG_*.

Definition at line 1074 of file avformat.h.

◆ r_frame_rate

AVRational AVStream::r_frame_rate

Real base framerate of the stream.

This is the lowest framerate with which all timestamps can be represented accurately (it is the least common multiple of all framerates in the stream). Note, this value is just a guess! For example, if the time base is 1/90000 and all frames have either approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.

Definition at line 1097 of file avformat.h.

◆ codecpar

AVCodecParameters* AVStream::codecpar

Codec parameters associated with this stream.

Allocated and freed by libavformat in avformat_new_stream() and avformat_free_context() respectively.

Examples
demuxing_decoding.c, filtering_audio.c, filtering_video.c, hw_decode.c, muxing.c, qsvdec.c, remuxing.c, transcode_aac.c, transcoding.c, and vaapi_transcode.c.

Definition at line 1108 of file avformat.h.

Referenced by dec_enc(), init_filters(), main(), open_audio(), open_codec_context(), open_input_file(), open_output_file(), and open_video().

◆ pts_wrap_bits

int AVStream::pts_wrap_bits

Number of bits in timestamps.

Used for wrapping control.

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

Definition at line 1117 of file avformat.h.


The documentation for this struct was generated from the following file: