annotate libmpdemux/matroska.h @ 14747:d87cc822b343

Remove a lot of duplicate code
author reimar
date Mon, 21 Feb 2005 14:44:39 +0000
parents a226d301eec1
children ab1eb8054890
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
1 /*
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
2 * CodecID definitions for Matroska files
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
3 *
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
4 * see http://cvs.corecodec.org/cgi-bin/cvsweb.cgi/~checkout~/matroska/doc/website/specs/codex.html?rev=HEAD&content-type=text/html
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
5 */
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
6
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
7 #ifndef __MATROSKA_H
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
8 #define __MATROSKA_H
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
9
13126
b59e16a8dfc7 Support for subtitle switching in Matroska.
mosu
parents: 12550
diff changeset
10 #include "demuxer.h"
b59e16a8dfc7 Support for subtitle switching in Matroska.
mosu
parents: 12550
diff changeset
11
10133
d9c9422887ca Endian fixes and proper support for headerless AAC streams.
mosu
parents: 10125
diff changeset
12 #define MKV_A_AAC_2MAIN "A_AAC/MPEG2/MAIN"
10125
252428ac7978 Added support for AAC.
mosu
parents: 10105
diff changeset
13 #define MKV_A_AAC_2LC "A_AAC/MPEG2/LC"
11557
32411c15cebc Support for HE-AAC in Matroska. Also only set ds->pts to the first pts of a laced block, and set dp->pts to the current pts taking default_duration into account.
mosu
parents: 11486
diff changeset
14 #define MKV_A_AAC_2SBR "A_AAC/MPEG2/LC/SBR"
10133
d9c9422887ca Endian fixes and proper support for headerless AAC streams.
mosu
parents: 10125
diff changeset
15 #define MKV_A_AAC_2SSR "A_AAC/MPEG2/SSR"
d9c9422887ca Endian fixes and proper support for headerless AAC streams.
mosu
parents: 10125
diff changeset
16 #define MKV_A_AAC_4MAIN "A_AAC/MPEG4/MAIN"
10125
252428ac7978 Added support for AAC.
mosu
parents: 10105
diff changeset
17 #define MKV_A_AAC_4LC "A_AAC/MPEG4/LC"
11557
32411c15cebc Support for HE-AAC in Matroska. Also only set ds->pts to the first pts of a laced block, and set dp->pts to the current pts taking default_duration into account.
mosu
parents: 11486
diff changeset
18 #define MKV_A_AAC_4SBR "A_AAC/MPEG4/LC/SBR"
10133
d9c9422887ca Endian fixes and proper support for headerless AAC streams.
mosu
parents: 10125
diff changeset
19 #define MKV_A_AAC_4SSR "A_AAC/MPEG4/SSR"
d9c9422887ca Endian fixes and proper support for headerless AAC streams.
mosu
parents: 10125
diff changeset
20 #define MKV_A_AAC_4LTP "A_AAC/MPEG4/LTP"
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
21 #define MKV_A_AC3 "A_AC3"
10105
dc4f1b768062 Support for DTS tracks (only with -hwac3 of course).
mosu
parents: 10024
diff changeset
22 #define MKV_A_DTS "A_DTS"
11155
4a21e1672c91 Support for MP2 audio.
mosu
parents: 11153
diff changeset
23 #define MKV_A_MP2 "A_MPEG/L2"
10125
252428ac7978 Added support for AAC.
mosu
parents: 10105
diff changeset
24 #define MKV_A_MP3 "A_MPEG/L3"
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
25 #define MKV_A_PCM "A_PCM/INT/LIT"
10844
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
26 #define MKV_A_PCM_BE "A_PCM/INT/BIG"
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
27 #define MKV_A_VORBIS "A_VORBIS"
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
28 #define MKV_A_ACM "A_MS/ACM"
10410
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
29 #define MKV_A_REAL28 "A_REAL/28_8"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
30 #define MKV_A_REALATRC "A_REAL/ATRC"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
31 #define MKV_A_REALCOOK "A_REAL/COOK"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
32 #define MKV_A_REALDNET "A_REAL/DNET"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
33 #define MKV_A_REALSIPR "A_REAL/SIPR"
10845
71db96cf88d4 Support for SSA text subs in Matroska. Patch partially by Tristan <z80@oceanfree.net>.
mosu
parents: 10844
diff changeset
34 #define MKV_A_QDMC "A_QUICKTIME/QDMC"
71db96cf88d4 Support for SSA text subs in Matroska. Patch partially by Tristan <z80@oceanfree.net>.
mosu
parents: 10844
diff changeset
35 #define MKV_A_QDMC2 "A_QUICKTIME/QDM2"
11486
e6662a93da28 Added the FLAC CodecId.
mosu
parents: 11155
diff changeset
36 #define MKV_A_FLAC "A_FLAC"
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
37
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
38 #define MKV_V_MSCOMP "V_MS/VFW/FOURCC"
10410
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
39 #define MKV_V_REALV10 "V_REAL/RV10"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
40 #define MKV_V_REALV20 "V_REAL/RV20"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
41 #define MKV_V_REALV30 "V_REAL/RV30"
c2fc1c310699 Necessary changes for the upcoming libebml/libmatroska 0.5.0. Implemented support for RealAudio and RealVideo inside Matroska.
mosu
parents: 10133
diff changeset
42 #define MKV_V_REALV40 "V_REAL/RV40"
10844
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
43 #define MKV_V_SORENSONV1 "V_SORENSON/V1"
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
44 #define MKV_V_SORENSONV2 "V_SORENSON/V2"
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
45 #define MKV_V_SORENSONV3 "V_SORENSON/V3"
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
46 #define MKV_V_CINEPAK "V_CINEPAK"
98681fdabf79 Support for Quicktime stuff in Matroska (e.g. Sorenson, QDesign Music codecs etc.).
mosu
parents: 10410
diff changeset
47 #define MKV_V_QUICKTIME "V_QUICKTIME"
14054
53ea955d19fa Added support for MPEG-1 and MPEG-2 in Matroska.
mosu
parents: 13129
diff changeset
48 #define MKV_V_MPEG1 "V_MPEG1"
53ea955d19fa Added support for MPEG-1 and MPEG-2 in Matroska.
mosu
parents: 13129
diff changeset
49 #define MKV_V_MPEG2 "V_MPEG2"
14458
6e5956958746 Support for AVC in Matroska.
mosu
parents: 14054
diff changeset
50 #define MKV_V_MPEG4_AVC "V_MPEG4/ISO/AVC"
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
51
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
52 #define MKV_S_TEXTASCII "S_TEXT/ASCII"
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
53 #define MKV_S_TEXTUTF8 "S_TEXT/UTF8"
10845
71db96cf88d4 Support for SSA text subs in Matroska. Patch partially by Tristan <z80@oceanfree.net>.
mosu
parents: 10844
diff changeset
54 #define MKV_S_TEXTSSA "S_TEXT/SSA"
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents: 11557
diff changeset
55 #define MKV_S_TEXTASS "S_TEXT/ASS"
11153
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
56 #define MKV_S_VOBSUB "S_VOBSUB"
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents: 11557
diff changeset
57 #define MKV_S_SSA "S_SSA" // Deprecated
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents: 11557
diff changeset
58 #define MKV_S_ASS "S_ASS" // Deprecated
11153
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
59
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
60 typedef struct {
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
61 char type; // t = text, v = VobSub
14561
a226d301eec1 Handle missing palettes in the info part of VobSubs in Matroska files correctly by giving mplayer a NULL pointer. This way it will use a default palette instead of black only. Patch by Csillag Kristof (fenwick () freemail ! hu)
mosu
parents: 14458
diff changeset
62 int has_palette; // If we have a valid palette
11153
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
63 unsigned int palette[16]; // for VobSubs
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
64 int width, height; // for VobSubs
12550
733c9d9882d1 Support for the "custom colors" and "forced subtitles" entries in the VobSub idx. Made the parser handle whitespaces better.
mosu
parents: 11807
diff changeset
65 int custom_colors;
733c9d9882d1 Support for the "custom colors" and "forced subtitles" entries in the VobSub idx. Made the parser handle whitespaces better.
mosu
parents: 11807
diff changeset
66 unsigned int colors[4];
733c9d9882d1 Support for the "custom colors" and "forced subtitles" entries in the VobSub idx. Made the parser handle whitespaces better.
mosu
parents: 11807
diff changeset
67 int forced_subs_only;
11153
cb82b062188f Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
mosu
parents: 10845
diff changeset
68 } mkv_sh_sub_t;
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
69
13129
cfce549da2f0 Display the language code for subtitles from Matroska files.
mosu
parents: 13126
diff changeset
70 int demux_mkv_num_subs(demuxer_t *demuxer);
cfce549da2f0 Display the language code for subtitles from Matroska files.
mosu
parents: 13126
diff changeset
71 int demux_mkv_change_subs(demuxer_t *demuxer, int new_num);
cfce549da2f0 Display the language code for subtitles from Matroska files.
mosu
parents: 13126
diff changeset
72 void demux_mkv_get_sub_lang(demuxer_t *demuxer, int track_num, char *lang,
cfce549da2f0 Display the language code for subtitles from Matroska files.
mosu
parents: 13126
diff changeset
73 int maxlen);
13126
b59e16a8dfc7 Support for subtitle switching in Matroska.
mosu
parents: 12550
diff changeset
74
10024
c6fab860ab18 Added Matroska demuxing support.
mosu
parents:
diff changeset
75 #endif /* __MATROSKA_H */