FFmpeg
4.3.1
|
Stream structure. More...
#include <libavformat/avformat.h>
Data Fields | |
int | index |
stream index in AVFormatContext More... | |
int | id |
Format-specific stream ID. More... | |
attribute_deprecated AVCodecContext * | codec |
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 |
AV_DISPOSITION_* bit field. 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... | |
AVDictionary * | metadata |
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... | |
AVPacketSideData * | side_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 for the user to detect events happening on the stream. More... | |
AVRational | r_frame_rate |
Real base framerate of the stream. More... | |
attribute_deprecated char * | recommended_encoder_configuration |
String containing pairs of key and values describing recommended encoder configuration. More... | |
AVCodecParameters * | codecpar |
Codec parameters associated with this stream. More... | |
struct { | |
int64_t last_dts | |
int64_t duration_gcd | |
int duration_count | |
int64_t rfps_duration_sum | |
double(* duration_error )[2][MAX_STD_TIMEBASES] | |
int64_t codec_info_duration | |
int64_t codec_info_duration_fields | |
int frame_delay_evidence | |
int found_decoder | |
0 -> decoder has not been searched for yet. More... | |
int64_t last_duration | |
int64_t fps_first_dts | |
Those are used for average framerate estimation. More... | |
int fps_first_dts_idx | |
int64_t fps_last_dts | |
int fps_last_dts_idx | |
} * | info |
Stream information used internally by avformat_find_stream_info() More... | |
int | pts_wrap_bits |
number of bits in pts (used for wrapping control) More... | |
int64_t | first_dts |
Timestamp corresponding to the last dts sync point. More... | |
int64_t | cur_dts |
int64_t | last_IP_pts |
int | last_IP_duration |
int | probe_packets |
Number of packets to buffer for codec probing. More... | |
int | codec_info_nb_frames |
Number of frames that have been demuxed during avformat_find_stream_info() More... | |
enum AVStreamParseType | need_parsing |
struct AVCodecParserContext * | parser |
struct AVPacketList * | last_in_packet_buffer |
last packet in packet_buffer for this stream when muxing. More... | |
AVProbeData | probe_data |
int64_t | pts_buffer [MAX_REORDER_DELAY+1] |
AVIndexEntry * | index_entries |
Only used if the format does not support seeking natively. More... | |
int | nb_index_entries |
unsigned int | index_entries_allocated_size |
int | stream_identifier |
Stream Identifier This is the MPEG-TS stream identifier +1 0 means unknown. More... | |
int | program_num |
Details of the MPEG-TS program which created this stream. More... | |
int | pmt_version |
int | pmt_stream_idx |
int64_t | interleaver_chunk_size |
int64_t | interleaver_chunk_duration |
int | request_probe |
stream probing state -1 -> probing finished 0 -> no probing requested rest -> perform probing with request_probe being the minimum score to accept. More... | |
int | skip_to_keyframe |
Indicates that everything up to the next keyframe should be discarded. More... | |
int | skip_samples |
Number of samples to skip at the start of the frame decoded from the next packet. More... | |
int64_t | start_skip_samples |
If not 0, the number of samples that should be skipped from the start of the stream (the samples are removed from packets with pts==0, which also assumes negative timestamps do not happen). More... | |
int64_t | first_discard_sample |
If not 0, the first audio sample that should be discarded from the stream. More... | |
int64_t | last_discard_sample |
The sample after last sample that is intended to be discarded after first_discard_sample. More... | |
int | nb_decoded_frames |
Number of internally decoded frames, used internally in libavformat, do not access its lifetime differs from info which is why it is not in that structure. More... | |
int64_t | mux_ts_offset |
Timestamp offset added to timestamps before muxing. More... | |
int64_t | pts_wrap_reference |
Internal data to check for wrapping of the time stamp. More... | |
int | pts_wrap_behavior |
Options for behavior, when a wrap is detected. More... | |
int | update_initial_durations_done |
Internal data to prevent doing update_initial_durations() twice. More... | |
int64_t | pts_reorder_error [MAX_REORDER_DELAY+1] |
Internal data to generate dts from pts. More... | |
uint8_t | pts_reorder_error_count [MAX_REORDER_DELAY+1] |
int64_t | last_dts_for_order_check |
Internal data to analyze DTS and detect faulty mpeg streams. More... | |
uint8_t | dts_ordered |
uint8_t | dts_misordered |
int | inject_global_side_data |
Internal data to inject global side data. More... | |
AVRational | display_aspect_ratio |
display aspect ratio (0 if unknown) More... | |
AVStreamInternal * | internal |
An opaque field for libavformat internal usage. More... | |
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*.
Definition at line 865 of file avformat.h.
int AVStream::index |
stream index in AVFormatContext
Definition at line 866 of file avformat.h.
Referenced by main(), and write_frame().
int AVStream::id |
Format-specific stream ID.
decoding: set by libavformat encoding: set by the user, replaced by libavformat if left unset
Definition at line 872 of file avformat.h.
Referenced by add_stream().
attribute_deprecated AVCodecContext* AVStream::codec |
Definition at line 878 of file avformat.h.
void* AVStream::priv_data |
Definition at line 880 of file avformat.h.
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).
Definition at line 894 of file avformat.h.
Referenced by add_stream(), dec_enc(), encode_write(), encode_write_frame(), get_audio_frame(), init_filters(), log_packet(), main(), open_output_file(), and write_frame().
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).
Definition at line 904 of file avformat.h.
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 914 of file avformat.h.
int64_t AVStream::nb_frames |
number of frames in this stream if known or 0
Definition at line 916 of file avformat.h.
int AVStream::disposition |
AV_DISPOSITION_* bit field.
Definition at line 918 of file avformat.h.
enum AVDiscard AVStream::discard |
Selects which packets can be discarded at will and do not need to be demuxed.
Definition at line 918 of file avformat.h.
Referenced by main().
AVRational AVStream::sample_aspect_ratio |
sample aspect ratio (0 if unknown)
Definition at line 927 of file avformat.h.
AVDictionary* AVStream::metadata |
Definition at line 929 of file avformat.h.
AVRational AVStream::avg_frame_rate |
Average framerate.
Definition at line 938 of file avformat.h.
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 947 of file avformat.h.
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.
Freed by libavformat in avformat_free_context().
Definition at line 967 of file avformat.h.
int AVStream::nb_side_data |
The number of elements in the AVStream.side_data array.
Definition at line 971 of file avformat.h.
int AVStream::event_flags |
Flags for the user to detect events happening on the stream.
Flags must be cleared by the user once the event has been handled. A combination of AVSTREAM_EVENT_FLAG_*.
Definition at line 978 of file avformat.h.
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 989 of file avformat.h.
attribute_deprecated char* AVStream::recommended_encoder_configuration |
String containing pairs of key and values describing recommended encoder configuration.
Pairs are separated by ','. Keys are separated from values by '='.
Definition at line 1000 of file avformat.h.
AVCodecParameters* AVStream::codecpar |
Codec parameters associated with this stream.
Allocated and freed by libavformat in avformat_new_stream() and avformat_free_context() respectively.
Definition at line 1012 of file avformat.h.
Referenced by dec_enc(), encode_write_frame(), init_filters(), main(), open_audio(), open_codec_context(), open_input_file(), open_output_file(), and open_video().
int64_t AVStream::last_dts |
Definition at line 1029 of file avformat.h.
int64_t AVStream::duration_gcd |
Definition at line 1030 of file avformat.h.
int AVStream::duration_count |
Definition at line 1031 of file avformat.h.
int64_t AVStream::rfps_duration_sum |
Definition at line 1032 of file avformat.h.
double(* AVStream::duration_error)[2][MAX_STD_TIMEBASES] |
Definition at line 1033 of file avformat.h.
int64_t AVStream::codec_info_duration |
Definition at line 1034 of file avformat.h.
int64_t AVStream::codec_info_duration_fields |
Definition at line 1035 of file avformat.h.
int AVStream::frame_delay_evidence |
Definition at line 1036 of file avformat.h.
int AVStream::found_decoder |
0 -> decoder has not been searched for yet.
>0 -> decoder found <0 -> decoder with codec_id == -found_decoder has not been found
Definition at line 1043 of file avformat.h.
int64_t AVStream::last_duration |
Definition at line 1045 of file avformat.h.
int64_t AVStream::fps_first_dts |
Those are used for average framerate estimation.
Definition at line 1050 of file avformat.h.
int AVStream::fps_first_dts_idx |
Definition at line 1051 of file avformat.h.
int64_t AVStream::fps_last_dts |
Definition at line 1052 of file avformat.h.
int AVStream::fps_last_dts_idx |
Definition at line 1053 of file avformat.h.
struct { ... } * AVStream::info |
Stream information used internally by avformat_find_stream_info()
int AVStream::pts_wrap_bits |
number of bits in pts (used for wrapping control)
Definition at line 1057 of file avformat.h.
int64_t AVStream::first_dts |
Timestamp corresponding to the last dts sync point.
Initialized when AVCodecParserContext.dts_sync_point >= 0 and a DTS is received from the underlying container. Otherwise set to AV_NOPTS_VALUE by default.
Definition at line 1067 of file avformat.h.
int64_t AVStream::cur_dts |
Definition at line 1068 of file avformat.h.
int64_t AVStream::last_IP_pts |
Definition at line 1069 of file avformat.h.
int AVStream::last_IP_duration |
Definition at line 1070 of file avformat.h.
int AVStream::probe_packets |
Number of packets to buffer for codec probing.
Definition at line 1075 of file avformat.h.
int AVStream::codec_info_nb_frames |
Number of frames that have been demuxed during avformat_find_stream_info()
Definition at line 1080 of file avformat.h.
enum AVStreamParseType AVStream::need_parsing |
Definition at line 1080 of file avformat.h.
struct AVCodecParserContext* AVStream::parser |
Definition at line 1084 of file avformat.h.
struct AVPacketList* AVStream::last_in_packet_buffer |
last packet in packet_buffer for this stream when muxing.
Definition at line 1089 of file avformat.h.
AVProbeData AVStream::probe_data |
Definition at line 1090 of file avformat.h.
int64_t AVStream::pts_buffer[MAX_REORDER_DELAY+1] |
Definition at line 1092 of file avformat.h.
AVIndexEntry* AVStream::index_entries |
Only used if the format does not support seeking natively.
Definition at line 1094 of file avformat.h.
int AVStream::nb_index_entries |
Definition at line 1096 of file avformat.h.
unsigned int AVStream::index_entries_allocated_size |
Definition at line 1097 of file avformat.h.
int AVStream::stream_identifier |
Stream Identifier This is the MPEG-TS stream identifier +1 0 means unknown.
Definition at line 1104 of file avformat.h.
int AVStream::program_num |
Details of the MPEG-TS program which created this stream.
Definition at line 1109 of file avformat.h.
int AVStream::pmt_version |
Definition at line 1110 of file avformat.h.
int AVStream::pmt_stream_idx |
Definition at line 1111 of file avformat.h.
int64_t AVStream::interleaver_chunk_size |
Definition at line 1113 of file avformat.h.
int64_t AVStream::interleaver_chunk_duration |
Definition at line 1114 of file avformat.h.
int AVStream::request_probe |
stream probing state -1 -> probing finished 0 -> no probing requested rest -> perform probing with request_probe being the minimum score to accept.
Definition at line 1122 of file avformat.h.
int AVStream::skip_to_keyframe |
Indicates that everything up to the next keyframe should be discarded.
Definition at line 1127 of file avformat.h.
int AVStream::skip_samples |
Number of samples to skip at the start of the frame decoded from the next packet.
Definition at line 1132 of file avformat.h.
int64_t AVStream::start_skip_samples |
If not 0, the number of samples that should be skipped from the start of the stream (the samples are removed from packets with pts==0, which also assumes negative timestamps do not happen).
Intended for use with formats such as mp3 with ad-hoc gapless audio support.
Definition at line 1141 of file avformat.h.
int64_t AVStream::first_discard_sample |
If not 0, the first audio sample that should be discarded from the stream.
This is broken by design (needs global sample count), but can't be avoided for broken by design formats such as mp3 with ad-hoc gapless audio support.
Definition at line 1149 of file avformat.h.
int64_t AVStream::last_discard_sample |
The sample after last sample that is intended to be discarded after first_discard_sample.
Works on frame boundaries only. Used to prevent early EOF if the gapless info is broken (considered concatenated mp3s).
Definition at line 1156 of file avformat.h.
int AVStream::nb_decoded_frames |
Number of internally decoded frames, used internally in libavformat, do not access its lifetime differs from info which is why it is not in that structure.
Definition at line 1162 of file avformat.h.
int64_t AVStream::mux_ts_offset |
Timestamp offset added to timestamps before muxing.
Definition at line 1167 of file avformat.h.
int64_t AVStream::pts_wrap_reference |
Internal data to check for wrapping of the time stamp.
Definition at line 1172 of file avformat.h.
int AVStream::pts_wrap_behavior |
Options for behavior, when a wrap is detected.
Defined by AV_PTS_WRAP_ values.
If correction is enabled, there are two possibilities: If the first time stamp is near the wrap point, the wrap offset will be subtracted, which will create negative time stamps. Otherwise the offset will be added.
Definition at line 1184 of file avformat.h.
int AVStream::update_initial_durations_done |
Internal data to prevent doing update_initial_durations() twice.
Definition at line 1189 of file avformat.h.
int64_t AVStream::pts_reorder_error[MAX_REORDER_DELAY+1] |
Internal data to generate dts from pts.
Definition at line 1194 of file avformat.h.
uint8_t AVStream::pts_reorder_error_count[MAX_REORDER_DELAY+1] |
Definition at line 1195 of file avformat.h.
int64_t AVStream::last_dts_for_order_check |
Internal data to analyze DTS and detect faulty mpeg streams.
Definition at line 1200 of file avformat.h.
uint8_t AVStream::dts_ordered |
Definition at line 1201 of file avformat.h.
uint8_t AVStream::dts_misordered |
Definition at line 1202 of file avformat.h.
int AVStream::inject_global_side_data |
Internal data to inject global side data.
Definition at line 1207 of file avformat.h.
AVRational AVStream::display_aspect_ratio |
display aspect ratio (0 if unknown)
Definition at line 1214 of file avformat.h.
AVStreamInternal* AVStream::internal |
An opaque field for libavformat internal usage.
Must not be accessed in any way by callers.
Definition at line 1220 of file avformat.h.