Go to the documentation of this file.
272 return ((va->
pos - vb->pos) >> 32) - ((vb->pos - va->
pos) >> 32);
278 return ((va->
ts - vb->ts) >> 32) - ((vb->ts - va->
ts) >> 32);
295 sp->back_ptr = back_ptr;
331 {
"Author",
"artist" },
332 {
"X-CreationTime",
"date" },
333 {
"CreationTime",
"date" },
334 {
"SourceFilename",
"filename" },
335 {
"X-Language",
"language" },
336 {
"X-Disposition",
"disposition" },
337 {
"X-Replaces",
"replaces" },
338 {
"X-Depends",
"depends" },
339 {
"X-Uses",
"uses" },
340 {
"X-UsesFont",
"usesfont" },
const AVCodecTag ff_nut_audio_extra_tags[]
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
#define MKTAG(a, b, c, d)
void * av_tree_insert(AVTreeNode **tp, void *key, int(*cmp)(const void *key, const void *b), AVTreeNode **next)
Insert or remove an element.
const AVCodecTag ff_nut_data_tags[]
@ AV_CODEC_ID_PCM_S32LE_PLANAR
@ AV_CODEC_ID_DVB_TELETEXT
@ AV_CODEC_ID_PCM_S16BE_PLANAR
const Dispositions ff_nut_dispositions[]
const AVCodecTag ff_codec_wav_tags[]
void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val)
struct AVTreeNode * av_tree_node_alloc(void)
Allocate an AVTreeNode.
void av_tree_enumerate(AVTreeNode *t, void *opaque, int(*cmp)(void *opaque, void *elem), int(*enu)(void *opaque, void *elem))
Apply enu(opaque, &elem) to all the elements in the tree in a given range.
@ AV_CODEC_ID_PCM_S16LE_PLANAR
int ff_nut_sp_pos_cmp(const void *a, const void *b)
void ff_nut_free_sp(NUTContext *nut)
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
@ AV_CODEC_ID_DVB_SUBTITLE
static const uint16_t mask[17]
const AVMetadataConv ff_nut_metadata_conv[]
int ff_nut_sp_pts_cmp(const void *a, const void *b)
Rational number (pair of numerator and denominator).
@ AV_CODEC_ID_DVD_SUBTITLE
const AVCodecTag ff_nut_video_tags[]
void av_tree_destroy(AVTreeNode *t)
@ AV_CODEC_ID_PCM_S24LE_PLANAR
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd)
Rescale a 64-bit integer with specified rounding.
const AVCodecTag ff_nut_audio_tags[]
const char const char void * val
@ AV_CODEC_ID_COMFORT_NOISE
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts)
struct AVTreeNode * syncpoints
#define i(width, name, range_min, range_max)
int64_t ff_lsb2full(StreamContext *stream, int64_t lsb)
static int enu_free(void *opaque, void *elem)
@ AV_ROUND_DOWN
Round toward -infinity.
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
@ AV_CODEC_ID_TEXT
raw UTF-8 text
const AVCodecTag ff_codec_bmp_tags[]
const AVCodecTag *const ff_nut_codec_tags[]
const AVCodecTag ff_nut_subtitle_tags[]
@ AV_CODEC_ID_PCM_S8_PLANAR