1 /*
2  *  tccodecs.h
3  *
4  *  Copyright (C) Thomas Oestreich - June 2001
5  *  ripped from 'magic.h' by Francesco Romani - November 2005
6  *
7  *  This file is part of transcode, a video stream  processing tool
8  *
9  *  transcode is free software; you can redistribute it and/or modify
10  *  it under the terms of the GNU General Public License as published by
11  *  the Free Software Foundation; either version 2, or (at your option)
12  *  any later version.
13  *
14  *  transcode is distributed in the hope that it will be useful,
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *  GNU General Public License for more details.
18  *
19  *  You should have received a copy of the GNU General Public License
20  *  along with GNU Make; see the file COPYING.  If not, write to
21  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  */
24 
25 #ifndef TC_CODECS_H
26 #define TC_CODECS_H
27 
28 /*
29  * codecs identifiers.
30  * (WARNING: avilib relies on these _values_, at least for audio)
31  */
32 
33 typedef enum {
34     /* ok, now the real codecs */
35     TC_CODEC_PCM        = 0x00000001,
36     TC_CODEC_LPCM       = 0x00010001,
37 
38     TC_CODEC_AC3        = 0x00002000,
39     TC_CODEC_DTS        = 0x0001000f,
40     TC_CODEC_MP3        = 0x00000055,
41     TC_CODEC_MP2        = 0x00000050,
42     TC_CODEC_AAC        = 0x000000FF,
43     TC_CODEC_VORBIS     = 0x0000FFFE,
44 
45     /* we need special values here? */
46     TC_CODEC_RGB        = 0x00000024,
47     TC_CODEC_YV12       = 0x32315659,
48     TC_CODEC_YUV420P    = 0x30323449,
49     TC_CODEC_YUV422P    = 0x42323459,
50     TC_CODEC_UYVY       = 0x59565955,
51     TC_CODEC_YUV2       = 0x32565559,
52     TC_CODEC_YUY2       = 0x32595559,
53 
54     /* this group should be probably removed or changed */
55     TC_CODEC_M2V        = 0x000001b3,
56     TC_CODEC_MPEG       = 0x01000000,
57     TC_CODEC_MPEG1      = 0x00100000,
58     TC_CODEC_MPEG2      = 0x00010000,
59     TC_CODEC_PS1        = 0x00007001,
60     TC_CODEC_PS2        = 0x00007002,
61     TC_CODEC_SUB        = 0xA0000011,
62 
63     /* we really need a specific value for those? */
64     TC_CODEC_DV         = 0x00001000,
65     TC_CODEC_VAG        = 0x0000FEED,
66     TC_CODEC_PV3        = 0x50563301,
67     /* no special meaning, just enumeration from here */
68     TC_CODEC_DIVX3      = 0xFFFE0001,
69     TC_CODEC_MP42,
70     TC_CODEC_MP43,
71     TC_CODEC_DIVX4,
72     TC_CODEC_DIVX5,
73     TC_CODEC_XVID,
74     TC_CODEC_H264,
75     TC_CODEC_MJPEG,
76     TC_CODEC_MPG1,
77     TC_CODEC_NUV,
78     TC_CODEC_LZO1,
79     TC_CODEC_RV10,
80     TC_CODEC_SVQ1,
81     TC_CODEC_SVQ3,
82     TC_CODEC_VP3,
83     TC_CODEC_4XM,
84     TC_CODEC_WMV1,
85     TC_CODEC_WMV2,
86     TC_CODEC_HUFFYUV,
87     TC_CODEC_INDEO3,
88     TC_CODEC_H263P,
89     TC_CODEC_H263I,
90     TC_CODEC_LZO2,
91     TC_CODEC_FRAPS,
92     TC_CODEC_FFV1,
93     TC_CODEC_ASV1,
94     TC_CODEC_ASV2,
95     TC_CODEC_THEORA,
96     TC_CODEC_MPEG1VIDEO,
97     TC_CODEC_MPEG2VIDEO,
98     TC_CODEC_MPEG4VIDEO,
99     TC_CODEC_LJPEG,	/* lossless (motion) JPEG */
100 
101     /* special (pseudo)codecs */
102     TC_CODEC_UNKNOWN    = 0x00000000,
103     TC_CODEC_RAW        = 0xFEFEFEFE,
104     TC_CODEC_ANY        = 0xFFFFFFFE,
105     /* this one MUST be the last */
106     TC_CODEC_ERROR      = 0xFFFFFFFF
107 } TCCodecID;
108 
109 #endif // TC_CODECS_H
110