annotate libmpcodecs/img_format.h @ 10730:67449e5936f3

fix 10l (computation based on uninitialized data which led to incorrect field matching) and greatly improve selection logic. the pullup core should be very accurate now, so try throwing tough samples at it and report any failures! :)
author rfelker
date Sun, 31 Aug 2003 17:46:32 +0000
parents fdc349b9bd1d
children 794b55a44528
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
1
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
2 #ifndef __IMG_FORMAT_H
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
3 #define __IMG_FORMAT_H
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
4
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
5 /* RGB/BGR Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
6
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
7 #define IMGFMT_RGB_MASK 0xFFFFFF00
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
8 #define IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
6576
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
9 #define IMGFMT_RGB1 (IMGFMT_RGB|1)
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
10 #define IMGFMT_RGB4 (IMGFMT_RGB|4)
9171
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 9116
diff changeset
11 #define IMGFMT_RG4B (IMGFMT_RGB|4|128) // RGB4 with 1 pixel per byte
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
12 #define IMGFMT_RGB8 (IMGFMT_RGB|8)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
13 #define IMGFMT_RGB15 (IMGFMT_RGB|15)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
14 #define IMGFMT_RGB16 (IMGFMT_RGB|16)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
15 #define IMGFMT_RGB24 (IMGFMT_RGB|24)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
16 #define IMGFMT_RGB32 (IMGFMT_RGB|32)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
17
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
18 #define IMGFMT_BGR_MASK 0xFFFFFF00
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
19 #define IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
6576
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
20 #define IMGFMT_BGR1 (IMGFMT_BGR|1)
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
21 #define IMGFMT_BGR4 (IMGFMT_BGR|4)
9171
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 9116
diff changeset
22 #define IMGFMT_BG4B (IMGFMT_BGR|4|128) // BGR4 with 1 pixel per byte
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
23 #define IMGFMT_BGR8 (IMGFMT_BGR|8)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
24 #define IMGFMT_BGR15 (IMGFMT_BGR|15)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
25 #define IMGFMT_BGR16 (IMGFMT_BGR|16)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
26 #define IMGFMT_BGR24 (IMGFMT_BGR|24)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
27 #define IMGFMT_BGR32 (IMGFMT_BGR|32)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
28
8957
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6863
diff changeset
29 #define IMGFMT_IS_RGB(fmt) (((fmt)&IMGFMT_RGB_MASK)==IMGFMT_RGB)
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6863
diff changeset
30 #define IMGFMT_IS_BGR(fmt) (((fmt)&IMGFMT_BGR_MASK)==IMGFMT_BGR)
2791
8ef2ab5cd47f added some macros for rgb/bgr
alex
parents: 2654
diff changeset
31
9171
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 9116
diff changeset
32 #define IMGFMT_RGB_DEPTH(fmt) ((fmt)&0x3F)
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 9116
diff changeset
33 #define IMGFMT_BGR_DEPTH(fmt) ((fmt)&0x3F)
2791
8ef2ab5cd47f added some macros for rgb/bgr
alex
parents: 2654
diff changeset
34
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
35
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
36 /* Planar YUV Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
37
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
38 #define IMGFMT_YVU9 0x39555659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
39 #define IMGFMT_IF09 0x39304649
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
40 #define IMGFMT_YV12 0x32315659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
41 #define IMGFMT_I420 0x30323449
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
42 #define IMGFMT_IYUV 0x56555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
43 #define IMGFMT_CLPL 0x4C504C43
3199
1632d6824a68 New ones
nick
parents: 2791
diff changeset
44 #define IMGFMT_Y800 0x30303859
1632d6824a68 New ones
nick
parents: 2791
diff changeset
45 #define IMGFMT_Y8 0x20203859
6491
920796b6c7b1 NV12 added
arpi
parents: 5607
diff changeset
46 #define IMGFMT_NV12 0x3231564E
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
47
6863
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
48 /* unofficial Planar Formats, FIXME if official 4CC exists */
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
49 #define IMGFMT_444P 0x50343434
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
50 #define IMGFMT_422P 0x50323234
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
51 #define IMGFMT_411P 0x50313134
10305
3e40b8f879c8 HM12 & NV12 "decoder" (specially interleaved YUV formats, used by Hauppauge's PVR cards)
arpi
parents: 9171
diff changeset
52 #define IMGFMT_HM12 0x32314D48
6863
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
53
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
54 /* Packed YUV Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
55
3199
1632d6824a68 New ones
nick
parents: 2791
diff changeset
56 #define IMGFMT_IUYV 0x56595549
1632d6824a68 New ones
nick
parents: 2791
diff changeset
57 #define IMGFMT_IY41 0x31435949
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
58 #define IMGFMT_IYU1 0x31555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
59 #define IMGFMT_IYU2 0x32555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
60 #define IMGFMT_UYVY 0x59565955
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
61 #define IMGFMT_UYNV 0x564E5955
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
62 #define IMGFMT_cyuv 0x76757963
3199
1632d6824a68 New ones
nick
parents: 2791
diff changeset
63 #define IMGFMT_Y422 0x32323459
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
64 #define IMGFMT_YUY2 0x32595559
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
65 #define IMGFMT_YUNV 0x564E5559
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
66 #define IMGFMT_YVYU 0x55595659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
67 #define IMGFMT_Y41P 0x50313459
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
68 #define IMGFMT_Y211 0x31313259
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
69 #define IMGFMT_Y41T 0x54313459
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
70 #define IMGFMT_Y42T 0x54323459
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
71 #define IMGFMT_V422 0x32323456
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
72 #define IMGFMT_V655 0x35353656
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
73 #define IMGFMT_CLJR 0x524A4C43
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
74 #define IMGFMT_YUVP 0x50565559
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
75 #define IMGFMT_UYVP 0x50565955
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
76
1871
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
77 /* Compressed Formats */
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
78 #define IMGFMT_MPEGPES (('M'<<24)|('P'<<16)|('E'<<8)|('S'))
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
79
10316
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
80 // I think that this code could not be used by any other codec/format
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
81 #define IMGFMT_XVMC 0x1DC70000
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
82 #define IMGFMT_XVMC_MASK 0xFFFF0000
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
83 #define IMGFMT_IS_XVMC(fmt) (((fmt)&IMGFMT_XVMC_MASK)==IMGFMT_XVMC)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
84 //these are chroma420
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
85 #define IMGFMT_XVMC_MOCO_MPEG2 (IMGFMT_XVMC|0x02)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
86 #define IMGFMT_XVMC_IDCT_MPEG2 (IMGFMT_XVMC|0x82)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
87
1871
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
88 typedef struct {
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
89 void* data;
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
90 int size;
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
91 int id; // stream id. usually 0x1E0
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
92 int timestamp; // pts, 90000 Hz counter based
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
93 } vo_mpegpes_t;
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
94
2654
ad3a6bcad1d7 vo_format_name prototype added
alex
parents: 1871
diff changeset
95 char *vo_format_name(int format);
ad3a6bcad1d7 vo_format_name prototype added
alex
parents: 1871
diff changeset
96
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
97 #endif