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)
36 #define MAX_PROBE_PACKETS 2500
39 # define hex_dump_debug(class, buf, size) av_hex_dump_log(class, AV_LOG_DEBUG, buf, size)
41 # define hex_dump_debug(class, buf, size) do { if (0) av_hex_dump_log(class, AV_LOG_DEBUG, buf, size); } while(0)
100 #define RAW_PACKET_BUFFER_SIZE 2500000
115 #if FF_API_COMPUTE_PKT_FIELDS2
116 int missing_ts_warning;
198 #define dynarray_add(tab, nb_ptr, elem)\
200 __typeof__(tab) _tab = (tab);\
201 __typeof__(elem) _elem = (elem);\
202 (void)sizeof(**_tab == _elem); \
203 av_dynarray_add(_tab, nb_ptr, _elem);\
206 #define dynarray_add(tab, nb_ptr, elem)\
208 av_dynarray_add((tab), nb_ptr, (elem));\
244 #define NTP_OFFSET 2208988800ULL
245 #define NTP_OFFSET_US (NTP_OFFSET * 1000000ULL)
277 const char *dest_addr,
const char *dest_type,
354 #define SPACE_CHARS " \t\r\n"
367 int key_len,
char **dest,
int *dest_len);
390 int64_t wanted_timestamp,
int flags);
396 int *nb_index_entries,
397 unsigned int *index_entries_allocated_size,
414 int64_t
start, int64_t
end,
const char *title);
433 int64_t target_ts,
int flags);
446 int64_t (*read_timestamp)(
struct AVFormatContext *,
int , int64_t *, int64_t ));
455 int64_t target_ts, int64_t pos_min,
456 int64_t pos_max, int64_t pos_limit,
457 int64_t ts_min, int64_t ts_max,
458 int flags, int64_t *ts_ret,
459 int64_t (*read_timestamp)(
struct AVFormatContext *,
int , int64_t *, int64_t ));
474 unsigned int pts_num,
unsigned int pts_den);
591 static inline int ff_rename(
const char *oldpath,
const char *newpath,
void *logctx)
594 if (rename(oldpath, newpath) == -1) {
599 av_log(logctx,
AV_LOG_ERROR,
"failed to rename file %s to %s: %s\n", oldpath, newpath, err);
657 #define FFERROR_REDO FFERRTAG('R','E','D','O')
703 #define CONTAINS_PAL 2
757 #define FF_PACKETLIST_FLAG_REF_PACKET (1 << 0)
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
int reorder
Set to 1 if the codec allows reordering, so pts can be different from dts.
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
AVCodecContext * avctx
The codec context used by avformat_find_stream_info, the parser, etc.
This struct describes the properties of an encoded stream.
static av_cold int end(AVCodecContext *avctx)
static char * av_make_error_string(char *errbuf, size_t errbuf_size, int errnum)
Fill the provided buffer with a string containing an error string corresponding to the AVERROR code e...
The bitstream filter state.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
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
AVBSFContext ** bsfcs
bitstream filters to run on stream
static void flush(AVCodecContext *avctx)
Rational number (pair of numerator and denominator).
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[]
const char const char void * val
AVChromaLocation
Location of chroma samples.
#define i(width, name, range_min, range_max)
const char AVS_Value args
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
#define AV_ERROR_MAX_STRING_SIZE
main external API structure.
static float compare(const AVFrame *haystack, const AVFrame *obj, int offx, int offy)
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
This structure stores compressed data.
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.
struct AVStreamInternal::@261 extract_extradata