Mercurial > mplayer.hg
annotate libmpdemux/mp_taglists.c @ 34346:3d0c795524b0
Fix bug with wrong focus in file selector.
The focus can only be set to fsFNameList after it's realized and mapped.
This also removes the irritating selection of the fsPathCombo.
author | ib |
---|---|
date | Sun, 11 Dec 2011 16:02:02 +0000 |
parents | 446aeefc216b |
children | dd20c9da3051 |
rev | line source |
---|---|
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
1 /* |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
2 * This file is part of MPlayer. |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
3 * |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
7 * (at your option) any later version. |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
8 * |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
12 * GNU General Public License for more details. |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
13 * |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
17 */ |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
18 |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
19 #include "config.h" |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
20 |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
21 #include <stdint.h> |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
22 #include "mp_msg.h" |
29859
1a2c12c0de26
Fix declarations in mp_taglists.h and include it in mp_taglists.c to
reimar
parents:
29778
diff
changeset
|
23 #include "mp_taglists.h" |
34196
c910df5dc9ae
Map 8svx fourcc to 8raw instead of relying on non-existing CODEC_ID.
diego
parents:
34156
diff
changeset
|
24 #include "libavutil/common.h" |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
25 #include "libavformat/avformat.h" |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
26 // for AVCodecTag |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
27 #include "libavformat/internal.h" |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
28 |
34156
758264af214d
Consistently use "struct AVCodecTag" and not sometimes just "AVCodecTag".
reimar
parents:
34155
diff
changeset
|
29 static const struct AVCodecTag mp_wav_tags[] = { |
30834 | 30 { CODEC_ID_ADPCM_4XM, MKTAG('4', 'X', 'M', 'A')}, |
30833 | 31 { CODEC_ID_ADPCM_ADX, MKTAG('S', 'a', 'd', 'x')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
32 { CODEC_ID_ADPCM_EA, MKTAG('A', 'D', 'E', 'A')}, |
26760 | 33 { CODEC_ID_ADPCM_EA_MAXIS_XA, MKTAG('A', 'D', 'X', 'A')}, |
34287
e52c4a58e428
Support FFmpeg ADPCM IMA Electronic Arts EACS decoding.
cehoyos
parents:
34286
diff
changeset
|
34 { CODEC_ID_ADPCM_IMA_EA_EACS, MKTAG('E', 'A', 'C', 'S')}, |
34285 | 35 { CODEC_ID_ADPCM_IMA_ISS, MKTAG('A', 'I', 'S', 'S')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
36 { CODEC_ID_ADPCM_IMA_WS, MKTAG('A', 'I', 'W', 'S')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
37 { CODEC_ID_ADPCM_THP, MKTAG('T', 'H', 'P', 'A')}, |
27101 | 38 { CODEC_ID_ADPCM_XA, MKTAG('P', 'S', 'X', 'A')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
39 { CODEC_ID_AMR_NB, MKTAG('n', 'b', 0, 0)}, |
30637 | 40 { CODEC_ID_BINKAUDIO_DCT, MKTAG('B', 'A', 'U', '1')}, |
41 { CODEC_ID_BINKAUDIO_RDFT, MKTAG('B', 'A', 'U', '2')}, | |
34245 | 42 { CODEC_ID_BMV_AUDIO, MKTAG('B', 'M', 'V', 'A')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
43 { CODEC_ID_COOK, MKTAG('c', 'o', 'o', 'k')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
44 { CODEC_ID_DSICINAUDIO, MKTAG('D', 'C', 'I', 'A')}, |
27482 | 45 { CODEC_ID_EAC3, MKTAG('E', 'A', 'C', '3')}, |
34079 | 46 { CODEC_ID_G723_1, MKTAG('7', '2', '3', '1')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
47 { CODEC_ID_INTERPLAY_DPCM, MKTAG('I', 'N', 'P', 'A')}, |
27200 | 48 { CODEC_ID_MLP, MKTAG('M', 'L', 'P', ' ')}, |
30208 | 49 { CODEC_ID_MP1, 0x50}, |
30562 | 50 { CODEC_ID_MP4ALS, MKTAG('A', 'L', 'S', ' ')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
51 { CODEC_ID_MUSEPACK7, MKTAG('M', 'P', 'C', ' ')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
52 { CODEC_ID_MUSEPACK8, MKTAG('M', 'P', 'C', '8')}, |
33940
5eae72fa20ff
Do not map to internal MPlayer FourCC if possible.
cehoyos
parents:
33201
diff
changeset
|
53 { CODEC_ID_NELLYMOSER, MKTAG('n', 'm', 'o', 's')}, |
32903
8cb530d39a6d
Support audio in Leitch/Harris' VR native stream format (LXF).
cehoyos
parents:
32681
diff
changeset
|
54 { CODEC_ID_PCM_LXF, MKTAG('P', 'L', 'X', 'F')}, |
34305
2fef3034c98f
Support FFmpeg's PCM 16-bit little-endian planar decoder.
cehoyos
parents:
34304
diff
changeset
|
55 { CODEC_ID_PCM_S16LE_PLANAR, MKTAG('1', '6', 'P', 'L')}, |
26846 | 56 { CODEC_ID_QCELP, MKTAG('Q', 'c', 'l', 'p')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
57 { CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2')}, |
29553 | 58 { CODEC_ID_RA_144, MKTAG('1', '4', '_', '4')}, |
59 { CODEC_ID_RA_288, MKTAG('2', '8', '_', '8')}, | |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
60 { CODEC_ID_ROQ_DPCM, MKTAG('R', 'o', 'Q', 'A')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
61 { CODEC_ID_SHORTEN, MKTAG('s', 'h', 'r', 'n')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
62 { CODEC_ID_SPEEX, MKTAG('s', 'p', 'x', ' ')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
63 { CODEC_ID_TTA, MKTAG('T', 'T', 'A', '1')}, |
29613
7386b883fba6
Add support for lavf vqf demuxer and lavc TwinVQ decoder.
vitor
parents:
29558
diff
changeset
|
64 { CODEC_ID_TWINVQ, MKTAG('T', 'W', 'I', '2')}, |
34303 | 65 { CODEC_ID_VMDAUDIO, MKTAG('V', 'M', 'D', 'A')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
66 { CODEC_ID_WAVPACK, MKTAG('W', 'V', 'P', 'K')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
67 { CODEC_ID_WESTWOOD_SND1, MKTAG('S', 'N', 'D', '1')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
68 { CODEC_ID_XAN_DPCM, MKTAG('A', 'x', 'a', 'n')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
69 { 0, 0 }, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
70 }; |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
71 |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
72 static const struct AVCodecTag * const mp_wav_taglists[] = {mp_wav_tags, 0}; |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
73 |
34156
758264af214d
Consistently use "struct AVCodecTag" and not sometimes just "AVCodecTag".
reimar
parents:
34155
diff
changeset
|
74 static const struct AVCodecTag mp_codecid_override_tags[] = { |
34096 | 75 { CODEC_ID_8SVX_EXP, MKTAG('8', 'e', 'x', 'p')}, |
76 { CODEC_ID_8SVX_FIB, MKTAG('8', 'f', 'i', 'b')}, | |
34196
c910df5dc9ae
Map 8svx fourcc to 8raw instead of relying on non-existing CODEC_ID.
diego
parents:
34156
diff
changeset
|
77 { MKBETAG('8','S','V','X'), MKTAG('8', 'r', 'a', 'w')}, |
29554
2d5e5e34c0f0
Fix AAC in MPEG transport stream for -demuxer lavf.
cehoyos
parents:
29553
diff
changeset
|
78 { CODEC_ID_AAC, MKTAG('M', 'P', '4', 'A')}, |
32497 | 79 { CODEC_ID_AAC_LATM, MKTAG('M', 'P', '4', 'L')}, |
29553 | 80 { CODEC_ID_AC3, 0x2000}, |
34316
446aeefc216b
Support decoding newer rpl files with FFmpeg's Escape 130 decoder.
cehoyos
parents:
34305
diff
changeset
|
81 { CODEC_ID_ADPCM_IMA_EA_SEAD, MKTAG('S', 'E', 'A', 'D')}, |
29622
d5662ea3a5d0
Add CODEC_ID_ADPCM_IMA_AMV to lavf codec_tag override list instead of
reimar
parents:
29621
diff
changeset
|
82 { CODEC_ID_ADPCM_IMA_AMV, MKTAG('A', 'M', 'V', 'A')}, |
29555
169757b719a4
Fix DTS in MPEG transport streams with -demuxer lavf.
cehoyos
parents:
29554
diff
changeset
|
83 { CODEC_ID_DTS, 0x2001}, |
32904
e67931f380a3
Support dvvideo in Leitch/Harris' VR native stream format (LXF).
cehoyos
parents:
32903
diff
changeset
|
84 { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 's', 'd')}, |
29557
f1f13389cd49
Fix EAC3 in MPEG transport streams with -demuxer lavf.
cehoyos
parents:
29555
diff
changeset
|
85 { CODEC_ID_EAC3, MKTAG('E', 'A', 'C', '3')}, |
34302
945ef73454c4
Map FFmpeg's Escape 124 decoder to new MPlayer internal FourCC.
cehoyos
parents:
34290
diff
changeset
|
86 { CODEC_ID_ESCAPE124, MKTAG('E', '1', '2', '4')}, |
34316
446aeefc216b
Support decoding newer rpl files with FFmpeg's Escape 130 decoder.
cehoyos
parents:
34305
diff
changeset
|
87 { CODEC_ID_ESCAPE130, MKTAG('E', '1', '3', '0')}, |
34043 | 88 { CODEC_ID_FLV1, MKTAG('F', 'L', 'V', '1')}, |
34042 | 89 { CODEC_ID_G729, MKTAG('G', '7', '2', '9')}, |
29553 | 90 { CODEC_ID_H264, MKTAG('H', '2', '6', '4')}, |
34097 | 91 { CODEC_ID_MP3, 0x55}, |
29558
e71981bd196c
Fix MPEG-4 ASP in MPEG transport streams with -demuxer lavf.
cehoyos
parents:
29557
diff
changeset
|
92 { CODEC_ID_MPEG4, MKTAG('M', 'P', '4', 'V')}, |
29553 | 93 { CODEC_ID_PCM_BLURAY, MKTAG('B', 'P', 'C', 'M')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
94 { CODEC_ID_PCM_S8, MKTAG('t', 'w', 'o', 's')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
95 { CODEC_ID_PCM_U8, 1}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
96 { CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
97 { CODEC_ID_PCM_S16LE, 1}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
98 { CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4')}, |
29071
02d3778bf947
override lavf tag for pcm s24le, mov uses the same for s24be
bcoudurier
parents:
27482
diff
changeset
|
99 { CODEC_ID_PCM_S24LE, 1}, |
29085
07d177c306ce
override codec tag for pcm s32le and s32be, used in mov
bcoudurier
parents:
29071
diff
changeset
|
100 { CODEC_ID_PCM_S32BE, MKTAG('i', 'n', '3', '2')}, |
07d177c306ce
override codec tag for pcm s32le and s32be, used in mov
bcoudurier
parents:
29071
diff
changeset
|
101 { CODEC_ID_PCM_S32LE, 1}, |
29547
e86e60afd8b8
Fix MP2 and AC3 with demuxer lavf in MPEG transport streams.
cehoyos
parents:
29546
diff
changeset
|
102 { CODEC_ID_MP2, 0x50}, |
29549
a97c9fd97336
Fix MPEG2 and H264 in MPEG transport stream with demuxer lavf.
cehoyos
parents:
29547
diff
changeset
|
103 { CODEC_ID_MPEG2VIDEO, MKTAG('M', 'P', 'G', '2')}, |
29709 | 104 { CODEC_ID_TRUEHD, MKTAG('T', 'R', 'H', 'D')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
105 { 0, 0 }, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
106 }; |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
107 |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
108 static const struct AVCodecTag * const mp_codecid_override_taglists[] = |
29551
19fa7aedb519
Rename mp_wav_override_tag* as mp_codecid_override_tag* to reflect that
cehoyos
parents:
29549
diff
changeset
|
109 {mp_codecid_override_tags, 0}; |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
110 |
34156
758264af214d
Consistently use "struct AVCodecTag" and not sometimes just "AVCodecTag".
reimar
parents:
34155
diff
changeset
|
111 static const struct AVCodecTag mp_bmp_tags[] = { |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
112 { CODEC_ID_AMV, MKTAG('A', 'M', 'V', 'V')}, |
33201
70a2195b4904
Add mapping between codec ID and tag for ANM and AVS.
reimar
parents:
33038
diff
changeset
|
113 { CODEC_ID_ANM, MKTAG('A', 'N', 'M', ' ')}, |
34062 | 114 { CODEC_ID_ANSI, MKTAG('T', 'X', 'T', '4')}, |
33201
70a2195b4904
Add mapping between codec ID and tag for ANM and AVS.
reimar
parents:
33038
diff
changeset
|
115 { CODEC_ID_AVS, MKTAG('A', 'V', 'S', ' ')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
116 { CODEC_ID_BETHSOFTVID, MKTAG('B', 'E', 'T', 'H')}, |
26459 | 117 { CODEC_ID_BFI, MKTAG('B', 'F', 'I', 'V')}, |
34245 | 118 { CODEC_ID_BMV_VIDEO, MKTAG('B', 'M', 'V', 'V')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
119 { CODEC_ID_C93, MKTAG('C', '9', '3', 'V')}, |
30062
54002b08fc78
create CDGR fourcc in mp_taglist and add ffcdgraphics to codecs.conf
compn
parents:
29859
diff
changeset
|
120 { CODEC_ID_CDGRAPHICS, MKTAG('C', 'D', 'G', 'R')}, |
34244 | 121 { CODEC_ID_CMV, MKTAG('M', 'V', 'I', 'f')}, |
34217 | 122 { CODEC_ID_DFA, MKTAG('C', 'D', 'F', 'A')}, |
29658
6235d300cf7e
Allow playback of dnxhd files, as produced by FFmpeg regression test.
cehoyos
parents:
29622
diff
changeset
|
123 { CODEC_ID_DNXHD, MKTAG('A', 'V', 'd', 'n')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
124 { CODEC_ID_DSICINVIDEO, MKTAG('D', 'C', 'I', 'V')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
125 { CODEC_ID_DXA, MKTAG('D', 'X', 'A', '1')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
126 { CODEC_ID_FLIC, MKTAG('F', 'L', 'I', 'C')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
127 { CODEC_ID_IDCIN, MKTAG('I', 'D', 'C', 'I')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
128 { CODEC_ID_INTERPLAY_VIDEO, MKTAG('I', 'N', 'P', 'V')}, |
33038 | 129 { CODEC_ID_JV, MKTAG('F', 'F', 'J', 'V')}, |
34304 | 130 { CODEC_ID_MAD, MKTAG('M', 'A', 'D', 'k')}, |
27101 | 131 { CODEC_ID_MDEC, MKTAG('M', 'D', 'E', 'C')}, |
27323 | 132 { CODEC_ID_MOTIONPIXELS, MKTAG('M', 'V', 'I', '1')}, |
34207 | 133 { CODEC_ID_MXPEG, MKTAG('M', 'X', 'P', 'G')}, |
34219 | 134 { CODEC_ID_NUV, MKTAG('N', 'U', 'V', '1')}, |
26735 | 135 { CODEC_ID_RL2, MKTAG('R', 'L', '2', 'V')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
136 { CODEC_ID_ROQ, MKTAG('R', 'o', 'Q', 'V')}, |
27429
bc54ab99e5b6
add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents:
27324
diff
changeset
|
137 { CODEC_ID_RV10, MKTAG('R', 'V', '1', '0')}, |
bc54ab99e5b6
add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents:
27324
diff
changeset
|
138 { CODEC_ID_RV20, MKTAG('R', 'V', '2', '0')}, |
bc54ab99e5b6
add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents:
27324
diff
changeset
|
139 { CODEC_ID_RV30, MKTAG('R', 'V', '3', '0')}, |
bc54ab99e5b6
add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents:
27324
diff
changeset
|
140 { CODEC_ID_RV40, MKTAG('R', 'V', '4', '0')}, |
32573 | 141 { CODEC_ID_SVQ3, MKTAG('S', 'V', 'Q', '3')}, |
29778 | 142 { CODEC_ID_TGV, MKTAG('f', 'V', 'G', 'T')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
143 { CODEC_ID_THP, MKTAG('T', 'H', 'P', 'V')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
144 { CODEC_ID_TIERTEXSEQVIDEO, MKTAG('T', 'S', 'E', 'Q')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
145 { CODEC_ID_TXD, MKTAG('T', 'X', 'D', 'V')}, |
27324 | 146 { CODEC_ID_VP6A, MKTAG('V', 'P', '6', 'A')}, |
26328
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
147 { CODEC_ID_VMDVIDEO, MKTAG('V', 'M', 'D', 'V')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
148 { CODEC_ID_WS_VQA, MKTAG('V', 'Q', 'A', 'V')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
149 { CODEC_ID_XAN_WC3, MKTAG('W', 'C', '3', 'V')}, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
150 { 0, 0 }, |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
151 }; |
11aac031b4b7
Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff
changeset
|
152 |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
153 static const struct AVCodecTag * const mp_bmp_taglists[] = {mp_bmp_tags, 0}; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
154 |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
155 enum CodecID mp_tag2codec_id(uint32_t tag, int audio) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
156 { |
34290
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
157 AVOutputFormat *avi_format; |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
158 enum CodecID id = av_codec_get_id(audio ? mp_wav_taglists : mp_bmp_taglists, tag); |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
159 if (id != CODEC_ID_NONE) |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
160 return id; |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
161 avi_format = av_guess_format("avi", NULL, NULL); |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
162 if (!avi_format) { |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
163 mp_msg(MSGT_DEMUXER, MSGL_FATAL, "MPlayer cannot work properly without AVI muxer in libavformat!\n"); |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
164 return 0; |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
165 } |
be2dc5bcdc19
Fix mp_tag2codec_id to take all AVI tags into account again.
reimar
parents:
34287
diff
changeset
|
166 return av_codec_get_id(avi_format->codec_tag, tag); |
34155
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
167 } |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
168 |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
169 uint32_t mp_codec_id2tag(enum CodecID codec_id, uint32_t old_tag, int audio) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
170 { |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
171 AVOutputFormat *avi_format; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
172 // For some formats (like PCM) always trust CODEC_ID_* more than codec_tag |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
173 uint32_t tag = av_codec_get_tag(mp_codecid_override_taglists, codec_id); |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
174 if (tag) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
175 return tag; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
176 |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
177 // mp4a tag is used for all mp4 files no matter what they actually contain |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
178 // mp4v is sometimes also used for files containing e.g. mjpeg |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
179 if (audio && old_tag != MKTAG('m', 'p', '4', 'a') || |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
180 !audio && old_tag != MKTAG('m', 'p', '4', 'v')) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
181 tag = old_tag; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
182 if (tag) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
183 return tag; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
184 |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
185 tag = av_codec_get_tag(audio ? mp_wav_taglists : mp_bmp_taglists, codec_id); |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
186 if (tag) |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
187 return tag; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
188 |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
189 avi_format = av_guess_format("avi", NULL, NULL); |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
190 if (!avi_format) { |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
191 mp_msg(MSGT_DEMUXER, MSGL_FATAL, "MPlayer cannot work properly without AVI muxer in libavformat!\n"); |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
192 return 0; |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
193 } |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
194 return av_codec_get_tag(avi_format->codec_tag, codec_id); |
505b49b171f4
Change codec tag/id conversion to not use ff_codec_bmp_tags/ff_codec_wav_tags.
reimar
parents:
34097
diff
changeset
|
195 } |