14 #define HDMI_EC_XVYCC601 0x00
15 #define HDMI_EC_XVYCC709 0x01
16 #define HDMI_EC_SYCC601 0x02
17 #define HDMI_EC_ADOBEYCC601 0x03
18 #define HDMI_EC_ADOBERGB 0x04
20 #define HDMI_YQ_LIMITED_RANGE 0x00
21 #define HDMI_YQ_FULL_RANGE 0x01
23 #define HDMI_CN_NONE_OR_GRAPHICS 0x00
24 #define HDMI_CN_PHOTO 0x01
25 #define HDMI_CN_CINEMA 0x02
26 #define HDMI_CN_GAME 0x03
34 DWORD dwFrameDuration;
38 { 0, 0, FALSE, 0, 0, 0, },
39 { 640, 480, FALSE, 4, 3, 166667, },
40 { 720, 480, FALSE, 4, 3, 166667, },
41 { 720, 480, FALSE, 16, 9, 166667, },
42 { 1280, 720, FALSE, 16, 9, 166667, },
43 { 1920, 1080, TRUE, 16, 9, 333333, },
44 { 720, 480, TRUE, 4, 3, 333333, },
45 { 720, 480, TRUE, 16, 9, 333333, },
46 { 720, 240, FALSE, 4, 3, 166667, },
47 { 720, 240, FALSE, 16, 9, 166667, },
48 { 2880, 480, TRUE, 4, 3, 333333, },
49 { 2880, 480, TRUE, 16, 9, 333333, },
50 { 2880, 240, FALSE, 4, 3, 166667, },
51 { 2880, 240, FALSE, 16, 9, 166667, },
52 { 1440, 480, FALSE, 4, 3, 166667, },
53 { 1440, 480, FALSE, 16, 9, 166667, },
54 { 1920, 1080, FALSE, 16, 9, 166667, },
55 { 720, 576, FALSE, 4, 3, 200000, },
56 { 720, 576, FALSE, 16, 9, 200000, },
57 { 1280, 720, FALSE, 16, 9, 200000, },
58 { 1920, 1080, TRUE, 16, 9, 400000, },
59 { 720, 576, TRUE, 4, 3, 400000, },
60 { 720, 576, TRUE, 16, 9, 400000, },
61 { 720, 288, FALSE, 4, 3, 200000, },
62 { 720, 288, FALSE, 16, 9, 200000, },
63 { 2880, 576, TRUE, 4, 3, 400000, },
64 { 2880, 576, TRUE, 4, 3, 400000, },
65 { 2880, 288, FALSE, 4, 3, 200000, },
66 { 2880, 288, FALSE, 16, 9, 200000, },
67 { 1440, 576, FALSE, 4, 3, 200000, },
68 { 1440, 576, FALSE, 16, 9, 200000, },
69 { 1920, 1080, FALSE, 16, 9, 200000, },
70 { 1920, 1080, FALSE, 16, 9, 416667, },
71 { 1920, 1080, FALSE, 16, 9, 400000, },
72 { 1920, 1080, FALSE, 16, 9, 333333, },
73 { 2880, 480, FALSE, 4, 3, 166667, },
74 { 2880, 480, FALSE, 16, 9, 166667, },
75 { 2880, 576, FALSE, 4, 3, 200000, },
76 { 2880, 576, FALSE, 16, 9, 200000, },
77 { 1920, 1080, TRUE, 16, 9, 400000, },
78 { 1920, 1080, TRUE, 16, 9, 200000, },
79 { 1280, 720, FALSE, 16, 9, 100000, },
80 { 720, 576, FALSE, 4, 3, 100000, },
81 { 720, 576, FALSE, 16, 9, 100000, },
82 { 720, 576, TRUE, 4, 3, 200000, },
83 { 720, 576, TRUE, 16, 9, 200000, },
84 { 1920, 1080, TRUE, 16, 9, 166667, },
85 { 1280, 720, FALSE, 16, 9, 83333, },
86 { 720, 480, FALSE, 4, 3, 83333, },
87 { 720, 480, FALSE, 16, 9, 83333, },
88 { 720, 480, TRUE, 4, 3, 166667, },
89 { 720, 480, TRUE, 16, 9, 166667, },
90 { 720, 576, FALSE, 4, 3, 50000, },
91 { 720, 576, FALSE, 16, 9, 50000, },
92 { 720, 576, TRUE, 4, 3, 100000, },
93 { 720, 576, TRUE, 16, 9, 100000, },
94 { 720, 480, FALSE, 4, 3, 41667, },
95 { 720, 480, FALSE, 16, 9, 41667, },
96 { 720, 480, TRUE, 4, 3, 83333, },
97 { 720, 480, TRUE, 16, 9, 83333, },
98 { 1280, 720, FALSE, 16, 9, 416667, },
99 { 1280, 720, FALSE, 16, 9, 400000, },
100 { 1280, 720, FALSE, 16, 9, 333333, },
101 { 1920, 1080, FALSE, 16, 9, 83333, },
102 { 1920, 1080, FALSE, 16, 9, 100000 },
106 { 0, 0, FALSE, 0, 0, 0, },
107 { 3840, 2160, FALSE, 16, 9, 333333, },
108 { 3840, 2160, FALSE, 16, 9, 400000, },
109 { 3840, 2160, FALSE, 16, 9, 416667, },
110 { 4096, 2160, FALSE, 16, 9, 416667 },
113 static const BYTE g_abyDefaultYUV709VICs[] = {
114 0, 1, 4, 5, 16, 19, 20, 31, 32, 33, 34, 39, 40, 46, 47, 60, 61, 62, 63, 64
118 typedef enum _HDMI_PIXEL_ENCODING {
119 HDMI_ENCODING_RGB_444 = 0,
120 HDMI_ENCODING_YUV_422 = 1,
121 HDMI_ENCODING_YUV_444 = 2,
122 HDMI_ENCODING_YUV_420 = 3
123 } HDMI_PXIEL_ENCODING;
127 BYTE byBarDataPresent : 2;
128 BYTE byActiveFormatInfoPresent : 1;
129 BYTE byRGB_YCbCr : 2;
130 BYTE byFutureUseByte1 : 1;
132 BYTE byActivePortionAspectRatio : 4;
133 BYTE byCodedFrameAspectRatio : 2;
134 BYTE byColorimetry : 2;
136 BYTE byNonUniformPictureScaling : 2;
137 BYTE byRGBQuantizationRange : 2;
138 BYTE byExtendedColorimetry : 3;
139 BYTE byITContent : 1;
142 BYTE byFutureUseByte4 : 1;
144 BYTE byPixelRepetitionFactor : 4;
145 BYTE byITContentType : 2;
146 BYTE byYCCQuantizationRange : 2;
149 WORD wStartOfBottomBar;
151 WORD wStartOfRightBar;
156 BYTE byMetadataDescriptorID;
158 BYTE display_primaries_lsb_x0;
159 BYTE display_primaries_msb_x0;
160 BYTE display_primaries_lsb_y0;
161 BYTE display_primaries_msb_y0;
163 BYTE display_primaries_lsb_x1;
164 BYTE display_primaries_msb_x1;
165 BYTE display_primaries_lsb_y1;
166 BYTE display_primaries_msb_y1;
168 BYTE display_primaries_lsb_x2;
169 BYTE display_primaries_msb_x2;
170 BYTE display_primaries_lsb_y2;
171 BYTE display_primaries_msb_y2;
173 BYTE white_point_lsb_x;
174 BYTE white_point_msb_x;
175 BYTE white_point_lsb_y;
176 BYTE white_point_msb_y;
178 BYTE max_display_mastering_lsb_luminance;
179 BYTE max_display_mastering_msb_luminance;
180 BYTE min_display_mastering_lsb_luminance;
181 BYTE min_display_mastering_msb_luminance;
183 BYTE maximum_content_light_level_lsb;
184 BYTE maximum_content_light_level_msb;
186 BYTE maximum_frame_average_light_level_lsb;
187 BYTE maximum_frame_average_light_level_msb;
192 #define HDMI_AUDIO_CODING_TYPE_STREAM 0x00
193 #define HDMI_AUDIO_CODING_TYPE_PCM 0x01
194 #define HDMI_AUDIO_CODING_TYPE_AC3 0x02
195 #define HDMI_AUDIO_CODING_TYPE_MPEG1 0x03
196 #define HDMI_AUDIO_CODING_TYPE_MP3 0x04
197 #define HDMI_AUDIO_CODING_TYPE_MPEG2 0x05
198 #define HDMI_AUDIO_CODING_TYPE_AAC_LC 0x06
199 #define HDMI_AUDIO_CODING_TYPE_DTS 0x07
200 #define HDMI_AUDIO_CODING_TYPE_ATRAC 0x08
201 #define HDMI_AUDIO_CODING_TYPE_DSD 0x09
202 #define HDMI_AUDIO_CODING_TYPE_EAC3 0x0A
203 #define HDMI_AUDIO_CODING_TYPE_DTS_HD 0x0B
205 #define HDMI_AUDIO_SAMPLE_SIZE_STREAM 0x00
206 #define HDMI_AUDIO_SAMPLE_SIZE_16BIT 0x01
207 #define HDMI_AUDIO_SAMPLE_SIZE_20BIT 0x02
208 #define HDMI_AUDIO_SAMPLE_SIZE_24BIT 0x03
210 #define HDMI_AUDIO_SAMPLE_RATE_STREAM 0x00
211 #define HDMI_AUDIO_SAMPLE_RATE_32000 0x01
212 #define HDMI_AUDIO_SAMPLE_RATE_44100 0x02
213 #define HDMI_AUDIO_SAMPLE_RATE_48000 0x03
214 #define HDMI_AUDIO_SAMPLE_RATE_88200 0x04
215 #define HDMI_AUDIO_SAMPLE_RATE_96000 0x05
216 #define HDMI_AUDIO_SAMPLE_RATE_176400 0x06
217 #define HDMI_AUDIO_SAMPLE_RATE_192000 0x07
220 BYTE byChannelCount : 3;
221 BYTE byReserved1 : 1;
222 BYTE byAudioCodingType : 4;
224 BYTE bySampleSize : 2;
225 BYTE bySampleFrequency : 3;
226 BYTE byReserved2 : 3;
228 BYTE byAudioCodingExtensionType : 5;
229 BYTE byReserved3 : 3;
231 BYTE byChannelAllocation;
233 BYTE byLFEPlaybackLevel : 2;
234 BYTE byReserved4 : 1;
235 BYTE byLevelShiftValue : 4;
236 BYTE byDownMixInhibitFlag : 1;
240 #define HDMI_SPD_SORUCE_UNKOWN 0x00
241 #define HDMI_SPD_SORUCE_DIGITAL_STB 0x01
242 #define HDMI_SPD_SORUCE_DVD_PLAYER 0x02
243 #define HDMI_SPD_SORUCE_D_VHS 0x03
244 #define HDMI_SPD_SORUCE_HDD_RECORDER 0x04
245 #define HDMI_SPD_SORUCE_DVC 0x05
246 #define HDMI_SPD_SORUCE_DSC 0x06
247 #define HDMI_SPD_SORUCE_VIDEO_CD 0x07
248 #define HDMI_SPD_SORUCE_GAME 0x08
249 #define HDMI_SPD_SORUCE_PC_GENERAL 0x09
250 #define HDMI_SPD_SORUCE_BLUE_RAY_DISC 0x0A
251 #define HDMI_SPD_SORUCE_SUPER_AUDIO_CD 0x0B
252 #define HDMI_SPD_SORUCE_HD_DVD 0x0C
253 #define HDMI_SPD_SORUCE_PMP 0x0D
256 CHAR achVendorName[8];
257 CHAR achProductDescription[16];
258 BYTE bySourceInformation;
262 #define HDMI14B_VS_REGISTRATION_ID 0x000C03
264 #define HDMI14B_VS_FORMAT_NONE 0x00
265 #define HDMI14B_VS_FORMAT_EXT_RES 0x01
266 #define HDMI14B_VS_FORMAT_3D_FORMAT 0x02
269 #define HDMI14B_3DS_FRAME_PACKING 0x00
270 #define HDMI14B_3DS_FIELD_ALTERNATIVE 0x01
271 #define HDMI14B_3DS_LINE_ALTERNATIVE 0x02
272 #define HDMI14B_3DS_SIDE_BY_SIDE_FULL 0x03
273 #define HDMI14B_3DS_TOP_AND_BOTTOM 0x06
274 #define HDMI14B_3DS_SIDE_BY_SIDE_HALF 0x08
277 #define HDMI_SUB_SAMPLING_HORIZONTAL_00 0x00
278 #define HDMI_SUB_SAMPLING_HORIZONTAL_01 0x01
279 #define HDMI_SUB_SAMPLING_HORIZONTAL_10 0x02
280 #define HDMI_SUB_SAMPLING_HORIZONTAL_11 0x03
281 #define HDMI_SUB_SAMPLING_QUINCUNX_ODD_ODD 0x04
282 #define HDMI_SUB_SAMPLING_QUINCUNX_ODD_EVEN 0x05
283 #define HDMI_SUB_SAMPLING_QUINCUNX_EVEN_ODD 0x06
284 #define HDMI_SUB_SAMPLING_QUINCUNX_EVEN_EVEN 0x07
291 BYTE byReserved1 : 3;
292 BYTE by3DMetaPresent : 1;
293 BYTE by3DStructure : 4;
295 BYTE byReserved2 : 4;
296 BYTE by3DExtData : 4;
298 BYTE by3DMetadataLength : 5;
299 BYTE by3DMetadataType : 3;
303 BYTE byReserved1 : 5;
304 BYTE byHDMIVideoFormat : 3;
314 BYTE abyRegistrationId[3];
324 return payload->abyRegistrationId[0] | (payload->abyRegistrationId[1] << 8)
325 | (payload->abyRegistrationId[2] << 16);
329 #define HDMI_INFOFRAME_TYPE_VS 0x81
330 #define HDMI_INFOFRAME_TYPE_AVI 0x82
331 #define HDMI_INFOFRAME_TYPE_SPD 0x83
332 #define HDMI_INFOFRAME_TYPE_AUDIO 0x84
333 #define HDMI_INFOFRAME_TYPE_MS 0x85
334 #define HDMI_INFOFRAME_TYPE_VBI 0x86
335 #define HDMI_INFOFRAME_TYPE_HDR 0x87
342 BYTE byReservedZero : 3;
361 unsigned char *pbyData = (
unsigned char *)&info->header;
362 BYTE cbData = info->header.byLength +
sizeof(info->header) + 1;
365 while (cbData-- != 0)
Definition: MWHDMIPackets.h:219
Definition: MWHDMIPackets.h:125
Definition: MWHDMIPackets.h:154
Definition: MWHDMIPackets.h:313
Definition: MWHDMIPackets.h:286
Definition: MWHDMIPackets.h:302
Definition: MWHDMIPackets.h:255
Definition: MWHDMIPackets.h:345