Skip to content

mripard/redid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EDID Generation Crate

This crate is aimed at providing a typesafe abstraction to generate EDIDs.

TODO

General Features

  • 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

Specific Features

  • 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)
      • 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

Type Safety

  • 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
      • 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
    • 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
      • 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
      • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published