annotate libmpdemux/mp_taglists.c @ 29507:fc8416cffdcd

Use a buffer of about half a second, instead of sizing it to have a constant number of frames. This improves the behaviour at very small or large sample rates, and gets rid of lots of obsolete code.
author cladisch
date Mon, 24 Aug 2009 07:32:25 +0000
parents 3699268cc9dc
children 87b0995398b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
21 #include "libavformat/avformat.h"
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
22 #include "libavformat/riff.h"
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
23
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
24 static const AVCodecTag mp_wav_tags[] = {
27429
bc54ab99e5b6 add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents: 27324
diff changeset
25 { CODEC_ID_RA_144, MKTAG('1', '4', '_', '4')},
bc54ab99e5b6 add mapping for real audio and video CODEC_ID to MPlayer's fourcc
aurel
parents: 27324
diff changeset
26 { 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
27 { CODEC_ID_ADPCM_4XM, MKTAG('4', 'X', 'M', 'A')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
28 { CODEC_ID_ADPCM_EA, MKTAG('A', 'D', 'E', 'A')},
26760
424b12ccbc7b add ffmpeg ea maxis xa adpcm audio decoder
compn
parents: 26735
diff changeset
29 { CODEC_ID_ADPCM_EA_MAXIS_XA, MKTAG('A', 'D', 'X', 'A')},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
30 { 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
31 { CODEC_ID_ADPCM_THP, MKTAG('T', 'H', 'P', 'A')},
27101
2b2ee1d4a62a add ffmdec and ffadpcmxa
compn
parents: 26846
diff changeset
32 { 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
33 { CODEC_ID_AMR_NB, MKTAG('n', 'b', 0, 0)},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
34 { 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
35 { CODEC_ID_DSICINAUDIO, MKTAG('D', 'C', 'I', 'A')},
27482
88c54359eb69 support E-AC-3 decoding using ffmpeg
aurel
parents: 27429
diff changeset
36 { CODEC_ID_EAC3, MKTAG('E', 'A', 'C', '3')},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
37 { CODEC_ID_INTERPLAY_DPCM, MKTAG('I', 'N', 'P', 'A')},
27200
4c4c3d7845fc Add support for MLP audio through FFmpeg.
diego
parents: 27101
diff changeset
38 { CODEC_ID_MLP, MKTAG('M', 'L', 'P', ' ')},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
39 { 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
40 { CODEC_ID_MUSEPACK8, MKTAG('M', 'P', 'C', '8')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
41 { CODEC_ID_NELLYMOSER, MKTAG('N', 'E', 'L', 'L')},
26846
d8fd07838415 add qclp fourcc
compn
parents: 26760
diff changeset
42 { 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
43 { CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
44 { 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
45 { 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
46 { CODEC_ID_SPEEX, MKTAG('s', 'p', 'x', ' ')},
29414
3699268cc9dc added inexistant TRHD fourcc to handle TRUEHD streams in forthcoming patch
nicodvb
parents: 29340
diff changeset
47 { 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
48 { CODEC_ID_TTA, MKTAG('T', 'T', 'A', '1')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
49 { 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
50 { 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
51 { 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
52 { 0, 0 },
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
53 };
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
54
29340
6abc7c14f271 Fix compilation: codec_wav_tags/codec_bmp_tags were renamed to
reimar
parents: 29085
diff changeset
55 const struct AVCodecTag *mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0};
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
56
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
57 static const AVCodecTag mp_wav_override_tags[] = {
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
58 { 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
59 { CODEC_ID_PCM_U8, 1},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
60 { 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
61 { CODEC_ID_PCM_S16LE, 1},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
62 { 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
63 { CODEC_ID_PCM_S24LE, 1},
29085
07d177c306ce override codec tag for pcm s32le and s32be, used in mov
bcoudurier
parents: 29071
diff changeset
64 { 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
65 { CODEC_ID_PCM_S32LE, 1},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
66 { 0, 0 },
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
67 };
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
68
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
69 const struct AVCodecTag *mp_wav_override_taglists[] = {mp_wav_override_tags, 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 static const AVCodecTag mp_bmp_tags[] = {
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
72 { CODEC_ID_AMV, MKTAG('A', 'M', 'V', 'V')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
73 { CODEC_ID_BETHSOFTVID, MKTAG('B', 'E', 'T', 'H')},
26459
f6183d22bdb3 Add BFI video support through FFmpeg.
diego
parents: 26328
diff changeset
74 { CODEC_ID_BFI, MKTAG('B', 'F', 'I', 'V')},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
75 { CODEC_ID_C93, MKTAG('C', '9', '3', 'V')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
76 { 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
77 { 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
78 { 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
79 { 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
80 { CODEC_ID_INTERPLAY_VIDEO, MKTAG('I', 'N', 'P', 'V')},
27101
2b2ee1d4a62a add ffmdec and ffadpcmxa
compn
parents: 26846
diff changeset
81 { CODEC_ID_MDEC, MKTAG('M', 'D', 'E', 'C')},
27323
7a41444980f3 add ffmotionpixels codec
compn
parents: 27200
diff changeset
82 { CODEC_ID_MOTIONPIXELS, MKTAG('M', 'V', 'I', '1')},
26735
884d72a2dc78 add rl2 codec
compn
parents: 26459
diff changeset
83 { 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
84 { 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
85 { 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
86 { 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
87 { 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
88 { CODEC_ID_RV40, MKTAG('R', 'V', '4', '0')},
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
89 { 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
90 { 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
91 { CODEC_ID_TXD, MKTAG('T', 'X', 'D', 'V')},
27324
f52396a61654 add ffvp6a codec
compn
parents: 27323
diff changeset
92 { 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
93 { 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
94 { 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
95 { 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
96 { CODEC_ID_NUV, MKTAG('N', 'U', 'V', '1')},
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
97 { 0, 0 },
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
98 };
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
99
29340
6abc7c14f271 Fix compilation: codec_wav_tags/codec_bmp_tags were renamed to
reimar
parents: 29085
diff changeset
100 const struct AVCodecTag *mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0};
26328
11aac031b4b7 Split the lavf taglists out of the lavf muxer to allow using libmpmux
albeu
parents:
diff changeset
101