Go to the documentation of this file.
21 #ifndef AVFORMAT_INTERNAL_H
22 #define AVFORMAT_INTERNAL_H
30 #define MAX_URL_SIZE 4096
33 #define PROBE_BUF_MIN 2048
34 #define PROBE_BUF_MAX (1 << 20)
37 # define hex_dump_debug(class, buf, size) av_hex_dump_log(class, AV_LOG_DEBUG, buf, size)
39 # define hex_dump_debug(class, buf, size) do { if (0) av_hex_dump_log(class, AV_LOG_DEBUG, buf, size); } while(0)
104 #define RAW_PACKET_BUFFER_SIZE 2500000
119 #if FF_API_COMPUTE_PKT_FIELDS2
120 int missing_ts_warning;
206 #define MAX_STD_TIMEBASES (30*12+30+3+6)
317 #define MAX_REORDER_DELAY 16
355 #define dynarray_add(tab, nb_ptr, elem)\
357 __typeof__(tab) _tab = (tab);\
358 __typeof__(elem) _elem = (elem);\
359 (void)sizeof(**_tab == _elem); \
360 av_dynarray_add(_tab, nb_ptr, _elem);\
363 #define dynarray_add(tab, nb_ptr, elem)\
365 av_dynarray_add((tab), nb_ptr, (elem));\
399 #define NTP_OFFSET 2208988800ULL
400 #define NTP_OFFSET_US (NTP_OFFSET * 1000000ULL)
432 const char *dest_addr,
const char *dest_type,
499 #define SPACE_CHARS " \t\r\n"
512 int key_len,
char **dest,
int *dest_len);
535 int64_t wanted_timestamp,
int flags);
541 int *nb_index_entries,
542 unsigned int *index_entries_allocated_size,
558 #if FF_API_CHAPTER_ID_INT
563 int64_t start, int64_t end,
const char *title);
582 int64_t target_ts,
int flags);
595 int64_t (*read_timestamp)(
struct AVFormatContext *,
int , int64_t *, int64_t ));
604 int64_t target_ts, int64_t pos_min,
605 int64_t pos_max, int64_t pos_limit,
606 int64_t ts_min, int64_t ts_max,
607 int flags, int64_t *ts_ret,
608 int64_t (*read_timestamp)(
struct AVFormatContext *,
int , int64_t *, int64_t ));
623 unsigned int pts_num,
unsigned int pts_den);
739 int ff_rename(
const char *url_src,
const char *url_dst,
void *logctx);
793 #define FFERROR_REDO FFERRTAG('R','E','D','O')
839 #define CONTAINS_PAL 2
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it be(in the first position) for now. Options ------- Then comes the options array. This is what will define the user accessible options. For example
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
int reorder
Set to 1 if the codec allows reordering, so pts can be different from dts.
AVCodecContext * avctx
The codec context used by avformat_find_stream_info, the parser, etc.
This struct describes the properties of an encoded stream.
int64_t last_dts_for_order_check
Internal data to analyze DTS and detect faulty mpeg streams.
int64_t interleaver_chunk_size
struct AVStreamInternal::@260 * info
Stream information used internally by avformat_find_stream_info()
int inject_global_side_data
Internal data to inject global side data.
AVBSFContext * bsfc
bitstream filter to run on stream
The bitstream filter state.
int skip_samples
Number of samples to skip at the start of the frame decoded from the next packet.
int64_t mux_ts_offset
Timestamp offset added to timestamps before muxing.
AVRational display_aspect_ratio
display aspect ratio (0 if unknown)
int64_t codec_info_duration_fields
int pts_wrap_behavior
Options for behavior, when a wrap is detected.
int update_initial_durations_done
Internal data to prevent doing update_initial_durations() twice.
int avctx_inited
1 if avctx has been initialized with the values from the codec parameters
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
int nb_decoded_frames
Number of internally decoded frames, used internally in libavformat, do not access its lifetime diffe...
static void flush(AVCodecContext *avctx)
int64_t codec_info_duration
Rational number (pair of numerator and denominator).
int skip_to_keyframe
Indicates that everything up to the next keyframe should be discarded.
This structure contains the data a format has to probe a file.
AVCodecID
Identify the syntax and semantics of the bitstream.
static void interleave(uint8_t *dst, uint8_t *src, int w, int h, int dst_linesize, int src_linesize, enum FilterMode mode, int swap)
const OptionDef options[]
int64_t rfps_duration_sum
struct AVStreamInternal::@259 extract_extradata
int request_probe
stream probing state -1 -> probing finished 0 -> no probing requested rest -> perform probing with re...
int64_t last_discard_sample
The sample after last sample that is intended to be discarded after first_discard_sample.
int found_decoder
0 -> decoder has not been searched for yet.
int64_t pts_wrap_reference
Internal data to check for wrapping of the time stamp.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
struct PacketList * last_in_packet_buffer
last packet in packet_buffer for this stream when muxing.
int64_t pts_buffer[MAX_REORDER_DELAY+1]
AVChromaLocation
Location of chroma samples.
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 ...
int64_t fps_first_dts
Those are used for average framerate estimation.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in lowercase
int64_t interleaver_chunk_duration
main external API structure.
static float compare(const AVFrame *haystack, const AVFrame *obj, int offx, int offy)
uint8_t pts_reorder_error_count[MAX_REORDER_DELAY+1]
int64_t first_discard_sample
If not 0, the first audio sample that should be discarded from the stream.
int need_context_update
Whether the internal avctx needs to be updated from codecpar (after a late change to codecpar)
enum AVCodecID orig_codec_id
int64_t pts_reorder_error[MAX_REORDER_DELAY+1]
Internal data to generate dts from pts.
This structure stores compressed data.
double(* duration_error)[2][MAX_STD_TIMEBASES]
static float distance(float x, float y, int band)
#define flags(name, subs,...)
The exact value of the fractional number is: 'val + num / den'.
int bitstream_checked
Whether or not check_bitstream should still be run on each packet.