annotate nut.c @ 6119:16ca32d9c5f0 libavformat

Use a bitstream filter for converting the extradata syntax when generating an SDP. This allows to generate correct SDPs for H.264 video in "MP4 syntax".
author lucabe
date Fri, 11 Jun 2010 08:01:45 +0000
parents d046a7103934
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2335
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
1 /*
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
2 * nut
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
3 * Copyright (c) 2004-2007 Michael Niedermayer
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
4 *
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
5 * This file is part of FFmpeg.
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
6 *
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
11 *
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
15 * Lesser General Public License for more details.
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
16 *
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
20 */
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
21
3286
6f61c3b36632 Use full path for #includes from another directory.
diego
parents: 3120
diff changeset
22 #include "libavutil/tree.h"
2335
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
23 #include "nut.h"
6033
c7b98381ec2d Move AVCodecTag from riff.h into internal.h.
cehoyos
parents: 5902
diff changeset
24 #include "internal.h"
2335
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
25
3112
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
26 const AVCodecTag ff_nut_subtitle_tags[] = {
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
27 { CODEC_ID_TEXT , MKTAG('U', 'T', 'F', '8') },
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
28 { CODEC_ID_SSA , MKTAG('S', 'S', 'A', 0 ) },
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
29 { CODEC_ID_DVD_SUBTITLE, MKTAG('D', 'V', 'D', 'S') },
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
30 { CODEC_ID_DVB_SUBTITLE, MKTAG('D', 'V', 'B', 'S') },
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
31 { CODEC_ID_NONE , 0 }
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
32 };
88e032ac11e7 Subtitle support. (untested)
michael
parents: 3011
diff changeset
33
6038
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
34 const AVCodecTag ff_nut_video_tags[] = {
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
35 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 15 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
36 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 15 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
37 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 16 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
38 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 16 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
39 { CODEC_ID_RAWVIDEO, MKTAG(15 , 'B', 'G', 'R') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
40 { CODEC_ID_RAWVIDEO, MKTAG(15 , 'R', 'G', 'B') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
41 { CODEC_ID_RAWVIDEO, MKTAG(16 , 'B', 'G', 'R') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
42 { CODEC_ID_RAWVIDEO, MKTAG(16 , 'R', 'G', 'B') },
6099
ed24da0b0cee bgr/rgb444 for nut
michael
parents: 6061
diff changeset
43 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 12 ) },
ed24da0b0cee bgr/rgb444 for nut
michael
parents: 6061
diff changeset
44 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 12 ) },
ed24da0b0cee bgr/rgb444 for nut
michael
parents: 6061
diff changeset
45 { CODEC_ID_RAWVIDEO, MKTAG(12 , 'B', 'G', 'R') },
ed24da0b0cee bgr/rgb444 for nut
michael
parents: 6061
diff changeset
46 { CODEC_ID_RAWVIDEO, MKTAG(12 , 'R', 'G', 'B') },
6038
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
47 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 'A') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
48 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 'A') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
49 { CODEC_ID_RAWVIDEO, MKTAG('A', 'B', 'G', 'R') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
50 { CODEC_ID_RAWVIDEO, MKTAG('A', 'R', 'G', 'B') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
51 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 24 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
52 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 24 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
53 { CODEC_ID_RAWVIDEO, MKTAG('4', '1', '1', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
54 { CODEC_ID_RAWVIDEO, MKTAG('4', '2', '2', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
55 { CODEC_ID_RAWVIDEO, MKTAG('4', '2', '2', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
56 { CODEC_ID_RAWVIDEO, MKTAG('4', '4', '0', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
57 { CODEC_ID_RAWVIDEO, MKTAG('4', '4', '0', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
58 { CODEC_ID_RAWVIDEO, MKTAG('4', '4', '4', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
59 { CODEC_ID_RAWVIDEO, MKTAG('4', '4', '4', 'P') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
60 { CODEC_ID_RAWVIDEO, MKTAG('B', '1', 'W', '0') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
61 { CODEC_ID_RAWVIDEO, MKTAG('B', '0', 'W', '1') },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
62 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 8 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
63 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 8 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
64 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 4 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
65 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 4 ) },
6100
d046a7103934 Add support to B4BY and R4BY NUT codec tags added in NUT r672.
stefano
parents: 6099
diff changeset
66 { CODEC_ID_RAWVIDEO, MKTAG('B', '4', 'B', 'Y') },
d046a7103934 Add support to B4BY and R4BY NUT codec tags added in NUT r672.
stefano
parents: 6099
diff changeset
67 { CODEC_ID_RAWVIDEO, MKTAG('R', '4', 'B', 'Y') },
6038
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
68 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 48 ) },
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
69 { CODEC_ID_RAWVIDEO, MKTAG(48 , 'R', 'G', 'B') },
6061
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
70 { CODEC_ID_RAWVIDEO, MKTAG('Y', '1', 0 , 16 ) },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
71 { CODEC_ID_RAWVIDEO, MKTAG(16 , 0 , '1', 'Y') },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
72 { CODEC_ID_RAWVIDEO, MKTAG('Y', '3', 11 , 16 ) },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
73 { CODEC_ID_RAWVIDEO, MKTAG(16 , 11 , '3', 'Y') },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
74 { CODEC_ID_RAWVIDEO, MKTAG('Y', '3', 10 , 16 ) },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
75 { CODEC_ID_RAWVIDEO, MKTAG(16 , 10 , '3', 'Y') },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
76 { CODEC_ID_RAWVIDEO, MKTAG('Y', '3', 0 , 16 ) },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
77 { CODEC_ID_RAWVIDEO, MKTAG(16 , 0 , '3', 'Y') },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
78 { CODEC_ID_RAWVIDEO, MKTAG('Y', '4', 11 , 8 ) },
f2241323dca3 Add support for the newly added Nut codec tags (added in Nut r669):
stefano
parents: 6038
diff changeset
79 { CODEC_ID_RAWVIDEO, MKTAG('Y', '2', 0 , 8 ) },
6038
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
80 { CODEC_ID_NONE , 0 }
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
81 };
d0ea87d82842 Define ff_nut_video_tags and make Nut muxer and demuxer set it in
stefano
parents: 6033
diff changeset
82
2335
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
83 void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
84 int i;
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
85 for(i=0; i<nut->avf->nb_streams; i++){
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
86 nut->stream[i].last_pts= av_rescale_rnd(
3011
0439b354e005 ff_nut_reset_ts() expected to get 'ts*time_base_count', but muxer only
ods15
parents: 2890
diff changeset
87 val,
2335
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
88 time_base.num * (int64_t)nut->stream[i].time_base->den,
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
89 time_base.den * (int64_t)nut->stream[i].time_base->num,
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
90 AV_ROUND_DOWN);
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
91 }
5b5e1edd462e move syncpoint timestamp resetting code to a common file
michael
parents:
diff changeset
92 }
2338
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
93
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
94 int64_t ff_lsb2full(StreamContext *stream, int64_t lsb){
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
95 int64_t mask = (1<<stream->msb_pts_shift)-1;
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
96 int64_t delta= stream->last_pts - mask/2;
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
97 return ((lsb - delta)&mask) + delta;
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
98 }
4a06a51ceb70 move lsb2full to common file
michael
parents: 2336
diff changeset
99
5902
dbbcecb1a0dd Fix NUT (de)muxer warnings:
vitor
parents: 5878
diff changeset
100 int ff_nut_sp_pos_cmp(const Syncpoint *a, const Syncpoint *b){
2704
5ab595d4eb2f Add some parentheses to clarify operator precedence, fixes the warnings:
diego
parents: 2683
diff changeset
101 return ((a->pos - b->pos) >> 32) - ((b->pos - a->pos) >> 32);
2349
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
102 }
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
103
5902
dbbcecb1a0dd Fix NUT (de)muxer warnings:
vitor
parents: 5878
diff changeset
104 int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *b){
2704
5ab595d4eb2f Add some parentheses to clarify operator precedence, fixes the warnings:
diego
parents: 2683
diff changeset
105 return ((a->ts - b->ts) >> 32) - ((b->ts - a->ts) >> 32);
2349
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
106 }
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
107
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
108 void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts){
4076
a5c615b9d8ec remove _t for POSIX compatibility.
michael
parents: 3286
diff changeset
109 Syncpoint *sp= av_mallocz(sizeof(Syncpoint));
2890
31199df992f8 Move *malloc() out of tree.c, that way the code can be used with
michael
parents: 2704
diff changeset
110 struct AVTreeNode *node= av_mallocz(av_tree_node_size);
2349
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
111
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
112 sp->pos= pos;
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
113 sp->back_ptr= back_ptr;
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
114 sp->ts= ts;
5902
dbbcecb1a0dd Fix NUT (de)muxer warnings:
vitor
parents: 5878
diff changeset
115 av_tree_insert(&nut->syncpoints, sp, (void *) ff_nut_sp_pos_cmp, &node);
2890
31199df992f8 Move *malloc() out of tree.c, that way the code can be used with
michael
parents: 2704
diff changeset
116 if(node){
2349
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
117 av_free(sp);
2890
31199df992f8 Move *malloc() out of tree.c, that way the code can be used with
michael
parents: 2704
diff changeset
118 av_free(node);
31199df992f8 Move *malloc() out of tree.c, that way the code can be used with
michael
parents: 2704
diff changeset
119 }
2349
a9dc7596498a move syncpoint cache related stuff to common file
michael
parents: 2338
diff changeset
120 }
3120
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
121
5878
01b33a7f96ee Fix warning:
vitor
parents: 5738
diff changeset
122 static int enu_free(void *opaque, void *elem)
5738
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
123 {
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
124 av_free(elem);
5878
01b33a7f96ee Fix warning:
vitor
parents: 5738
diff changeset
125 return 0;
5738
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
126 }
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
127
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
128 void ff_nut_free_sp(NUTContext *nut)
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
129 {
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
130 av_tree_enumerate(nut->syncpoints, NULL, NULL, enu_free);
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
131 av_tree_destroy(nut->syncpoints);
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
132 }
7152149eb03f Plug memory leak in NUT muxer and demuxer
vitor
parents: 5704
diff changeset
133
3120
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
134 const Dispositions ff_nut_dispositions[] = {
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
135 {"default" , AV_DISPOSITION_DEFAULT},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
136 {"dub" , AV_DISPOSITION_DUB},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
137 {"original" , AV_DISPOSITION_ORIGINAL},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
138 {"comment" , AV_DISPOSITION_COMMENT},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
139 {"lyrics" , AV_DISPOSITION_LYRICS},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
140 {"karaoke" , AV_DISPOSITION_KARAOKE},
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
141 {"" , 0}
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
142 };
ea5623a8efde Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents: 3112
diff changeset
143
5704
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
144 const AVMetadataConv ff_nut_metadata_conv[] = {
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
145 { "Author", "artist" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
146 { "X-CreationTime", "date" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
147 { "CreationTime", "date" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
148 { "SourceFilename", "filename" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
149 { "X-Language", "language" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
150 { "X-Disposition", "disposition" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
151 { "X-Replaces", "replaces" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
152 { "X-Depends", "depends" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
153 { "X-Uses", "uses" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
154 { "X-UsesFont", "usesfont" },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
155 { 0 },
6b9c2a6d8fa4 Introduce metadata conversion table for NUT muxer and demuxer.
kostya
parents: 4076
diff changeset
156 };