annotate libmpcodecs/img_format.h @ 36163:d13733fdf789

Avoid using swab() This is the only place where it is used and it is not available universally (missing e.g. on Android).
author reimar
date Thu, 09 May 2013 10:53:20 +0000
parents 4e3c56728d1e
children d649e84ea8d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30421
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
1 /*
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
2 * This file is part of MPlayer.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
3 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
5 * it under the terms of the GNU General Public License as published by
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
7 * (at your option) any later version.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
8 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
12 * GNU General Public License for more details.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
13 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
14 * You should have received a copy of the GNU General Public License along
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
17 */
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 30311
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
19 #ifndef MPLAYER_IMG_FORMAT_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
20 #define MPLAYER_IMG_FORMAT_H
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
21
29741
c9c2befb2409 Add missing '#include "config.h"', the header uses HAVE_BIGENDIAN.
diego
parents: 29458
diff changeset
22 #include "config.h"
c9c2befb2409 Add missing '#include "config.h"', the header uses HAVE_BIGENDIAN.
diego
parents: 29458
diff changeset
23
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
24 /* RGB/BGR Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
25
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
26 #define IMGFMT_RGB_MASK 0xFFFFFF00
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
27 #define IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
6576
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
28 #define IMGFMT_RGB1 (IMGFMT_RGB|1)
b8ed96e21f2c {RGB,BGR}{1,4}
michael
parents: 6491
diff changeset
29 #define IMGFMT_RGB4 (IMGFMT_RGB|4)
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
30 #define IMGFMT_RGB4_CHAR (IMGFMT_RGB|4|128) // RGB4 with 1 pixel per byte
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
31 #define IMGFMT_RGB8 (IMGFMT_RGB|8)
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
32 #define IMGFMT_RGB12 (IMGFMT_RGB|12)
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
33 #define IMGFMT_RGB15 (IMGFMT_RGB|15)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
34 #define IMGFMT_RGB16 (IMGFMT_RGB|16)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
35 #define IMGFMT_RGB24 (IMGFMT_RGB|24)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
36 #define IMGFMT_RGB32 (IMGFMT_RGB|32)
29444
298ee5238e8c Add IMGFMT_RGB48LE and IMGFMT_RGB48BE.
cehoyos
parents: 29401
diff changeset
37 #define IMGFMT_RGB48LE (IMGFMT_RGB|48)
29458
c85a54f30ed9 100l, fix compilation again and make codec-cfg.c use the predefined constants
reimar
parents: 29457
diff changeset
38 #define IMGFMT_RGB48BE (IMGFMT_RGB|48|128)
34572
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
39 #define IMGFMT_RGB64LE (IMGFMT_RGB|64)
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
40 #define IMGFMT_RGB64BE (IMGFMT_RGB|64|128)
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
41
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
42 #define IMGFMT_BGR_MASK 0xFFFFFF00
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
43 #define IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
44 #define IMGFMT_BGR1 (IMGFMT_BGR|1)
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
45 #define IMGFMT_BGR4 (IMGFMT_BGR|4)
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
46 #define IMGFMT_BGR4_CHAR (IMGFMT_BGR|4|128) // BGR4 with 1 pixel per byte
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
47 #define IMGFMT_BGR8 (IMGFMT_BGR|8)
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
48 #define IMGFMT_BGR12 (IMGFMT_BGR|12)
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
49 #define IMGFMT_BGR15 (IMGFMT_BGR|15)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
50 #define IMGFMT_BGR16 (IMGFMT_BGR|16)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
51 #define IMGFMT_BGR24 (IMGFMT_BGR|24)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
52 #define IMGFMT_BGR32 (IMGFMT_BGR|32)
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
53
36104
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
54 #define IMGFMT_XYZ_MASK 0xFFFFFF00
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
55 #define IMGFMT_XYZ (('X'<<24)|('Y'<<16)|('Z'<<8))
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
56 #define IMGFMT_XYZ12LE (IMGFMT_XYZ|12)
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
57 #define IMGFMT_XYZ12BE (IMGFMT_XYZ|12|128)
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
58
34157
ab178e06077e Support planar GBR24 decoding.
cehoyos
parents: 34028
diff changeset
59 #define IMGFMT_GBR24P (('G'<<24)|('B'<<16)|('R'<<8)|24)
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
60 #define IMGFMT_GBR12PLE (('G'<<24)|('B'<<16)|('R'<<8)|36)
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
61 #define IMGFMT_GBR12PBE (('G'<<24)|('B'<<16)|('R'<<8)|36|128)
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
62 #define IMGFMT_GBR14PLE (('G'<<24)|('B'<<16)|('R'<<8)|42)
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
63 #define IMGFMT_GBR14PBE (('G'<<24)|('B'<<16)|('R'<<8)|42|128)
34157
ab178e06077e Support planar GBR24 decoding.
cehoyos
parents: 34028
diff changeset
64
29401
f01023c524c3 Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents: 28516
diff changeset
65 #if HAVE_BIGENDIAN
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
66 #define IMGFMT_ABGR IMGFMT_RGB32
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
67 #define IMGFMT_BGRA (IMGFMT_RGB32|128)
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
68 #define IMGFMT_ARGB IMGFMT_BGR32
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
69 #define IMGFMT_RGBA (IMGFMT_BGR32|128)
34572
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
70 #define IMGFMT_RGB64NE IMGFMT_RGB64BE
29899
0447ba499275 Add a define for IMGFMT_RGB48NE that depends on machine endianness.
reimar
parents: 29843
diff changeset
71 #define IMGFMT_RGB48NE IMGFMT_RGB48BE
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
72 #define IMGFMT_RGB12BE IMGFMT_RGB12
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
73 #define IMGFMT_RGB12LE (IMGFMT_RGB12|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
74 #define IMGFMT_RGB15BE IMGFMT_RGB15
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
75 #define IMGFMT_RGB15LE (IMGFMT_RGB15|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
76 #define IMGFMT_RGB16BE IMGFMT_RGB16
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
77 #define IMGFMT_RGB16LE (IMGFMT_RGB16|128)
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
78 #define IMGFMT_BGR12BE IMGFMT_BGR12
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
79 #define IMGFMT_BGR12LE (IMGFMT_BGR12|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
80 #define IMGFMT_BGR15BE IMGFMT_BGR15
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
81 #define IMGFMT_BGR15LE (IMGFMT_BGR15|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
82 #define IMGFMT_BGR16BE IMGFMT_BGR16
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
83 #define IMGFMT_BGR16LE (IMGFMT_BGR16|128)
36104
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
84 #define IMGFMT_XYZ12 IMGFMT_XYZ12BE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
85 #define IMGFMT_GBR12P IMGFMT_GBR12PBE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
86 #define IMGFMT_GBR14P IMGFMT_GBR14PBE
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
87 #else
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
88 #define IMGFMT_ABGR (IMGFMT_BGR32|128)
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
89 #define IMGFMT_BGRA IMGFMT_BGR32
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
90 #define IMGFMT_ARGB (IMGFMT_RGB32|128)
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
91 #define IMGFMT_RGBA IMGFMT_RGB32
34572
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
92 #define IMGFMT_RGB64NE IMGFMT_RGB64LE
29899
0447ba499275 Add a define for IMGFMT_RGB48NE that depends on machine endianness.
reimar
parents: 29843
diff changeset
93 #define IMGFMT_RGB48NE IMGFMT_RGB48LE
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
94 #define IMGFMT_RGB12BE (IMGFMT_RGB12|128)
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
95 #define IMGFMT_RGB12LE IMGFMT_RGB12
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
96 #define IMGFMT_RGB15BE (IMGFMT_RGB15|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
97 #define IMGFMT_RGB15LE IMGFMT_RGB15
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
98 #define IMGFMT_RGB16BE (IMGFMT_RGB16|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
99 #define IMGFMT_RGB16LE IMGFMT_RGB16
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
100 #define IMGFMT_BGR12BE (IMGFMT_BGR12|128)
31082
92f88bb315c5 Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents: 30421
diff changeset
101 #define IMGFMT_BGR12LE IMGFMT_BGR12
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
102 #define IMGFMT_BGR15BE (IMGFMT_BGR15|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
103 #define IMGFMT_BGR15LE IMGFMT_BGR15
34571
463e0da69743 Use 128 instead of 64 to define non-native RGB image formats.
cehoyos
parents: 34565
diff changeset
104 #define IMGFMT_BGR16BE (IMGFMT_BGR16|128)
30311
8a67140f5fc1 Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents: 30115
diff changeset
105 #define IMGFMT_BGR16LE IMGFMT_BGR16
36104
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
106 #define IMGFMT_XYZ12 IMGFMT_XYZ12LE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
107 #define IMGFMT_GBR12P IMGFMT_GBR12PLE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
108 #define IMGFMT_GBR14P IMGFMT_GBR14PLE
12996
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
109 #endif
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
110
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
111 /* old names for compatibility */
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
112 #define IMGFMT_RG4B IMGFMT_RGB4_CHAR
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
113 #define IMGFMT_BG4B IMGFMT_BGR4_CHAR
147df4568b71 missing 32bit RGBA variants and some cleanup
michael
parents: 11386
diff changeset
114
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
115 #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
116 #define IMGFMT_IS_BGR(fmt) (((fmt)&IMGFMT_BGR_MASK)==IMGFMT_BGR)
36104
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
117 #define IMGFMT_IS_XYZ(fmt) (((fmt)&IMGFMT_XYZ_MASK)==IMGFMT_XYZ)
2791
8ef2ab5cd47f added some macros for rgb/bgr
alex
parents: 2654
diff changeset
118
34572
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
119 #define IMGFMT_RGB_DEPTH(fmt) ((fmt)&0x7F)
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34571
diff changeset
120 #define IMGFMT_BGR_DEPTH(fmt) ((fmt)&0x7F)
36104
4e3c56728d1e Support playback of JPEG 2000 digital cinema files.
cehoyos
parents: 34991
diff changeset
121 #define IMGFMT_XYZ_DEPTH(fmt) ((fmt)&0x7F)
2791
8ef2ab5cd47f added some macros for rgb/bgr
alex
parents: 2654
diff changeset
122
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
123
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
124 /* Planar YUV Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
125
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
126 #define IMGFMT_YVU9 0x39555659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
127 #define IMGFMT_IF09 0x39304649
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
128 #define IMGFMT_YV12 0x32315659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
129 #define IMGFMT_I420 0x30323449
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
130 #define IMGFMT_IYUV 0x56555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
131 #define IMGFMT_CLPL 0x4C504C43
3199
1632d6824a68 New ones
nick
parents: 2791
diff changeset
132 #define IMGFMT_Y800 0x30303859
1632d6824a68 New ones
nick
parents: 2791
diff changeset
133 #define IMGFMT_Y8 0x20203859
6491
920796b6c7b1 NV12 added
arpi
parents: 5607
diff changeset
134 #define IMGFMT_NV12 0x3231564E
10742
794b55a44528 basic nv12 and nv21 support by Angelo Cano <angelo_cano@fastmail.fm>
alex
parents: 10316
diff changeset
135 #define IMGFMT_NV21 0x3132564E
34932
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
136 #define IMGFMT_Y16_LE 0x20363159
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
137
6863
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
138 /* unofficial Planar Formats, FIXME if official 4CC exists */
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
139 #define IMGFMT_444P 0x50343434
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
140 #define IMGFMT_422P 0x50323234
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
141 #define IMGFMT_411P 0x50313134
30098
834af9d1e3e9 Add support for 440p colorspace.
reimar
parents: 30096
diff changeset
142 #define IMGFMT_440P 0x50303434
10305
3e40b8f879c8 HM12 & NV12 "decoder" (specially interleaved YUV formats, used by Hauppauge's PVR cards)
arpi
parents: 9171
diff changeset
143 #define IMGFMT_HM12 0x32314D48
34932
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
144 #define IMGFMT_Y16_BE 0x59313620
30115
ad61464d02a7 Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents: 30110
diff changeset
145
34932
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
146 // Gray with alpha
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
147 #define IMGFMT_Y8A 0x59320008
30115
ad61464d02a7 Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents: 30110
diff changeset
148 // 4:2:0 planar with alpha
ad61464d02a7 Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents: 30110
diff changeset
149 #define IMGFMT_420A 0x41303234
34805
0eba64545a27 Improve Avid Meridien (AVUI) decoding with FFmpeg.
cehoyos
parents: 34572
diff changeset
150 // 4:2:2 planar with alpha
0eba64545a27 Improve Avid Meridien (AVUI) decoding with FFmpeg.
cehoyos
parents: 34572
diff changeset
151 #define IMGFMT_422A 0x41323234
34565
25acb5f98cb4 Support v408 and AYUV decoding via FFmpeg.
cehoyos
parents: 34436
diff changeset
152 // 4:4:4 planar with alpha
25acb5f98cb4 Support v408 and AYUV decoding via FFmpeg.
cehoyos
parents: 34436
diff changeset
153 #define IMGFMT_444A 0x41343434
30115
ad61464d02a7 Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents: 30110
diff changeset
154
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
155 #define IMGFMT_444P16_LE 0x51343434
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
156 #define IMGFMT_444P16_BE 0x34343451
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
157 #define IMGFMT_444P14_LE 0x54343434
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
158 #define IMGFMT_444P14_BE 0x34343454
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
159 #define IMGFMT_444P12_LE 0x55343434
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
160 #define IMGFMT_444P12_BE 0x34343455
34028
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33604
diff changeset
161 #define IMGFMT_444P10_LE 0x52343434
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33604
diff changeset
162 #define IMGFMT_444P10_BE 0x34343452
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
163 #define IMGFMT_444P9_LE 0x53343434
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
164 #define IMGFMT_444P9_BE 0x34343453
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
165 #define IMGFMT_422P16_LE 0x51323234
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
166 #define IMGFMT_422P16_BE 0x34323251
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
167 #define IMGFMT_422P14_LE 0x54323234
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
168 #define IMGFMT_422P14_BE 0x34323254
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
169 #define IMGFMT_422P12_LE 0x55323234
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
170 #define IMGFMT_422P12_BE 0x34323255
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
171 #define IMGFMT_422P10_LE 0x52323234
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
172 #define IMGFMT_422P10_BE 0x34323252
34436
8a96cf601e57 Add support for 422P9.
reimar
parents: 34191
diff changeset
173 #define IMGFMT_422P9_LE 0x53323234
8a96cf601e57 Add support for 422P9.
reimar
parents: 34191
diff changeset
174 #define IMGFMT_422P9_BE 0x34323253
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
175 #define IMGFMT_420P16_LE 0x51303234
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
176 #define IMGFMT_420P16_BE 0x34323051
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
177 #define IMGFMT_420P14_LE 0x54303234
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
178 #define IMGFMT_420P14_BE 0x34323054
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
179 #define IMGFMT_420P12_LE 0x55303234
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
180 #define IMGFMT_420P12_BE 0x34323055
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
181 #define IMGFMT_420P10_LE 0x52303234
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
182 #define IMGFMT_420P10_BE 0x34323052
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
183 #define IMGFMT_420P9_LE 0x53303234
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
184 #define IMGFMT_420P9_BE 0x34323053
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
185 #if HAVE_BIGENDIAN
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
186 #define IMGFMT_444P16 IMGFMT_444P16_BE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
187 #define IMGFMT_444P14 IMGFMT_444P14_BE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
188 #define IMGFMT_444P12 IMGFMT_444P12_BE
34028
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33604
diff changeset
189 #define IMGFMT_444P10 IMGFMT_444P10_BE
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
190 #define IMGFMT_444P9 IMGFMT_444P9_BE
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
191 #define IMGFMT_422P16 IMGFMT_422P16_BE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
192 #define IMGFMT_422P14 IMGFMT_422P14_BE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
193 #define IMGFMT_422P12 IMGFMT_422P12_BE
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
194 #define IMGFMT_422P10 IMGFMT_422P10_BE
34436
8a96cf601e57 Add support for 422P9.
reimar
parents: 34191
diff changeset
195 #define IMGFMT_422P9 IMGFMT_422P9_BE
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
196 #define IMGFMT_420P16 IMGFMT_420P16_BE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
197 #define IMGFMT_420P14 IMGFMT_420P14_BE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
198 #define IMGFMT_420P12 IMGFMT_420P12_BE
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
199 #define IMGFMT_420P10 IMGFMT_420P10_BE
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
200 #define IMGFMT_420P9 IMGFMT_420P9_BE
34932
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
201 #define IMGFMT_Y16 IMGFMT_Y16_BE
33359
b1e64a3d6dd3 Simplify IMGFMT_IS_YUVP16_NE definition.
reimar
parents: 32488
diff changeset
202 #define IMGFMT_IS_YUVP16_NE(fmt) IMGFMT_IS_YUVP16_BE(fmt)
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
203 #else
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
204 #define IMGFMT_444P16 IMGFMT_444P16_LE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
205 #define IMGFMT_444P14 IMGFMT_444P14_LE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
206 #define IMGFMT_444P12 IMGFMT_444P12_LE
34028
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33604
diff changeset
207 #define IMGFMT_444P10 IMGFMT_444P10_LE
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
208 #define IMGFMT_444P9 IMGFMT_444P9_LE
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
209 #define IMGFMT_422P16 IMGFMT_422P16_LE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
210 #define IMGFMT_422P14 IMGFMT_422P14_LE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
211 #define IMGFMT_422P12 IMGFMT_422P12_LE
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
212 #define IMGFMT_422P10 IMGFMT_422P10_LE
34436
8a96cf601e57 Add support for 422P9.
reimar
parents: 34191
diff changeset
213 #define IMGFMT_422P9 IMGFMT_422P9_LE
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
214 #define IMGFMT_420P16 IMGFMT_420P16_LE
34923
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
215 #define IMGFMT_420P14 IMGFMT_420P14_LE
eb76937af57e Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents: 34805
diff changeset
216 #define IMGFMT_420P12 IMGFMT_420P12_LE
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
217 #define IMGFMT_420P10 IMGFMT_420P10_LE
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
218 #define IMGFMT_420P9 IMGFMT_420P9_LE
34932
19212dea7a97 Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents: 34923
diff changeset
219 #define IMGFMT_Y16 IMGFMT_Y16_LE
33359
b1e64a3d6dd3 Simplify IMGFMT_IS_YUVP16_NE definition.
reimar
parents: 32488
diff changeset
220 #define IMGFMT_IS_YUVP16_NE(fmt) IMGFMT_IS_YUVP16_LE(fmt)
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
221 #endif
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
222
33364
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
223 #define IMGFMT_IS_YUVP16_LE(fmt) (((fmt - 0x51000034) & 0xfc0000ff) == 0)
e1ee4895e500 Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents: 33359
diff changeset
224 #define IMGFMT_IS_YUVP16_BE(fmt) (((fmt - 0x34000051) & 0xff0000fc) == 0)
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
225 #define IMGFMT_IS_YUVP16(fmt) (IMGFMT_IS_YUVP16_LE(fmt) || IMGFMT_IS_YUVP16_BE(fmt))
6863
713182435a76 planar yuv 444 422 411 support
michael
parents: 6576
diff changeset
226
34982
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
227 /**
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
228 * \brief Find the corresponding full 16 bit format, i.e. IMGFMT_420P10_LE -> IMGFMT_420P16_LE
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
229 * \return normalized format ID or 0 if none exists.
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
230 */
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
231 static inline int normalize_yuvp16(int fmt) {
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
232 if (IMGFMT_IS_YUVP16_LE(fmt))
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
233 return (fmt & 0x00ffffff) | 0x51000000;
34991
d0223a72b0ba Fix normalize_yuvp16 to work for big-endian formats.
reimar
parents: 34982
diff changeset
234 if (IMGFMT_IS_YUVP16_BE(fmt))
34982
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
235 return (fmt & 0xffffff00) | 0x00000051;
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
236 return 0;
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
237 }
df138f843ebc Prefer converting 9/10 bit formats to 16 bit, this is a simple left-shift.
reimar
parents: 34932
diff changeset
238
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
239 /* Packed YUV Formats */
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
240
33604
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
241 #define IMGFMT_IUYV 0x56595549 // Interlaced UYVY
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
242 #define IMGFMT_IY41 0x31435949 // Interlaced Y41P
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
243 #define IMGFMT_IYU1 0x31555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
244 #define IMGFMT_IYU2 0x32555949
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
245 #define IMGFMT_UYVY 0x59565955
33604
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
246 #define IMGFMT_UYNV 0x564E5955 // Exactly same as UYVY
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
247 #define IMGFMT_cyuv 0x76757963 // upside-down UYVY
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
248 #define IMGFMT_Y422 0x32323459 // Exactly same as UYVY
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
249 #define IMGFMT_YUY2 0x32595559
33604
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
250 #define IMGFMT_YUNV 0x564E5559 // Exactly same as YUY2
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
251 #define IMGFMT_YVYU 0x55595659
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
252 #define IMGFMT_Y41P 0x50313459
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
253 #define IMGFMT_Y211 0x31313259
33604
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
254 #define IMGFMT_Y41T 0x54313459 // Y41P, Y lsb = transparency
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
255 #define IMGFMT_Y42T 0x54323459 // UYVY, Y lsb = transparency
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
256 #define IMGFMT_V422 0x32323456 // upside-down UYVY?
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
257 #define IMGFMT_V655 0x35353656
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
258 #define IMGFMT_CLJR 0x524A4C43
33604
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
259 #define IMGFMT_YUVP 0x50565559 // 10-bit YUYV
0556f833f44f Document the meaning of some of the packed YUV formats.
reimar
parents: 33365
diff changeset
260 #define IMGFMT_UYVP 0x50565955 // 10-bit UYVY
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
261
1871
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
262 /* Compressed Formats */
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
263 #define IMGFMT_MPEGPES (('M'<<24)|('P'<<16)|('E'<<8)|('S'))
23423
6b18c979dd45 mjpeg support for v4l2 tv:// driver
voroshil
parents: 19108
diff changeset
264 #define IMGFMT_MJPEG (('M')|('J'<<8)|('P'<<16)|('G'<<24))
11386
229079491864 addition of special image formats for Zoran MJPEG, and vd_zrmjpeg.c
rik
parents: 10742
diff changeset
265 /* Formats that are understood by zoran chips, we include
229079491864 addition of special image formats for Zoran MJPEG, and vd_zrmjpeg.c
rik
parents: 10742
diff changeset
266 * non-interlaced, interlaced top-first, interlaced bottom-first */
229079491864 addition of special image formats for Zoran MJPEG, and vd_zrmjpeg.c
rik
parents: 10742
diff changeset
267 #define IMGFMT_ZRMJPEGNI (('Z'<<24)|('R'<<16)|('N'<<8)|('I'))
229079491864 addition of special image formats for Zoran MJPEG, and vd_zrmjpeg.c
rik
parents: 10742
diff changeset
268 #define IMGFMT_ZRMJPEGIT (('Z'<<24)|('R'<<16)|('I'<<8)|('T'))
229079491864 addition of special image formats for Zoran MJPEG, and vd_zrmjpeg.c
rik
parents: 10742
diff changeset
269 #define IMGFMT_ZRMJPEGIB (('Z'<<24)|('R'<<16)|('I'<<8)|('B'))
1871
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
270
10316
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
271 // I think that this code could not be used by any other codec/format
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
272 #define IMGFMT_XVMC 0x1DC70000
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
273 #define IMGFMT_XVMC_MASK 0xFFFF0000
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
274 #define IMGFMT_IS_XVMC(fmt) (((fmt)&IMGFMT_XVMC_MASK)==IMGFMT_XVMC)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
275 //these are chroma420
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
276 #define IMGFMT_XVMC_MOCO_MPEG2 (IMGFMT_XVMC|0x02)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
277 #define IMGFMT_XVMC_IDCT_MPEG2 (IMGFMT_XVMC|0x82)
fdc349b9bd1d basic xvmc image support
iive
parents: 10305
diff changeset
278
28516
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
279 // VDPAU specific format.
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
280 #define IMGFMT_VDPAU 0x1DC80000
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
281 #define IMGFMT_VDPAU_MASK 0xFFFF0000
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
282 #define IMGFMT_IS_VDPAU(fmt) (((fmt)&IMGFMT_VDPAU_MASK)==IMGFMT_VDPAU)
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
283 #define IMGFMT_VDPAU_MPEG1 (IMGFMT_VDPAU|0x01)
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
284 #define IMGFMT_VDPAU_MPEG2 (IMGFMT_VDPAU|0x02)
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
285 #define IMGFMT_VDPAU_H264 (IMGFMT_VDPAU|0x03)
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
286 #define IMGFMT_VDPAU_WMV3 (IMGFMT_VDPAU|0x04)
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
287 #define IMGFMT_VDPAU_VC1 (IMGFMT_VDPAU|0x05)
29843
f6d56a15f1d8 Support VDPAU hardware accelerated decoding of MPEG-4 ASP on capable
cehoyos
parents: 29741
diff changeset
288 #define IMGFMT_VDPAU_MPEG4 (IMGFMT_VDPAU|0x06)
28516
79b0bd20433e Add support for image formats and codecs used by VDPAU
reimar
parents: 26029
diff changeset
289
32488
49722126eba9 Add and use a IMGFMT_IS_HWACCEL define.
reimar
parents: 31082
diff changeset
290 #define IMGFMT_IS_HWACCEL(fmt) (IMGFMT_IS_VDPAU(fmt) || IMGFMT_IS_XVMC(fmt))
49722126eba9 Add and use a IMGFMT_IS_HWACCEL define.
reimar
parents: 31082
diff changeset
291
1871
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
292 typedef struct {
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
293 void* data;
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
294 int size;
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
295 int id; // stream id. usually 0x1E0
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
296 int timestamp; // pts, 90000 Hz counter based
cb5dde69354b Mpeg PES added
arpi
parents: 408
diff changeset
297 } vo_mpegpes_t;
408
b61c5c4484f8 - applied overlay patch by Jens H
atmosfear
parents:
diff changeset
298
19108
5e767cabf4cd marks several read-only string parameters and function return-values which can only be used read-only as const. Patch by Stefan Huehner, stefan _AT huener-org
reynaldo
parents: 12996
diff changeset
299 const char *vo_format_name(int format);
2654
ad3a6bcad1d7 vo_format_name prototype added
alex
parents: 1871
diff changeset
300
30096
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
301 /**
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
302 * Calculates the scale shifts for the chroma planes for planar YUV
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
303 *
33365
706871635af7 Make mp_get_chroma_shift simpler/more generic and add an argument
reimar
parents: 33364
diff changeset
304 * \param component_bits bits per component
30096
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
305 * \return bits-per-pixel for format if successful (i.e. format is 3 or 4-planes planar YUV), 0 otherwise
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
306 */
33365
706871635af7 Make mp_get_chroma_shift simpler/more generic and add an argument
reimar
parents: 33364
diff changeset
307 int mp_get_chroma_shift(int format, int *x_shift, int *y_shift, int *component_bits);
30096
76c25bfa181b Add a helper function to get the chroma scale shift and use to simplify mpi setup.
reimar
parents: 29899
diff changeset
308
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
309 #endif /* MPLAYER_IMG_FORMAT_H */