This crate is aimed at providing a typesafe abstraction to generate EDIDs.
- Edid 1.0 Support
- Edid 1.1 Support
- Edid 1.2 Support
- Edid 1.3 Support
- Color Point Descriptor
- Standard Timing Descriptor
- Edid 1.4 Support
- Color Point Descriptor
- Standard Timing Descriptor
- Color Management Descriptor
- CVT 3 byte Timing Codes
- Extensions
- Video Timing Block Extension (VTB-EXT)
- Display Information Extension (DI-EXT)
- Localized String Extension (LS-EXT)
- Digital Packet Video Link Extension (DPVL-EXT)
- CEA-861 Series Timing Extensions
- Audio Data Block
- LPCM
- AC-3
- MPEG-1
- MP3
- MPEG-2
- AAC LC
- DTS
- ATRAC
- One Bit Audio
- Enhanced AC-3
- DTS-HD
- MAT
- DST
- WMA Pro
- Extension Types
- MPEG-4 HE AAC
- MPEG-4 HE AAC v2
- MPEG-4 AAC LC
- DRA
- MPEG-4 HE AAC + MPEG Surround
- MPEG-4 AAC LC + MPEG Surround
- MPEG-H 3D Audio
- AC-4
- L-PCM 3D Audio
- Video Data Block
- Vendor Specific Data Block
- HDMI Vendor Specific Data Block (HDMI VSDB)
- Physical Address
- DVI Dual
- Deep Color
- ACP & ISRC
- Max TMDS Clock
- Content Type
- Latency
- VICs
- Image Size
- 3D
- HDMI Forum Vendor Specific Data Block (HF-VSDB)
- HDMI Vendor Specific Data Block (HDMI VSDB)
- Speaker Allocation Data Block
- VESA Display Transfer Characteristics Data Block
- Extended Data Blocks
- Video Capability Data Block
- Vendor-Specific Video Data Block
- VESA Display Device Data Block
- VESA Video Timing Block Extension
- Colorimetry Data Block
- HDR Static Metadata Data Block
- HDR Dynamic Metadata Data Block
- Video Format Preference Data Block
- YCbCr 4:2:0 Video Data Block
- YCbCr 4:2:0 Capability Map Data Block
- Vendor-Specific Audio Data Block
- Room Configuration Data Block
- Speaker Location Data Block
- InfoFrame Data Block
- Audio Data Block
-
Main Block
-
Manufacturer Name
- Mandatory
- 3 Characters
- ASCII Only
- Upper Case Only
-
Product Code
- Mandatory
- 2 bytes
-
Serial Number
- 4 bytes
-
Date
- Mandatory
- Year is higher than or equal to 1990
- EDID 1.3
- Week is between 1 and 53
- EDID 1.4
- Week is between 1 and 54
-
Basic Display Parameters and Features
- Mandatory
- Video Input Definition
- Mandatory
- Analog
- Serrations on the vsync pulse are required when composite sync or sync on green
- Analog
- Mandatory
- Display Size
- Mandatory
- 0x00, 0x00 is allowed for undefined size
- Gamma
- Mandatory
- Feature Support
- Mandatory
- Bits 3 and 4 must be consistent with bit 7 at 0x14
- SRGB
- If set, the color information in the Chromaticity Coordinates must match
- Signaled, but the Gamma isn't set to 2.2
- Not signaled, but the Chromaticities match SRGB
- EDID 1.4
- Suspend is deprecated
- Standby is deprecated
- Preferred Timing
- EDID 1.3
- Required
- EDID 1.3
-
Display XY Chromaticity Coordinates
- Mandatory
- Needs to be consistent with the Display Color Type in the display parameters
-
Established Timings
- Required if Plug & Play (by assuming the device is Plug & Play)
- 640x480@60Hz is required if Plug & Play (by assuming the device is Plug & Play)
-
Standard Timings
- Horizontal Addressable Pixels is between 256 and 2288, in increment of 8 pixels
- Field Refresh Rate is between 60 and 123Hz
- Unused Timings mut be set to 0x01, 0x01
-
Descriptors
- Detailed Descriptors must be first and is preferred mode
- EDID 1.3
- Display Product Name is required
- Display Range Limits is required
- EDID 1.4
- Display Range Limits is required if continuous frequency, recommended otherwise
- Display Product Name is recommended
- Detailed Timings
- Display Size is set (in the base block), but Image size isn't
- Display Size is smaller than the image size
- Image Size is set but the Display Size isn't
- Frequency is between 10 and 655,350kHz
- Horizontal Addressable, Blanking, Vertical Addressable and Blanking are between 0 and 4095 pixels
- HFP and Hsync are between 0 and 1023 pixels
- VFP, Vsync are between 0 and 63 lines
- Hsync / vsync are between 0 and 4095 mm
- Right / Left and Top / Bottom Borders are between 0 and 255 pixels / lines
- Can be set to 0 if undefined
- Display Range Limits
- GTF
- Minimum Horizontal Rate is higher that Maximum Horizontal Rate
- Minimum Vertical Rate is higher than Maximum Vertical Rate
- Default GTF
- Byte 11 is set to 0x0a
- Bytes 12-17 are set to 0x20
- Secondary GTF
- Byte 11 is set to 0x00
- Start Frequency is less than the highest P/N Frequency
- EDID 1.4
- Vertical Rates between 1 and 510 Hz
- Horizontal Rates between 1 and 510kHz
- GTF is deprecated in favor of CVT
- Video Timing Support
- Descriptor required if bit 0 in 0x18 is set
- Default GTF bit can be set only if bit 0 in 0x18 is set
- Secondary GTF bit can be set only if bit 0 in 0x18 is set
- CVT Supported bit can be set only if bit 0 in 0x18 is set
- Range Limits Only can only bet set for EDID 1.4
- CVT Supported can only bet set for EDID 1.4
- GTF
- Strings
- Is not empty
- Up to 13 chars
- ASCII Only
- End with 0x0a
- Padded with 0x20
- Types
- Product Name Descriptor
- Product Serial Descriptor
- Alphanumeric Data String Descriptor
-
-
Extensions
- CTA 861 Extension
- Main Block
- YCbCr 4:4:4 and YCbCr 4:2:2 always need to be set together
- Data Blocks
- Video Data Block
- Native-capable VICs are between 1 and 64
- Other VICs are between 65 and 127 and between 193 and 255
- Audio Data Block
- Audio Format Code 1 has depth as third byte
- Audio Format Codes 2 to 8 has maximum bit rate as third byte
- Audio Format Codes 9 to 13 has a format dependant payload
- Audio Format Code 14 has a profile as third byte payload
- Extended Audio Type code is between 4 and 6 and between 8 and 10
- Extended Audio Code from 4 to 6 has 2 frame lengths as third byte payload
- Extended Audio Code from 8 to 10 has 3 frame lengths as third byte payload
- Extended Audio Code 11 has a format dependent value as third byte payload
- Extended Audio Code 12 has a format dependent value as third byte payload
- Extended Audio Code 13 has a bit depth as third byte payload
- Video Data Block
- HDMI Vendor Specific Data Block (HDMI VSDB)
- Physical Address has 4 bits per component
- Max TMDS Clock is optional, and if set must be above 165MHz
- If Latency bit is set, then video and audio latencies must be set
- If Interleaved Latency bit is set, then interlaced video and audio latencies must be set
- If Video bit is set, then Flags, VICs and 3D LEN must be set
- Video Latency is either unknown, unsupported or between 0 and 500
- Audio Latency is either unknown, unsupported or between 0 and 500
- If 3D bit is set, some 2D modes are required, see section 8.3.2
- Main Block
- CTA 861 Extension