Provided by: edid-decode_0.1~git20220315.cb74358c2896-1_amd64 bug

NAME

       edid-decode - Decode EDID data in human-readable format

SYNOPSIS

       edid-decode <options> [in [out]]

DESCRIPTION

       edid-decode  decodes  EDID  monitor description data in human-readable format.  If [in] is
       not given, or [in] is '-', then the EDID will be read from standard  input.  If  [out]  is
       given  then  the EDID that was read from [in] is written to [out] or to standard output if
       [out] is '-'. By default the output is written as a hex  dump  when  writing  to  standard
       output or a raw EDID if written to a file.

       If  [out]  is  given  then edid-decode only does the conversion, it will skip the decoding
       step.

       Input files may be raw binaries or ASCII text.  ASCII input  is  scanned  for  hex  dumps;
       heuristics  are  included  to search for hexdumps in edid-decode(1) output (as long as the
       initial hex dump was included), xrandr(1) property output and Xorg(1)  log  file  formats,
       otherwise the data is treated as a raw hexdump.  EDID blocks for connected monitors can be
       found in /sys/class/drm/*/edid on modern Linux systems with kernel modesetting support.

       All timings are shown in a short format, for example:

           VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz 148.500 MHz (native)
           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz

       Each format starts with a timings type prefix,  the  resolution,  an  optional  interlaced
       indicator  ('i'),  the  frame rate (field rate for interlaced formats), the picture aspect
       ratio, the horizontal frequency, the pixelclock frequency and optionally additional  flags
       between parenthesis.

       Note  that for interlaced formats the frame height is given, not the field height. So each
       field in a 1920x1080i format has 540 lines.

       Detailed timings have another 2-3 lines of data:

           VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz 148.500 MHz (native)
                          Hfront   88 Hsync  44 Hback 148 Hpol P
                          Vfront    4 Vsync   5 Vback  36 Vpol P
           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
                          Hfront   88 Hsync  44 Hback 148 Hpol P
                          Vfront    2 Vsync   5 Vback  15 Vpol P Vfront +0.5 Odd Field
                          Vfront    2 Vsync   5 Vback  15 Vpol P Vback  +0.5 Even Field
           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz
                          Hfront   32 Hsync 168 Hback 184 Hpol P
                          Vfront   23 Vsync   5 Vback  57 Vpol N Both Fields

       These describe the horizontal and vertical front porch, sync, backporch and sync  polarity
       values.  For  interlaced formats there are two lines for the vertical information: one for
       the Odd Field (aka Field 1) and one for the Even Field (aka Field 2). The  vertical  front
       porch  of  the Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the end of the line),
       and the back porch of the Even Field is actually 15.5 (hence the 'Vback  +0.5' at the  end
       of the line).

       There  is  a  special  'VIC 39' interlaced format where both fields have the same vertical
       timings, in that case this is marked with 'Both Fields'.

       The following timing types can be shown:

              DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The number is the DMT ID  in
              hexadecimal.

              CVT: Coordinated Video Timings (formula-based, see CVT 1.2 standard)

              GTF: Generalized Timing Formula (formula-based, see GTF 1.1 standard)

              IBM: Old IBM Timings

              Apple: Old Apple Timings

              VIC #: Video Identification Code (see CTA-861 standard). The number is the actual
                     VIC code.

              HDMI  VIC  #:  HDMI-specific Video Identification Code (see HDMI 2.1 standard). The
              number
                     is the actual HDMI VIC code.

              DTD #: Detailed Timings Descriptor (see EDID standard). Also used for
                     DisplayID Video Timing Modes Types I, II, VI, VII, VIII and  X.  The  number
                     denotes that this is the Nth DTD in the Base Block and CTA Extension Blocks.

              VTDB #: 20-byte DTD or 6- or 7-byte CVT descriptor in a CTA Extension Block.
                     The  number  denotes  that  this is the Nth such timing in the CTA Extension
                     Blocks.

              RID #@#: A CTA-861.6 Video Format Descriptor with the given Resolution ID (first
                     number) at the given framerate (second number).

       By default DTDs are shown in the long format while others are  just  shown  in  the  short
       format.  With  the option --short-timings all timings are shown in short format only. With
       the option --long-timings all timings are shown in long format.

       Alternate formats for long timings can be chosen via the --xmodeline or --fbmode options.

STANDARDS

       The following EDID standards are supported by edid-decode:

              EDID 1.3: VESA Enhanced Extended Display Identication  Data  Standard,  Release  A,
              Revision 1

              EDID  1.4:  VESA  Enhanced  Extended Display Identication Data Standard, Release A,
              Revision 2

              DisplayID 1.3: VESA Display Identification Data (DisplayID) Standard, Version 1.3

              DisplayID 2.1: VESA DisplayID Standard, Version 2.1

              DI-EXT: VESA Display Information Extension Block Standard, Release A

              LS-EXT: VESA Enhanced EDID Localized String Extension Standard, Release A

              VTB-EXT: VESA Video Timing Block Extension Data Standard, Release A

              DTCDB: VESA Display Transfer Characteristics Data Block Standard, Version 1.0

              DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1

              HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b

              HDMI 2.1: High-Definition Multimedia Interface, Version 2.1

              HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1

              CTA-861-H: A DTV Profile for Uncompressed High Speed Digital Interfaces

              CTA-861.6: Improvements on Audio and Video Signaling

              SPWG Notebook Panel Specification, Version 3.5

              EPI Embedded Panel Interface, Revision 1.0

              Microsoft EDID extension for head-mounted and specialized monitors, Version 3

       The following related standards are also used by edid-decode:

              DMT 1.3: VESA and Industry Standards and Guidelines for  Computer  Display  Monitor
              Timing (DMT), Version 1.0, Rev. 13

              CVT 2.0: VESA Coordinated Video Timings (CVT) Standard, Version 2.0

              CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version 1.2

              CVT 1.2: VESA CVT v1.2 Errata E2

              GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1

OPTIONS

       -h, --help
              Prints the help message.

       -o, --output-format <fmt>
              If [out] is specified, then write the EDID in format <fmt>.

              The output format can be one of:
              hex: hex numbers in ascii text (default for stdout)
              raw: binary data (default unless writing to stdout)
              carray: c-program struct
              xml: XML data

       -c, --check
              Check  if the EDID conforms to the standards. Warnings and failures are reported at
              the end.

       -C, --check-inline
              Check if the EDID conforms to the standards. Warnings and failures are reported  as
              they happen.

       -n, --native-resolution
              Report  the  native  resolution at the end. There may be multiple native resolution
              reports depending on whether the Source only parses Block 0 (e.g. DVI  outputs)  or
              Block  0  and  the CTA-861 Extension Blocks (HDMI), or just the DisplayID Extension
              Blocks (typical for DisplayPort). If all blocks contain the same native resolution,
              then only that resolution is reported. For older displays there may be two separate
              native resolutions: progressive and interlaced.

       -p, --preferred-timings
              Report the preferred timings at the end. There may  be  multiple  preferred  timing
              reports  depending on whether the Source only parses Block 0 (e.g. DVI outputs), or
              Block 0 and the CTA-861 Extension Blocks (HDMI),  or  Block  0  and  the  DisplayID
              Extension Blocks (typical for DisplayPort).

       --diagonal <inches>
              Specify  the  diagonal of the display in inches. This will enable additional checks
              for the image size, checking if it corresponds to the diagonal. This assumes square
              pixels.

       -P, --physical-address
              Just  report  the HDMI Source Physical Address and nothing else. Reports f.f.f.f if
              the EDID could not be parsed, or if there was no CTA-861 Vendor-Specific Data Block
              with  OUI 00-0C-03. Otherwise it reports the Source Physical Address as provided in
              that Data Block. This can be used as input to HDMI CEC utilities such as the  linux
              cec-ctl(1) utility.

       -S, --short-timings
              Report all video timings in a short format.

       -L, --long-timings
              Report all video timings in a long format.

       -N, --ntsc
              Report  the  video  timings  with values suitable for NTSC-based video.  E.g., this
              will show refresh rates of 29.97 Hz instead of  30  Hz.   This  is  only  done  for
              timings with refresh rates that are a multiple of 6.

       -X, --xmodeline
              Report  all  long  video timings in the ModeLine format as defined in xorg.conf(5).
              This ModeLine can be used in the xorg.conf file or passed  to  xrandr(1)  with  the
              xrandr --newmode option.

       -F, --fbmode
              Report all long video timings in the video mode format as defined in fb.modes(5).

       -V, --v4l2-timings
              Report  all  long  video  timings  in the video mode format as defined in the linux
              header v4l2-dv-timings.h for use with the V4L2 VIDIOC_S_DV_TIMINGS ioctl.

       -s, --skip-hex-dump
              Skip the initial hex dump of the EDID.

       -H, --only-hex-dump
              Only show the hex dump of the EDID, then exit.

       --skip-sha
              Don't show the SHA hash. Normally edid-decode will show the SHA, i.e. the  hash  of
              the git commit used to compile edid-decode. This uniquely identifies the version of
              edid-decode that is used to generate the warnings and failures. But  it  will  also
              change  the  output of edid-decode for every new commit in the git repository, even
              if nothing else changed in the  edid-decode  output.   Use  this  option  to  avoid
              including the SHA in the edid-decode output.

       --hide-serial-numbers
              Replace  any  serial numbers in the human readable output by '...'.  Note that they
              are still easily extracted from the EDID hex dump at the start.

       --version
              Show the SHA hash and the last commit date.

TIMING OPTIONS

       The following options report the timings for DMT, VIC and HDMI VIC codes and calculate the
       timings  for  CVT  or  GTF  timings,  based on the given parameters.  The EDID will not be
       shown, although it can be used with the --gtf option in order to read the secondary  curve
       parameters.

       --std <byte1>,<byte2>
              Show the standard timing represented by these two bytes.

       --dmt <dmt>
              Show the timings for the DMT with the given DMT ID.

       --vic <vic>
              Show the timings for this VIC.

       --hdmi-vic <hdmivic>
              Show the timings for this HDMI VIC.

       --cvt w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,overscan]
              [,alt][,hblank=<hblank>][,vblank=<vblank>][,early-vsync]
              Calculate the CVT timings for the given format.

              <width> is the width in pixels, <height> is the frame (not field!) height in lines.
              <fps>  is  frames  per  second  for  progressive  timings and fields per second for
              interlaced timings.
              <rb> can be 0 (no reduced blanking, default),  or  1-3  for  the  reduced  blanking
              version.
              If interlaced is given, then this is an interlaced format.
              If  overscan  is  given,  then  this  is  an  overscanned format. I.e., margins are
              required.
              If alt is given and <rb>=2, then report the timings optimized  for  video:  1000  /
              1001 * <fps>.
              If  alt  is  given  and  <rb>=3,  then the horizontal blanking is 160 instead of 80
              pixels.
              If hblank is given and <rb>=3, then the  horizontal  blanking  is  <hblank>  pixels
              (range of 80-200 and divisible by 8), overriding alt.
              If  vblank  is  given  and  <rb>=3,  then  the  vertical  blanking time is <vblank>
              microseconds (460 minimum, values > 705 might not be supported by all RBv3  timings
              compliant source devices.
              If early-vsync is given and <rb>=3, then select an early vsync timing.

       --gtf w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pixclk=<pixclk>]
              [,interlaced][,overscan][,secondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
              Calculate the GTF timings for the given format.

              <width> is the width in pixels, <height> is the frame (not field!) height in lines.
              <fps>  is  frames  per  second  for  progressive  timings and fields per second for
              interlaced timings.
              <horfreq> is the horizontal frequency in kHz.
              <pixclk> is the pixel clock frequency in MHz.  Only one of fps, horfreq  or  pixclk
              must be given.
              If interlaced is given, then this is an interlaced format.
              If  overscan  is  given,  then  this  is  an  overscanned format. I.e., margins are
              required.
              If secondary is given, then the secondary GTF is used for reduced  blanking,  where
              <c>,  <m>,  <k>  and  <j>  are  parameters for the secondary curve.  If none of the
              secondary curve parameters were set, and an EDID file is  passed  as  command  line
              option, then the secondary curve parameters are read from that EDID.
              The default secondary curve parameters are 40 for <c>, 600 for <m>, 128 for <k> and
              20 for <j>.  These values correspond to the normal curve that GTF uses.

       --ovt (rid=<rid>|w=<width>,h=<height>),fps=<fps>
              Calculate the OVT timings for the given format.  Either specify a <rid> or  specify
              <width> and <height>.  <fps> is frames per second.

       --list-established-timings
              List all known Established Timings.

       --list-dmts
              List all known DMTs.

       --list-vics
              List all known VICs.

       --list-hdmi-vics
              List all known HDMI VICs.

       --list-rids
              List all known CTA-861 RIDs.

       --list-rid-timings <rid>
              List all timings for the specified <rid> or all known RIDs if <rid> is 0.

NOTES

       Not  all  fields are decoded, or decoded completely.  edid-decode does attempt to validate
       its input against the relevant standards, but its opinions have  not  been  double-checked
       with  the  relevant  standards  bodies,  so  they may be wrong.  Do not rely on the output
       format, as it will likely change in future versions of the tool as additional  fields  and
       extensions are added.

SEE ALSO

       Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)

AUTHORS

       edid-decode  was  written  by  Adam  Jackson,  with contributions from Eric Anholt, Damien
       Lespiau, Hans Verkuil and others.  For  complete  history  and  the  latest  version,  see
       http://git.linuxtv.org/cgit.cgi/edid-decode.git

                                                                                   edid-decode(1)