Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
edid-decode(1)		    General Commands Manual		edid-decode(1)

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 ker-
       nel 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 op-
       tional interlaced indicator ('i'), the frame rate (field	rate  for  in-
       terlaced	 formats), the picture aspect ratio, the horizontal frequency,
       the pixelclock frequency	and optionally additional flags	between	paren-
       thesis.

       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 num-
	      ber is the DMT ID	in hexadecimal.

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

	      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 Ex-
	      tension 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 Res-
	      olution 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 tim-
       ings 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 Stan-
	      dard, Release A, Revision	1

	      EDID 1.4:	VESA Enhanced Extended Display Identication Data Stan-
	      dard, 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, Re-
	      lease A

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

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

	      DTCDB: VESA Display Transfer Characteristics Data	Block Stan-
	      dard, 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.1b: High-Definition Multimedia Interface, Version 2.1b

	      CTA-861-I: A DTV Profile for Uncompressed	High Speed Digital In-
	      terfaces

	      SPWG Notebook Panel Specification, Version 3.5

	      EPI Embedded Panel Interface, Revision 1.0

	      Microsoft	EDID extension for head-mounted	and specialized	moni-
	      tors, 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	 fail-
	      ures are reported	at the end.

       -C, --check-inline
	      Check  if	the EDID conforms to the standards. Warnings and fail-
	      ures 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 Ex-
	      tension 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:  progres-
	      sive 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.	Other-
	      wise 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 de-
	      fined in fb.modes(5).

       -V, --v4l2-timings
	      Report all long video timings in the video mode  format  as  de-
	      fined  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	repos-
	      itory, 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
	      Hide any serial numbers in the human readable output  by	'...'.
	      Note that	they are still easily extracted	from the EDID hex dump
	      at the start.

       --replace-unique-ids
	      Replaces any unique IDs in the EDID by fixed values. Serial num-
	      bers  will  be replaced by '123456' and Container	IDs by all ze-
	      roes. This will also update any checksums	in the EDID and	update
	      the EDID hex dump	at the start of	the output.  Note  that	 since
	      this  will  update checksums, any	checksum errors	present	in the
	      original EDID will no longer be detected.

	      Serial numbers can appear	in the Base Block, DisplayID Extension
	      Blocks and Localized String Extension Blocks. Container IDs  can
	      appear in	the DisplayID and CTA-861 Extension Blocks.

       --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 re-
	      duced 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>][,pix-
       clk=<pixclk>]
	      [,interlaced][,overscan][,sec-
	      ondary][,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  re-
	      duced  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  bod-
       ies,  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-de-
       code.git

								edid-decode(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=edid-decode&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help