![]() |
Miam-Player
0.8.0
A nice music player
|
#include <avformat.h>
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*.
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
AVRational AVStream::avg_frame_rate |
Average framerate
int64_t AVStream::codec_info_duration |
int64_t AVStream::codec_info_duration_fields |
int AVStream::codec_info_nb_frames |
Number of frames that have been demuxed during av_find_stream_info()
AVCodecParameters* AVStream::codecpar |
int64_t AVStream::cur_dts |
enum AVDiscard AVStream::discard |
Selects which packets can be discarded at will and do not need to be demuxed.
AVRational AVStream::display_aspect_ratio |
display aspect ratio (0 if unknown)
int AVStream::disposition |
AV_DISPOSITION_* bit field
uint8_t AVStream::dts_misordered |
uint8_t AVStream::dts_ordered |
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.
int AVStream::duration_count |
double(* AVStream::duration_error)[2][MAX_STD_TIMEBASES] |
int64_t AVStream::duration_gcd |
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_*.
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.
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.
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
int64_t AVStream::fps_first_dts |
Those are used for average framerate estimation.
int AVStream::fps_first_dts_idx |
int64_t AVStream::fps_last_dts |
int AVStream::fps_last_dts_idx |
int AVStream::id |
Format-specific stream ID. decoding: set by libavformat encoding: set by the user, replaced by libavformat if left unset
int AVStream::index |
stream index in AVFormatContext
AVIndexEntry* AVStream::index_entries |
Only used if the format does not support seeking natively.
unsigned int AVStream::index_entries_allocated_size |
struct { ... } * AVStream::info |
int AVStream::inject_global_side_data |
Internal data to inject global side data
int64_t AVStream::interleaver_chunk_duration |
int64_t AVStream::interleaver_chunk_size |
AVStreamInternal* AVStream::internal |
An opaque field for libavformat internal usage. Must not be accessed in any way by callers.
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).
int64_t AVStream::last_dts |
int64_t AVStream::last_dts_for_order_check |
Internal data to analyze DTS and detect faulty mpeg streams
int64_t AVStream::last_duration |
struct AVPacketList* AVStream::last_in_packet_buffer |
last packet in packet_buffer for this stream when muxing.
int AVStream::last_IP_duration |
int64_t AVStream::last_IP_pts |
AVDictionary* AVStream::metadata |
int64_t AVStream::mux_ts_offset |
Timestamp offset added to timestamps before muxing NOT PART OF PUBLIC API
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.
int64_t AVStream::nb_frames |
number of frames in this stream if known or 0
int AVStream::nb_index_entries |
int AVStream::nb_side_data |
The number of elements in the AVStream.side_data array.
enum AVStreamParseType AVStream::need_parsing |
struct AVCodecParserContext* AVStream::parser |
void* AVStream::priv_data |
struct FFFrac* AVStream::priv_pts |
AVProbeData AVStream::probe_data |
int AVStream::probe_packets |
Number of packets to buffer for codec probing
int64_t AVStream::pts_buffer[MAX_REORDER_DELAY+1] |
int64_t AVStream::pts_reorder_error[MAX_REORDER_DELAY+1] |
Internal data to generate dts from pts
uint8_t AVStream::pts_reorder_error_count[MAX_REORDER_DELAY+1] |
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.
int AVStream::pts_wrap_bits |
number of bits in pts (used for wrapping control)
int64_t AVStream::pts_wrap_reference |
Internal data to check for wrapping of the time stamp
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.
Code outside avformat should access this field using: av_stream_get/set_r_frame_rate(stream)
char* AVStream::recommended_encoder_configuration |
String containing paris of key and values describing recommended encoder configuration. Paris are separated by ','. Keys are separated from values by '='.
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. NOT PART OF PUBLIC API
int64_t AVStream::rfps_duration_sum |
AVRational AVStream::sample_aspect_ratio |
sample aspect ratio (0 if unknown)
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().
int AVStream::skip_samples |
Number of samples to skip at the start of the frame decoded from the next packet.
int AVStream::skip_to_keyframe |
Indicates that everything up to the next keyframe should be discarded.
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.
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).
int AVStream::stream_identifier |
Stream Identifier This is the MPEG-TS stream identifier +1 0 means unknown
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).
int AVStream::update_initial_durations_done |
Internal data to prevent doing update_initial_durations() twice