1 /*
2 * nut
3 * Copyright (c) 2004-2007 Michael Niedermayer
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
27
34 };
35
39 };
40
127
136
145
156
158
169
171
178
181
183
196
198 };
199
208 };
209
235 };
236
240 };
241
243 {
244 int i;
251 }
252
254 {
257 return ((lsb - delta) &
mask) + delta;
258 }
259
261 {
263 return ((va->
pos - vb->pos) >> 32) - ((vb->pos - va->
pos) >> 32);
264 }
265
267 {
269 return ((va->
ts - vb->ts) >> 32) - ((vb->ts - va->
ts) >> 32);
270 }
271
273 {
276
277 if (!sp || !node) {
281 }
282
284
289 if (node) {
292 }
293
294 return 0;
295 }
296
298 {
300 return 0;
301 }
302
304 {
308 }
309 }
310
318 { "", 0 }
319 };
320
322 { "Author", "artist" },
323 { "X-CreationTime", "date" },
324 { "CreationTime", "date" },
325 { "SourceFilename", "filename" },
326 { "X-Language", "language" },
327 { "X-Disposition", "disposition" },
328 { "X-Replaces", "replaces" },
329 { "X-Depends", "depends" },
330 { "X-Uses", "uses" },
331 { "X-UsesFont", "usesfont" },
332 { 0 },
333 };
const char const char void * val
const AVCodecTag ff_nut_audio_extra_tags[]
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
int ff_nut_sp_pos_cmp(const void *a, const void *b)
struct AVTreeNode * av_tree_node_alloc(void)
Allocate an AVTreeNode.
const AVMetadataConv ff_nut_metadata_conv[]
int ff_nut_sp_pts_cmp(const void *a, const void *b)
const AVCodecTag ff_nut_data_tags[]
void av_tree_destroy(AVTreeNode *t)
void ff_nut_free_sp(NUTContext *nut)
static const uint16_t mask[17]
preferred ID for decoding MPEG audio layer 1, 2 or 3
const AVCodecTag ff_nut_audio_tags[]
const AVCodecTag ff_codec_wav_tags[]
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val)
const AVCodecTag ff_codec_bmp_tags[]
int64_t ff_lsb2full(StreamContext *stream, int64_t lsb)
internal header for RIFF based (de)muxers do NOT include this in end user applications ...
struct AVTreeNode * syncpoints
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_subtitle_tags[]
static int enu_free(void *opaque, void *elem)
Rational number (pair of numerator and denominator).
const Dispositions ff_nut_dispositions[]
const AVCodecTag ff_nut_video_tags[]
int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts)
void * av_tree_insert(AVTreeNode **tp, void *key, int(*cmp)(const void *key, const void *b), AVTreeNode **next)
Insert or remove an element.
#define MKTAG(a, b, c, d)
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.
const AVCodecTag *const ff_nut_codec_tags[]