This is the first release of libdisplay-info [1]. libdisplay-info is an EDID and DisplayID library. It provides a low-level API exposing all of the details of these formats, plus a high-level API which abstracts these details for common operations. The API isn't yet stable. For this release, the library includes full support for EDID, partial support for CTA-861-H, and very basic support for DisplayID 1.3. Thanks a lot to all contributors! [1]: https://gitlab.freedesktop.org/emersion/libdisplay-info Adarsh G M (1): di-edid-decode: help message for the executable Andrea Pappacoda (1): build: stop using meson's implicit setup command Joshua Ashton (4): memory-stream: Factor out memory-stream related code to a new file memory-stream: Add memory_stream_cleanup helper info: Use memory-stream API for di_info_parse_edid info: Use memory_stream_cleanup in di_info_get_serial Pekka Paalanen (11): tests/data: add HP Pavilion 27 Quantum Dot edid: fix uint16_t conversion warning Get size_t definition for info.h readme: mention edid-decode version readme: add Using section info: add getters for make, model and serial test: add high-level API test test: make edid-decode-diff.sh easier to run editorconfig: add python rules ci: install hwdata info: use PNP ID database for manufacturer names Sebastian Wick (22): edid: split the detailed timing signal union into separate structs cta: make HDR eotfs and descriptors directly accessible from the block edid: add support for color point descriptors edid: add support for Color Management Data descriptors edid: use the correct definition for maximum standard timings cta: add support for VESA Display Transfer Characteristic data block cta: parse short audio descriptors edid: add support for CVT timing code descriptors cta: include stddef.h for size_t ci: always build documentation cta: parse HDR Dynamic Metadata Data Block cta: add support for YCbCr 4:2:0 Video cta: add support for YCbCr 4:2:0 Capability Map di-edid-decode/cta: align VIC aspect ratio names test: Document where each EDID blob is from cdi-edid-decode/cta: Take interlacing into account when printing VICs cta: Add new data blocks from CTA-861.6 edid: Sync On Green Signal only is set if the bit is 0 and not 1 test: Bump edid-decode to newer version cta: add support for InfoFrame Data Block build: Set the library version and SOVERSION release: Add release instructions and script Simon Ser (165): Add .editorconfig ci: add .gitlab-ci.yml build: add Meson boilerplate build: tweak C warning options readme: add goals build: turn on -Wconversion ci: fix build stage not run in MRs Add very basic EDID functions Add skeleton for high-level API Add di_info_get_edid Add di-edid-decode utility edid: add vendor and product identification data build: enable POSIX.1-2008 Add di_info_get_product_name edid: add low-level API to enumerate extension blocks Add edid-decode testing infrastructure edid: use hex offsets edid: check that the blob size is divisible by the block size ci: fix tests with outdated edid-decode ci: always upload Meson logs as artifacts edid: validate extension block tag edid: document where extension block tags are defined edid: check extension block count field di-edid-decode: print extension block count edid: switch to a statically allocated extension array di-edid-decode: print block checksum ci: add junit report for tests ci: enable meson --fatal-meson-warnings ci: generate coverage information edid: add basic support for display descriptors edid: add support for product serial, name and data strings build: error out on -Wimplicit edid: introduce has_bit edid: introduce get_bit_range edid: parse digital video input definition edid: parse screen size edid: parse basic gamma edid: parse supported DPMS states edid: parse supported color encoding formats edid: parse other feature support flags di-edid-decode: only print serial number if non-zero test: add panasonic-mei96a2-dp EDID di-edid-decode: fix hang with a 32 KiB file readme: add building section readme: document fuzzing setup di-edid-decode: add optional arg to specify input filename edid: re-order display descriptor declarations in public header edid: prefix private functions with "_di_" build: set symbol visibility ci: mention how to force a container rebuild when pushing edid: add support for detailed timing definitions di-edid-decode: compute DTD aspect ratio edid: parse display range limits descriptor di-edid-decode: add missing DI_EDID_EXT_DPVL name di-edid-decode: remove default cases for enum switches ci: build with both GCC and Clang ci: disable parallel jobs for coverage reports edid: document that DTD size in mm can be unset edid: ignore aspect ratio stored in DTD mm size edid: switch to sized integers for DTD test/data: add samsung-s27a950d-dp edid: parse interlaced/stereo flags from DTDs edid: parse display color type edid: parse standard timings edid: add support for chromaticity coordinates Add failure message reporting functions edid: report parsing errors with new helpers dmt: introduce generated table for DMT data edid: add di_edid_standard_timing_get_dmt_id cta: introduce new API for CTA-861 Extract bit helpers into shared header cta: add support for misc flags cta: add support for enumerating data blocks edid: stop setting errno in parse_display_range_limits edid: add display range limits type test: include edid-decode failure messages in diffs di-edid-decode: print failure message di-edid-decode: exit with non-zero code on conformance failure edid: fix negative errno cta: parse colorimetry data blocks edid: drop return value for parse_basic_params_features() edid: drop return value for parse_chromaticity_coords() edid: drop unnecessary ENOTSUP checks test/data: add sun-gh19ps-dvi edid: fix product year < 2006 in EDID 1.3 edid: parse DTD signal type edid: parse analog and digital flags in DTDs info: introduce di_logger cta: log failures edid: fix typo in di_edid_get_standard_timings() doc comment edid: check first byte descriptor is a DTD edid: parse established timings I and II edid: expose _di_edid_parse_detailed_timing_def cta: parse detailed timing definitions edid: parse digital video input flags for EDID 1.3- edid: parse analog video input params ci: update edid-decode edid: add prefix to range limits failure messages cta: parse HDR static metadata blocks edid: refactor parse_standard_timing() with an output param edid: add support for standard timings descriptor test/edid-decode-diff: do not fail if .diff doesn't exist test: rename EDID files with .edid filename extension cta: add support for video data blocks test/data: add apple-xdr-dp Add basic support for DisplayID in EDID extension blocks cta: rename di_edid_cta_flags.underscan to it_underscan cta: add support for video capability data block test/data: add msi-mag321curv-dp test/data: add viewsonic-vp2768-dp edid: check padding in range limits descriptor edid: parse timing data from secondary GTF range limit descriptor edid: parse timing data from CVT range limit descriptor ci: simplify ci-templates include cta: add EDID_CTA_MAX_DATA_BLOCKS Add safety assertions when inserting into array cta: add missing <stdint.h> include in public header dmt: add more timing info dmt: add public header edid: expose struct di_dmt_timing test/data: add acer-p1276 di-edid-decode: fix inverted text for analog video setup test/data: add goldstar-ite6604-hdmi edid: parse established timings III displayid: parse section size displayid: parse product type displayid: validate checksum displayid: add logging helpers displayid: parse data blocks Introduce di_gtf_compute() displayid: parse type I timings displayid: add support for display parameters data block di-edid-decode: print preferred flag for type I timing Generate HTML documentation readme: add link to website displayid: add missing includes in public header di-edid-decode: split into multiple files readme: link to latest code coverage report ci: update edid-decode info: drop di_info_get_product_name() test: add custom-uncommon-cta-vesa edid-decode/cta: align data block names with edid-decode di-edid-decode/cta: round VESA transfer characteristics build: add gen-test-data run target build: override dependency for subproject usage build: split off di-edid-decode into separate file test: fix default path for di-edid-decode ci: upgrade to Alpine 3.17 ci: upgrade edid-decode di-edid-decode: add special case for 16:10 aspect ratio di-edid-decode: print full established timings III dmt: add reduced_blanking field di-edid-decode: print DMT reduced blanking flag ci: pin Alpine version Introduce di_cvt_compute() Add code coverage configuration file displayid: add support for tiled display topology data block cta: add support for VESA DDDB cta: add support for speaker allocation data block cta: add VIC table di-edid-decode/cta: print detailed info for VICs readme: fix executable path in fuzzing instructions readme: move URL to references list readme: document versioning and stability expectations build: bump version to 0.1.0 git tag: 0.1.0 https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/0.1.0/downloads/libdisplay-info-0.1.0.tar.xz SHA256: c974a5d345e28a480684d07e01bc20a362f071ae126f110c307b5527ed21c0c0 libdisplay-info-0.1.0.tar.xz SHA512: f4d2d8ab2683db2c5ab04a11483dadf575608e0293a79ca2856a83d900bfa21d8abcbac7a8691ac5814b86962721a696f99a6e07d99efbaaa5f38b956e62a145 libdisplay-info-0.1.0.tar.xz PGP: https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/0.1.0/downloads/libdisplay-info-0.1.0.tar.xz.sig