annotate vidix/fourcc.h @ 25661:293aeec83153

Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with an almost-trivial implementation. This allows making the builtin codec structs const, and it also makes clearer that this "selected" status is not used outside the init functions.
author reimar
date Sat, 12 Jan 2008 14:05:46 +0000
parents 3baf6a2283da
children a93e46adb54c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
1 /*
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
2 * VIDIX FourCC.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
3 * Copyright (C) 2002 Nick Kurshev
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
4 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
5 * This file is part of MPlayer.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
6 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
7 * MPlayer is free software; you can redistribute it and/or modify
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
8 * it under the terms of the GNU General Public License as published by
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
10 * (at your option) any later version.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
11 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
12 * MPlayer is distributed in the hope that it will be useful,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
15 * GNU General Public License for more details.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
16 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
17 * You should have received a copy of the GNU General Public License
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
18 * along with MPlayer; if not, write to the Free Software
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
20 *
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
21 * This interface is based on v4l2, fbvid.h, mga_vid.h projects
dcc632dd2097 preliminary version
nick
parents:
diff changeset
22 * and personally my ideas.
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
23 */
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 3991
diff changeset
24
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
25 #ifndef FOURCC_H
dcc632dd2097 preliminary version
nick
parents:
diff changeset
26 #define FOURCC_H
dcc632dd2097 preliminary version
nick
parents:
diff changeset
27
dcc632dd2097 preliminary version
nick
parents:
diff changeset
28 /* Four-character-code (FOURCC) */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
29 #define vid_fourcc(a,b,c,d)\
dcc632dd2097 preliminary version
nick
parents:
diff changeset
30 (((unsigned)(a)<<0)|((unsigned)(b)<<8)|((unsigned)(c)<<16)|((unsigned)(d)<<24))
dcc632dd2097 preliminary version
nick
parents:
diff changeset
31
dcc632dd2097 preliminary version
nick
parents:
diff changeset
32 /* RGB fourcc */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
33 #define IMGFMT_RGB332 vid_fourcc('R','G','B','1') /* 8 RGB-3-3-2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
34 #define IMGFMT_RGB555 vid_fourcc('R','G','B','O') /* 16 RGB-5-5-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
35 #define IMGFMT_RGB565 vid_fourcc('R','G','B','P') /* 16 RGB-5-6-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
36 #define IMGFMT_RGB555X vid_fourcc('R','G','B','Q') /* 16 RGB-5-5-5 BE */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
37 #define IMGFMT_RGB565X vid_fourcc('R','G','B','R') /* 16 RGB-5-6-5 BE */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
38 #define IMGFMT_BGR15 vid_fourcc('B','G','R',15) /* 15 BGR-5-5-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
39 #define IMGFMT_RGB15 vid_fourcc('R','G','B',15) /* 15 RGB-5-5-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
40 #define IMGFMT_BGR16 vid_fourcc('B','G','R',16) /* 32 BGR-5-6-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
41 #define IMGFMT_RGB16 vid_fourcc('R','G','B',16) /* 32 RGB-5-6-5 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
42 #define IMGFMT_BGR24 vid_fourcc('B','G','R',24) /* 24 BGR-8-8-8 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
43 #define IMGFMT_RGB24 vid_fourcc('R','G','B',24) /* 24 RGB-8-8-8 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
44 #define IMGFMT_BGR32 vid_fourcc('B','G','R',32) /* 32 BGR-8-8-8-8 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
45 #define IMGFMT_RGB32 vid_fourcc('R','G','B',32) /* 32 RGB-8-8-8-8 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
46
dcc632dd2097 preliminary version
nick
parents:
diff changeset
47 /* Planar YUV Formats */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
48 #define IMGFMT_YVU9 vid_fourcc('Y','V','U','9') /* 9 YVU 4:1:0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
49 #define IMGFMT_IF09 vid_fourcc('I','F','0','9') /* 9.5 YUV 4:1:0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
50 #define IMGFMT_YV12 vid_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
51 #define IMGFMT_I420 vid_fourcc('I','4','2','0') /* 12 YUV 4:2:0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
52 #define IMGFMT_IYUV vid_fourcc('I','Y','U','V') /* 12 YUV 4:2:0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
53 #define IMGFMT_CLPL vid_fourcc('C','L','P','L') /* 12 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
54 #define IMGFMT_Y800 vid_fourcc('Y','8','0','0') /* 8 Y Grayscale */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
55 #define IMGFMT_Y8 vid_fourcc('Y','8',' ',' ') /* 8 Y Grayscale */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
56
dcc632dd2097 preliminary version
nick
parents:
diff changeset
57 /* Packed YUV Formats */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
58 #define IMGFMT_IUYV vid_fourcc('I','U','Y','V') /* 16 line order {0,2,4,...1,3,5} */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
59 #define IMGFMT_IY41 vid_fourcc('I','Y','4','1') /* 12 line order {0,2,4,...1,3,5} */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
60 #define IMGFMT_IYU1 vid_fourcc('I','Y','U','1') /* 12 IEEE 1394 Digital Camera */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
61 #define IMGFMT_IYU2 vid_fourcc('I','Y','U','2') /* 24 IEEE 1394 Digital Camera */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
62 #define IMGFMT_UYVY vid_fourcc('U','Y','V','Y') /* 16 UYVY 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
63 #define IMGFMT_UYNV vid_fourcc('U','Y','N','V') /* 16 UYVY 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
64 #define IMGFMT_cyuv vid_fourcc('c','y','u','v') /* 16 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
65 #define IMGFMT_Y422 vid_fourcc('Y','4','2','2') /* 16 UYVY 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
66 #define IMGFMT_YUY2 vid_fourcc('Y','U','Y','2') /* 16 YUYV 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
67 #define IMGFMT_YUNV vid_fourcc('Y','U','N','V') /* 16 YUYV 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
68 #define IMGFMT_YVYU vid_fourcc('Y','V','Y','U') /* 16 YVYU 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
69 #define IMGFMT_Y41P vid_fourcc('Y','4','1','P') /* 12 YUV 4:1:1 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
70 #define IMGFMT_Y211 vid_fourcc('Y','2','1','1') /* 8.5 YUV 2:1:1 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
71 #define IMGFMT_Y41T vid_fourcc('Y','4','1','T') /* 12 YUV 4:1:1 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
72 #define IMGFMT_Y42T vid_fourcc('Y','4','2','T') /* 16 UYVU 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
73 #define IMGFMT_V422 vid_fourcc('V','4','2','2') /* 16 YUY2 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
74 #define IMGFMT_V655 vid_fourcc('V','6','5','5') /* 16 YUV 4:2:2 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
75 #define IMGFMT_CLJR vid_fourcc('C','L','J','R') /* 7.9 YUV 4:1:1 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
76 #define IMGFMT_YUVP vid_fourcc('Y','U','V','P') /* 24 Y0U0Y1V0 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
77 #define IMGFMT_UYVP vid_fourcc('U','Y','V','P') /* 24 U0Y0V0Y1 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
78
dcc632dd2097 preliminary version
nick
parents:
diff changeset
79 /* Vendor-specific formats */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
80 #define IMGFMT_WNVA vid_fourcc('W','N','V','A') /* Winnov hw compress */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
81
25535
3baf6a2283da Add explanatory comments to the #endif part of multiple inclusion guards.
diego
parents: 23046
diff changeset
82 #endif /* FOURCC_H */