Documentation for <libdisplay-info/edid.h>
Table of contents
- struct di_edid
- struct di_edid_chromaticity_coords
- struct di_edid_color_encoding_formats
- struct di_edid_color_management_data
- struct di_edid_color_point
- enum di_edid_cvt_aspect_ratio
- enum di_edid_cvt_scaling
- struct di_edid_cvt_timing_code
- enum di_edid_cvt_timing_code_aspect_ratio
- enum di_edid_cvt_timing_code_preferred_vrate
- struct di_edid_detailed_timing_analog_composite
- struct di_edid_detailed_timing_bipolar_analog_composite
- struct di_edid_detailed_timing_def
- enum di_edid_detailed_timing_def_signal_type
- enum di_edid_detailed_timing_def_stereo
- enum di_edid_detailed_timing_def_sync_polarity
- struct di_edid_detailed_timing_digital_composite
- struct di_edid_detailed_timing_digital_separate
- enum di_edid_display_color_type
- struct di_edid_display_descriptor
- di_edid_display_descriptor_get_color_management_data()
- di_edid_display_descriptor_get_color_points()
- di_edid_display_descriptor_get_cvt_timing_codes()
- di_edid_display_descriptor_get_established_timings_iii()
- di_edid_display_descriptor_get_range_limits()
- di_edid_display_descriptor_get_standard_timings()
- di_edid_display_descriptor_get_string()
- di_edid_display_descriptor_get_tag()
- enum di_edid_display_descriptor_tag
- struct di_edid_display_range_limits
- struct di_edid_display_range_limits_cvt
- struct di_edid_display_range_limits_secondary_gtf
- enum di_edid_display_range_limits_type
- struct di_edid_dpms
- struct di_edid_established_timings_i_ii
- struct di_edid_ext
- di_edid_ext_get_cta()
- di_edid_ext_get_displayid()
- di_edid_ext_get_tag()
- enum di_edid_ext_tag
- di_edid_get_basic_gamma()
- di_edid_get_chromaticity_coords()
- di_edid_get_color_encoding_formats()
- di_edid_get_detailed_timing_defs()
- di_edid_get_display_color_type()
- di_edid_get_display_descriptors()
- di_edid_get_dpms()
- di_edid_get_established_timings_i_ii()
- di_edid_get_extensions()
- di_edid_get_misc_features()
- di_edid_get_revision()
- di_edid_get_screen_size()
- di_edid_get_standard_timings()
- di_edid_get_vendor_product()
- di_edid_get_version()
- di_edid_get_video_input_analog()
- di_edid_get_video_input_digital()
- struct di_edid_misc_features
- struct di_edid_screen_size
- struct di_edid_standard_timing
- enum di_edid_standard_timing_aspect_ratio
- di_edid_standard_timing_get_dmt()
- di_edid_standard_timing_get_vert_video()
- struct di_edid_vendor_product
- struct di_edid_video_input_analog
- enum di_edid_video_input_analog_signal_level_std
- enum di_edid_video_input_analog_video_setup
- struct di_edid_video_input_digital
- enum di_edid_video_input_digital_interface
struct di_edid ¶
struct di_edid;
EDID data structure.
struct di_edid_chromaticity_coords ¶
struct di_edid_chromaticity_coords { float red_x, red_y; float green_x, green_y; float blue_x, blue_y; float white_x, white_y; };
EDID display chromaticity coordinates, defined in section 3.7.
The values are accurate to the thousandth place. The red, green and blue values are zero for monochrome displays.
struct di_edid_color_encoding_formats ¶
struct di_edid_color_encoding_formats { bool rgb444; /* RGB 4:4:4 */ bool ycrcb444; /* YCrCb 4:4:4 */ bool ycrcb422; /* YCrCb 4:2:2 */ };
Basic color encoding formats, defined in section 3.6.4.
struct di_edid_color_management_data ¶
struct di_edid_color_management_data { int version; /* red polynomial coefficient a3 */ float red_a3; /* red polynomial coefficient a2 */ float red_a2; /* green polynomial coefficient a3 */ float green_a3; /* green polynomial coefficient a2 */ float green_a2; /* blue polynomial coefficient a3 */ float blue_a3; /* blue polynomial coefficient a2 */ float blue_a2; };
EDID display Color Management Data, defined in section 3.10.3.7
Contains the coefficients for the function `L = a₃ × v³ + a₂ × v²` describing the luminance response L to some voltage v [0, 0.7] for each color channel.
For more information see VESA DCM Standard, Version 1; January 6, 2003
struct di_edid_color_point ¶
struct di_edid_color_point { /* White point index number */ int index; /* The white chromaticity values, accurate to the thousandth place */ float white_x, white_y; /* Gamma, zero if unset (ie, stored in an extension block) */ float gamma; };
EDID Color Points, defined in section 3.10.3.5.
enum di_edid_cvt_aspect_ratio ¶
enum di_edid_cvt_aspect_ratio { DI_EDID_CVT_ASPECT_RATIO_4_3, DI_EDID_CVT_ASPECT_RATIO_16_9, DI_EDID_CVT_ASPECT_RATIO_16_10, DI_EDID_CVT_ASPECT_RATIO_5_4, DI_EDID_CVT_ASPECT_RATIO_15_9, };
enum di_edid_cvt_scaling ¶
enum di_edid_cvt_scaling { DI_EDID_CVT_SCALING_HORIZ_SHRINK, DI_EDID_CVT_SCALING_HORIZ_STRETCH, DI_EDID_CVT_SCALING_VERT_SHRINK, DI_EDID_CVT_SCALING_VERT_STRETCH, };
struct di_edid_cvt_timing_code ¶
struct di_edid_cvt_timing_code { int32_t addressable_lines_per_field; enum di_edid_cvt_timing_code_aspect_ratio aspect_ratio; bool supports_50hz_sb; bool supports_60hz_sb; bool supports_75hz_sb; bool supports_85hz_sb; bool supports_60hz_rb; enum di_edid_cvt_timing_code_preferred_vrate preferred_vertical_rate; };
EDID CVT Timing Code, defined in section 3.10.3.8
For more information see VESA Coordinated Video Timings (CVT) Standard.
enum di_edid_cvt_timing_code_aspect_ratio ¶
enum di_edid_cvt_timing_code_aspect_ratio { DI_EDID_CVT_TIMING_CODE_4_3, /* 4:3 */ DI_EDID_CVT_TIMING_CODE_16_9, /* 16:9 */ DI_EDID_CVT_TIMING_CODE_16_10, /* 16:10 */ DI_EDID_CVT_TIMING_CODE_15_9, /* 15:9 */ };
Aspect ratio for an EDID CVT Timing Code.
enum di_edid_cvt_timing_code_preferred_vrate ¶
enum di_edid_cvt_timing_code_preferred_vrate { DI_EDID_CVT_TIMING_CODE_PREFERRED_VRATE_50HZ, /* 50 Hz */ DI_EDID_CVT_TIMING_CODE_PREFERRED_VRATE_60HZ, /* 60 Hz */ DI_EDID_CVT_TIMING_CODE_PREFERRED_VRATE_75HZ, /* 75 Hz */ DI_EDID_CVT_TIMING_CODE_PREFERRED_VRATE_85HZ, /* 85 Hz */ };
Preferred Vertical Rate for an EDID CVT Timing Code.
struct di_edid_detailed_timing_analog_composite ¶
struct di_edid_detailed_timing_analog_composite { /* Sync with serrations (H-sync during V-sync) */ bool sync_serrations; /* Sync on green signal only (as opposed to all three * RGB video signals) */ bool sync_on_green; };
Flags for ANALOG_COMPOSITE signals
struct di_edid_detailed_timing_bipolar_analog_composite ¶
struct di_edid_detailed_timing_bipolar_analog_composite { /* Sync with serrations (H-sync during V-sync) */ bool sync_serrations; /* Sync on green signal only (as opposed to all three * RGB video signals) */ bool sync_on_green; };
Flags for BIPOLAR_ANALOG_COMPOSITE signals
struct di_edid_detailed_timing_def ¶
struct di_edid_detailed_timing_def { /* Pixel clock */ int32_t pixel_clock_hz; /* Horizontal/Vertical Addressable Video in pixels/lines */ int32_t horiz_video, vert_video; /* Horizontal/Vertical Blanking in pixels/lines */ int32_t horiz_blank, vert_blank; /* Horizontal/Vertical Front Porch in pixels/lines */ int32_t horiz_front_porch, vert_front_porch; /* Horizontal/Vertical Sync Pulse Width in pixels/lines */ int32_t horiz_sync_pulse, vert_sync_pulse; /* Horizontal/Vertical Addressable Video Image Size in mm, zero if unset */ int32_t horiz_image_mm, vert_image_mm; /* Horizontal/Vertical Border in pixels/lines */ int32_t horiz_border, vert_border; /* Interlaced signal */ bool interlaced; /* Stereo Viewing Support */ enum di_edid_detailed_timing_def_stereo stereo; /* Signal type */ enum di_edid_detailed_timing_def_signal_type signal_type; /* Flags for ANALOG_COMPOSITE signals, NULL otherwise */ const struct di_edid_detailed_timing_analog_composite *analog_composite; /* Flags for BIPOLAR_ANALOG_COMPOSITE signals, NULL otherwise */ const struct di_edid_detailed_timing_bipolar_analog_composite *bipolar_analog_composite; /* Flags for DIGITAL_COMPOSITE signals, NULL otherwise */ const struct di_edid_detailed_timing_digital_composite *digital_composite; /* Flags for DIGITAL_SEPARATE signals, NULL otherwise */ const struct di_edid_detailed_timing_digital_separate *digital_separate; };
EDID detailed timing definition, defined in section 3.10.2.
enum di_edid_detailed_timing_def_signal_type ¶
enum di_edid_detailed_timing_def_signal_type { /* Analog composite */ DI_EDID_DETAILED_TIMING_DEF_SIGNAL_ANALOG_COMPOSITE, /* Bipolar analog composite */ DI_EDID_DETAILED_TIMING_DEF_SIGNAL_BIPOLAR_ANALOG_COMPOSITE, /* Digital composite */ DI_EDID_DETAILED_TIMING_DEF_SIGNAL_DIGITAL_COMPOSITE, /* Digital separate */ DI_EDID_DETAILED_TIMING_DEF_SIGNAL_DIGITAL_SEPARATE, };
Signal definitions for EDID detailed timings, defined in notes for table 3.22.
enum di_edid_detailed_timing_def_stereo ¶
enum di_edid_detailed_timing_def_stereo { /* Normal Display – No Stereo */ DI_EDID_DETAILED_TIMING_DEF_STEREO_NONE, /* Field sequential stereo, right image when stereo sync signal = 1 */ DI_EDID_DETAILED_TIMING_DEF_STEREO_FIELD_SEQ_RIGHT, /* Field sequential stereo, left image when stereo sync signal = 1 */ DI_EDID_DETAILED_TIMING_DEF_STEREO_FIELD_SEQ_LEFT, /* 2-way interleaved stereo, right image on even lines */ DI_EDID_DETAILED_TIMING_DEF_STEREO_2_WAY_INTERLEAVED_RIGHT, /* 2-way interleaved stereo, left image on even lines */ DI_EDID_DETAILED_TIMING_DEF_STEREO_2_WAY_INTERLEAVED_LEFT, /* 4-way interleaved stereo */ DI_EDID_DETAILED_TIMING_DEF_STEREO_4_WAY_INTERLEAVED, /* Side-by-Side interleaved stereo */ DI_EDID_DETAILED_TIMING_DEF_STEREO_SIDE_BY_SIDE_INTERLEAVED, };
Stereo viewing support.
enum di_edid_detailed_timing_def_sync_polarity ¶
enum di_edid_detailed_timing_def_sync_polarity { DI_EDID_DETAILED_TIMING_DEF_SYNC_NEGATIVE, DI_EDID_DETAILED_TIMING_DEF_SYNC_POSITIVE, };
Digital separate sync polarity for EDID detailed timings.
struct di_edid_detailed_timing_digital_composite ¶
struct di_edid_detailed_timing_digital_composite { /* Sync with serrations (H-sync during V-sync) */ bool sync_serrations; /* Horizontal polarity (outside of V-sync) */ enum di_edid_detailed_timing_def_sync_polarity sync_horiz_polarity; };
Flags for DIGITAL_COMPOSITE signals
struct di_edid_detailed_timing_digital_separate ¶
struct di_edid_detailed_timing_digital_separate { /* Vertical polarity */ enum di_edid_detailed_timing_def_sync_polarity sync_vert_polarity; /* Horizontal polarity (outside of V-sync) */ enum di_edid_detailed_timing_def_sync_polarity sync_horiz_polarity; };
Flags for DIGITAL_SEPARATE signals
enum di_edid_display_color_type ¶
enum di_edid_display_color_type { /* Monochrome or grayscale display */ DI_EDID_DISPLAY_COLOR_MONOCHROME, /* RGB color display */ DI_EDID_DISPLAY_COLOR_RGB, /* Non-RGB color display */ DI_EDID_DISPLAY_COLOR_NON_RGB, /* Undefined */ DI_EDID_DISPLAY_COLOR_UNDEFINED, };
Display color type.
struct di_edid_display_descriptor ¶
struct di_edid_display_descriptor;
EDID display descriptor.
di_edid_display_descriptor_get_color_management_data() ¶
const struct di_edid_color_management_data *di_edid_display_descriptor_get_color_management_data(const struct di_edid_display_descriptor *desc);
Get the contents of a Display Color Management (DCM) Data descriptor.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_DCM_DATA.
Upstream is not aware of any EDID blob containing DCM Data descriptors. If such a blob is found, please share it with upstream!
di_edid_display_descriptor_get_color_points() ¶
const struct di_edid_color_point **di_edid_display_descriptor_get_color_points(const struct di_edid_display_descriptor *desc);
Get a color point list from an EDID display descriptor.
The returned array is NULL-terminated.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_COLOR_POINT.
Upstream is not aware of any EDID blob containing Color Point Descriptors. If such a blob is found, please share it with upstream!
di_edid_display_descriptor_get_cvt_timing_codes() ¶
const struct di_edid_cvt_timing_code **di_edid_display_descriptor_get_cvt_timing_codes(const struct di_edid_display_descriptor *desc);
Get a list of CVT timing codes from an EDID display descriptor. The highest priority code comes first, the lowest priority code last.
The returned array is NULL-terminated.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_CVT_TIMING_CODES.
di_edid_display_descriptor_get_established_timings_iii() ¶
const struct di_dmt_timing **di_edid_display_descriptor_get_established_timings_iii(const struct di_edid_display_descriptor *desc);
Get a list of established timings III from an EDID display descriptor.
The returned array is NULL-terminated.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_ESTABLISHED_TIMINGS_III.
di_edid_display_descriptor_get_range_limits() ¶
const struct di_edid_display_range_limits *di_edid_display_descriptor_get_range_limits(const struct di_edid_display_descriptor *desc);
Get the contents of a display range limits descriptor.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_RANGE_LIMITS.
di_edid_display_descriptor_get_standard_timings() ¶
const struct di_edid_standard_timing **di_edid_display_descriptor_get_standard_timings(const struct di_edid_display_descriptor *desc);
Get a standard timing list from an EDID display descriptor.
The returned array is NULL-terminated.
Returns NULL if the display descriptor tag isn't DI_EDID_DISPLAY_DESCRIPTOR_STD_TIMING_IDS.
di_edid_display_descriptor_get_string() ¶
const char *di_edid_display_descriptor_get_string(const struct di_edid_display_descriptor *desc);
Get the contents of a product serial number, a data string, or a product name display descriptor.
Returns NULL if the display descriptor tag isn't either DI_EDID_DISPLAY_DESCRIPTOR_PRODUCT_SERIAL_NUMBER, DI_EDID_DISPLAY_DESCRIPTOR_DATA_STRING or DI_EDID_DISPLAY_DESCRIPTOR_PRODUCT_NAME.
di_edid_display_descriptor_get_tag() ¶
enum di_edid_display_descriptor_tag di_edid_display_descriptor_get_tag(const struct di_edid_display_descriptor *desc);
Get the tag of an EDID display descriptor.
enum di_edid_display_descriptor_tag ¶
enum di_edid_display_descriptor_tag { /* Display Product Serial Number */ DI_EDID_DISPLAY_DESCRIPTOR_PRODUCT_SERIAL, /* Alphanumeric Data String (ASCII) */ DI_EDID_DISPLAY_DESCRIPTOR_DATA_STRING, /* Display Range Limits */ DI_EDID_DISPLAY_DESCRIPTOR_RANGE_LIMITS, /* Display Product Name */ DI_EDID_DISPLAY_DESCRIPTOR_PRODUCT_NAME, /* Color Point Data */ DI_EDID_DISPLAY_DESCRIPTOR_COLOR_POINT, /* Standard Timing Identifications */ DI_EDID_DISPLAY_DESCRIPTOR_STD_TIMING_IDS, /* Display Color Management (DCM) Data */ DI_EDID_DISPLAY_DESCRIPTOR_DCM_DATA, /* CVT 3 Byte Timing Codes */ DI_EDID_DISPLAY_DESCRIPTOR_CVT_TIMING_CODES, /* Established Timings III */ DI_EDID_DISPLAY_DESCRIPTOR_ESTABLISHED_TIMINGS_III, /* Dummy Descriptor */ DI_EDID_DISPLAY_DESCRIPTOR_DUMMY, };
EDID display descriptor tag, defined in section 3.10.3.
struct di_edid_display_range_limits ¶
struct di_edid_display_range_limits { /* Vertical rate limits in Hz, from 1 Hz to 510 Hz */ int32_t min_vert_rate_hz, max_vert_rate_hz; /* Horizontal rate limits in Hz, from 1 KHz to 510 KHz, rounded to the * nearest multiple of 1 KHz */ int32_t min_horiz_rate_hz, max_horiz_rate_hz; /* Maximum pixel clock in Hz, zero if unset, rounded to the nearest * multiple of 0.25 MHz if CVT, otherwise to the nearest multiple of * 10 MHz */ int64_t max_pixel_clock_hz; enum di_edid_display_range_limits_type type; /* For SECONDARY_GTF limits, NULL otherwise */ const struct di_edid_display_range_limits_secondary_gtf *secondary_gtf; /* For CVT limits, NULL otherwise */ const struct di_edid_display_range_limits_cvt *cvt; };
EDID display range limits, defined in section 3.10.3.3.1.
struct di_edid_display_range_limits_cvt ¶
struct di_edid_display_range_limits_cvt { int32_t version, revision; /* Maximum active pixels per line, zero for no limit */ int32_t max_horiz_px; /* Supported aspect ratio, bitfield of enum di_edid_cvt_aspect_ratio */ uint32_t supported_aspect_ratio; /* Preferred aspect ratio */ enum di_edid_cvt_aspect_ratio preferred_aspect_ratio; /* Whether standard CVT blanking is supported */ bool standard_blanking; /* Whether reduced CVT blanking is supported */ bool reduced_blanking; /* Supported types of display scaling, bitfield of * enum di_edid_cvt_scaling */ uint32_t supported_scaling; /* Preferred vertical refresh rate, in Hz */ int32_t preferred_vert_refresh_hz; };
struct di_edid_display_range_limits_secondary_gtf ¶
struct di_edid_display_range_limits_secondary_gtf { /* Start break frequency in Hz */ int start_freq_hz; /* C, M, K, J parameters */ float c, m, k, j; };
enum di_edid_display_range_limits_type ¶
enum di_edid_display_range_limits_type { /* Range Limits Only - no additional timing information is provided */ DI_EDID_DISPLAY_RANGE_LIMITS_BARE, /* Default GTF supported */ DI_EDID_DISPLAY_RANGE_LIMITS_DEFAULT_GTF, /* Secondary GTF supported */ DI_EDID_DISPLAY_RANGE_LIMITS_SECONDARY_GTF, /* CVT supported */ DI_EDID_DISPLAY_RANGE_LIMITS_CVT, };
EDID display range limits type.
The values do not match the EDID specification.
The CVT entry was introduced in EDID 1.4.
struct di_edid_dpms ¶
struct di_edid_dpms { bool standby; bool suspend; bool off; };
Supported legacy Display Power Management Signaling (DPMS) states, defined in section 3.6.4.
Display Power Management (DPM) compliant displays only support "off".
struct di_edid_established_timings_i_ii ¶
struct di_edid_established_timings_i_ii { /* Established timings I */ bool has_720x400_70hz; /* 720 x 400 @ 70Hz (IBM, VGA) */ bool has_720x400_88hz; /* 720 x 400 @ 88Hz (IBM, XGA2) */ bool has_640x480_60hz; /* 640 x 480 @ 60Hz (IBM, VGA) */ bool has_640x480_67hz; /* 640 x 480 @ 67Hz (Apple, Mac II) */ bool has_640x480_72hz; /* 640 x 480 @ 72Hz (VESA) */ bool has_640x480_75hz; /* 640 x 480 @ 75Hz (VESA) */ bool has_800x600_56hz; /* 800 x 600 @ 56Hz (VESA) */ bool has_800x600_60hz; /* 800 x 600 @ 60Hz (VESA) */ /* Established timings II */ bool has_800x600_72hz; /* 800 x 600 @ 72Hz (VESA) */ bool has_800x600_75hz; /* 800 x 600 @ 75Hz (VESA) */ bool has_832x624_75hz; /* 832 x 624 @ 75Hz (Apple, Mac II) */ bool has_1024x768_87hz_interlaced; /* 1024 x 768 @ 87Hz interlaced (IBM) */ bool has_1024x768_60hz; /* 1024 x 768 @ 60Hz (VESA) */ bool has_1024x768_70hz; /* 1024 x 768 @ 70Hz (VESA) */ bool has_1024x768_75hz; /* 1024 x 768 @ 75Hz (VESA) */ bool has_1280x1024_75hz; /* 1280 x 1024 @ 75Hz (VESA) */ bool has_1152x870_75hz; /* 1152 x 870 @ 75Hz (Apple, Mac II) */ };
Established timings I and II, defined in section 3.8.
struct di_edid_ext ¶
struct di_edid_ext;
EDID extension block.
di_edid_ext_get_cta() ¶
const struct di_edid_cta *di_edid_ext_get_cta(const struct di_edid_ext *ext);
Get a CTA-861 extension block.
Returns NULL if the extension block tag is not DI_EDID_EXT_CEA.
di_edid_ext_get_displayid() ¶
const struct di_displayid *di_edid_ext_get_displayid(const struct di_edid_ext *ext);
Get a DisplayID extension block.
Returns NULL if the extension block tag is not DI_EDID_EXT_DISPLAYID.
di_edid_ext_get_tag() ¶
enum di_edid_ext_tag di_edid_ext_get_tag(const struct di_edid_ext *ext);
Get the tag of an EDID extension block.
enum di_edid_ext_tag ¶
enum di_edid_ext_tag { /* CEA 861 Series Extension */ DI_EDID_EXT_CEA, /* Video Timing Block Extension */ DI_EDID_EXT_VTB, /* Display Information Extension */ DI_EDID_EXT_DI, /* Localized String Extension */ DI_EDID_EXT_LS, /* Digital Packet Video Link Extension */ DI_EDID_EXT_DPVL, /* Extension Block Map */ DI_EDID_EXT_BLOCK_MAP, /* Extension defined by the display manufacturer */ DI_EDID_EXT_VENDOR, /* DisplayID Extension */ DI_EDID_EXT_DISPLAYID, };
EDID extension block tags, defined in section 2.2.4.
di_edid_get_basic_gamma() ¶
float di_edid_get_basic_gamma(const struct di_edid *edid);
Get the display transfer characteristics from the basic EDID parameters, also known as "gamma".
Returns 0 if unset (ie, stored in an extension block).
di_edid_get_chromaticity_coords() ¶
const struct di_edid_chromaticity_coords *di_edid_get_chromaticity_coords(const struct di_edid *edid);
Get chromaticity coordinates.
di_edid_get_color_encoding_formats() ¶
const struct di_edid_color_encoding_formats *di_edid_get_color_encoding_formats(const struct di_edid *edid);
Get the set of supported color encoding formats.
Returns NULL if the display is analog or if the color encoding formats are not specified.
di_edid_get_detailed_timing_defs() ¶
const struct di_edid_detailed_timing_def **di_edid_get_detailed_timing_defs(const struct di_edid *edid);
Get a list of EDID detailed timing definitions.
The returned array is NULL-terminated.
di_edid_get_display_color_type() ¶
enum di_edid_display_color_type di_edid_get_display_color_type(const struct di_edid *edid);
Get the display color type.
For digital displays using EDID 1.4 and later, DI_EDID_DISPLAY_COLOR_UNDEFINED is always returned.
di_edid_get_display_descriptors() ¶
const struct di_edid_display_descriptor **di_edid_get_display_descriptors(const struct di_edid *edid);
Get a list of EDID display descriptors.
The returned array is NULL-terminated.
di_edid_get_dpms() ¶
const struct di_edid_dpms *di_edid_get_dpms(const struct di_edid *edid);
Get the set of supported legacy DPMS states.
di_edid_get_established_timings_i_ii() ¶
const struct di_edid_established_timings_i_ii *di_edid_get_established_timings_i_ii(const struct di_edid *edid);
Get established timings I and II.
di_edid_get_extensions() ¶
const struct di_edid_ext **di_edid_get_extensions(const struct di_edid *edid);
Get a list of EDID extensions.
The returned array is NULL-terminated.
di_edid_get_misc_features() ¶
const struct di_edid_misc_features *di_edid_get_misc_features(const struct di_edid *edid);
Get the set of miscellaneous basic features.
di_edid_get_revision() ¶
int di_edid_get_revision(const struct di_edid *edid);
Get the EDID revision.
di_edid_get_screen_size() ¶
const struct di_edid_screen_size *di_edid_get_screen_size(const struct di_edid *edid);
Get the screen size.
di_edid_get_standard_timings() ¶
const struct di_edid_standard_timing **di_edid_get_standard_timings(const struct di_edid *edid);
Get a list of EDID standard timings.
The returned array is NULL-terminated.
di_edid_get_vendor_product() ¶
const struct di_edid_vendor_product *di_edid_get_vendor_product(const struct di_edid *edid);
di_edid_get_version() ¶
int di_edid_get_version(const struct di_edid *edid);
Get the EDID version.
di_edid_get_video_input_analog() ¶
const struct di_edid_video_input_analog *di_edid_get_video_input_analog(const struct di_edid *edid);
Get the analog video input basic information.
Returns NULL if this isn't an analog display.
di_edid_get_video_input_digital() ¶
const struct di_edid_video_input_digital *di_edid_get_video_input_digital(const struct di_edid *edid);
Get the digital video input basic information.
Returns NULL if this isn't a digital display.
struct di_edid_misc_features ¶
struct di_edid_misc_features { /** * First detailed timing is the preferred timing. * * Always set for EDID 1.4 and later. */ bool has_preferred_timing; /** * GTF using the default parameters is supported. * * Never set for EDID 1.4 and later. */ bool default_gtf; /** * sRGB standard default color space is primary color space. */ bool srgb_is_primary; /** * Preferred timing mode includes native pixel format and rate. * * Never set for EDID 1.3 and earlier. */ bool preferred_timing_is_native; /** * GTF or CVT generated timings within the display's range limits are * accepted. * * Never set for EDID 1.3 and earlier. */ bool continuous_freq; };
Miscellaneous basic features, defined in section 3.6.4.
Note, the enum values don't match the specification.
struct di_edid_screen_size ¶
struct di_edid_screen_size { /* Physical size in centimeters, zero if unset */ int width_cm, height_cm; /* Aspect ratio rounded to the hundredth decimal place, zero if unset. */ float landscape_aspect_ratio, portait_aspect_ratio; };
struct di_edid_standard_timing ¶
struct di_edid_standard_timing { /* Horizontal addressable pixels */ int32_t horiz_video; /* Aspect ratio */ enum di_edid_standard_timing_aspect_ratio aspect_ratio; /* Field Refresh Rate in Hz */ int32_t refresh_rate_hz; };
EDID standard timing, defined in section 3.9.
enum di_edid_standard_timing_aspect_ratio ¶
enum di_edid_standard_timing_aspect_ratio { DI_EDID_STANDARD_TIMING_16_10, /* 16:10 */ DI_EDID_STANDARD_TIMING_4_3, /* 4:3 */ DI_EDID_STANDARD_TIMING_5_4, /* 5:4 */ DI_EDID_STANDARD_TIMING_16_9, /* 16:9 */ };
Aspect ratio for an EDID standard timing.
di_edid_standard_timing_get_dmt() ¶
const struct di_dmt_timing *di_edid_standard_timing_get_dmt(const struct di_edid_standard_timing *t);
Get the VESA Display Monitor Timing (DMT), if any.
NULL is returned if the standard timing doesn't have a DMT.
di_edid_standard_timing_get_vert_video() ¶
int32_t di_edid_standard_timing_get_vert_video(const struct di_edid_standard_timing *t);
Get the vertical addressable line count of an EDID standard timing.
struct di_edid_vendor_product ¶
struct di_edid_vendor_product { char manufacturer[]; uint16_t product; uint32_t serial; /* zero if unset */ /* These fields are zero if unset */ int manufacture_week; int manufacture_year; int model_year; };
EDID vendor & product identification.
struct di_edid_video_input_analog ¶
struct di_edid_video_input_analog { enum di_edid_video_input_analog_signal_level_std signal_level_std; enum di_edid_video_input_analog_video_setup video_setup; /* Separate Sync H & V Signals are supported */ bool sync_separate; /* Composite Sync Signal on Horizontal is supported */ bool sync_composite; /* Composite Sync Signal on Green Video is supported */ bool sync_on_green; /* Serration on the Vertical Sync is supported */ bool sync_serrations; };
EDID analog video input basic information, defined in section 3.6.1.
enum di_edid_video_input_analog_signal_level_std ¶
enum di_edid_video_input_analog_signal_level_std { /* 0.700 : 0.300 : 1.000 V p-p */ DI_EDID_VIDEO_INPUT_ANALOG_SIGNAL_LEVEL_0, /* 0.714 : 0.286 : 1.000 V p-p */ DI_EDID_VIDEO_INPUT_ANALOG_SIGNAL_LEVEL_1, /* 1.000 : 0.400 : 1.400 V p-p */ DI_EDID_VIDEO_INPUT_ANALOG_SIGNAL_LEVEL_2, /* 0.700 : 0.000 : 0.700 V p-p */ DI_EDID_VIDEO_INPUT_ANALOG_SIGNAL_LEVEL_3, };
EDID analog signal level standard.
enum di_edid_video_input_analog_video_setup ¶
enum di_edid_video_input_analog_video_setup { /* Blank level equals black level */ DI_EDID_VIDEO_INPUT_ANALOG_BLANK_LEVEL_EQ_BLACK, /* Blank-to-black setup or pedestal */ DI_EDID_VIDEO_INPUT_ANALOG_BLANK_TO_BLACK_SETUP_PEDESTAL, };
EDID analog video setup.
struct di_edid_video_input_digital ¶
struct di_edid_video_input_digital { /* EDID 1.2 and 1.3 */ bool dfp1; /* Compatible with VESA DFP 1.x TDMS CRGB */ /* EDID 1.4 and later */ int color_bit_depth; /* zero if undefined */ enum di_edid_video_input_digital_interface interface; };
EDID digital video input basic information, defined in section 3.6.1.
enum di_edid_video_input_digital_interface ¶
enum di_edid_video_input_digital_interface { DI_EDID_VIDEO_INPUT_DIGITAL_UNDEFINED, DI_EDID_VIDEO_INPUT_DIGITAL_DVI, DI_EDID_VIDEO_INPUT_DIGITAL_HDMI_A, DI_EDID_VIDEO_INPUT_DIGITAL_HDMI_B, DI_EDID_VIDEO_INPUT_DIGITAL_MDDI, DI_EDID_VIDEO_INPUT_DIGITAL_DISPLAYPORT, };
Digital video input interface standard.