edid-decode(1) | General Commands Manual | edid-decode(1) |
edid-decode - Decode EDID data in human-readable format
edid-decode <options> [in [out]]
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:
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.
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
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.
<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.
<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.
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.
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