Mercurial > libavformat.hg
annotate nut.c @ 6260:5c17c20dd67a libavformat
In ogg muxer, use dyn buffer to compute crc of the page, fix muxing with pipe
when page buffer is bigger than default buffer size. Max page is 65k.
| author | bcoudurier |
|---|---|
| date | Wed, 14 Jul 2010 23:21:18 +0000 |
| parents | d046a7103934 |
| children |
| 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 | 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 | 24 #include "internal.h" |
|
2335
5b5e1edd462e
move syncpoint timestamp resetting code to a common file
michael
parents:
diff
changeset
|
25 |
| 3112 | 26 const AVCodecTag ff_nut_subtitle_tags[] = { |
| 27 { CODEC_ID_TEXT , MKTAG('U', 'T', 'F', '8') }, | |
| 28 { CODEC_ID_SSA , MKTAG('S', 'S', 'A', 0 ) }, | |
| 29 { CODEC_ID_DVD_SUBTITLE, MKTAG('D', 'V', 'D', 'S') }, | |
| 30 { CODEC_ID_DVB_SUBTITLE, MKTAG('D', 'V', 'B', 'S') }, | |
| 31 { CODEC_ID_NONE , 0 } | |
| 32 }; | |
| 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 | 43 { CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 12 ) }, |
| 44 { CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 12 ) }, | |
| 45 { CODEC_ID_RAWVIDEO, MKTAG(12 , 'B', 'G', 'R') }, | |
| 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 | 93 |
| 94 int64_t ff_lsb2full(StreamContext *stream, int64_t lsb){ | |
| 95 int64_t mask = (1<<stream->msb_pts_shift)-1; | |
| 96 int64_t delta= stream->last_pts - mask/2; | |
| 97 return ((lsb - delta)&mask) + delta; | |
| 98 } | |
| 99 | |
| 5902 | 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 | 102 } |
| 103 | |
| 5902 | 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 | 106 } |
| 107 | |
| 108 void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts){ | |
| 4076 | 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 | 111 |
| 112 sp->pos= pos; | |
| 113 sp->back_ptr= back_ptr; | |
| 114 sp->ts= ts; | |
| 5902 | 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 | 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 | 120 } |
|
3120
ea5623a8efde
Add 'disposition' bitfield to AVStream and use it for both muxing and demuxing
eugeni
parents:
3112
diff
changeset
|
121 |
| 5878 | 122 static int enu_free(void *opaque, void *elem) |
| 5738 | 123 { |
| 124 av_free(elem); | |
| 5878 | 125 return 0; |
| 5738 | 126 } |
| 127 | |
| 128 void ff_nut_free_sp(NUTContext *nut) | |
| 129 { | |
| 130 av_tree_enumerate(nut->syncpoints, NULL, NULL, enu_free); | |
| 131 av_tree_destroy(nut->syncpoints); | |
| 132 } | |
| 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 }; |
