Find a file
Simon Ser 1f416f554a ci: add FreeBSD
The libc there is a bit different, so it's nice to make sure we
don't break it.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-08 12:28:52 +02:00
include edid: parse timing data from CVT range limit descriptor 2022-09-06 09:27:32 +02:00
test edid: parse timing data from CVT range limit descriptor 2022-09-06 09:27:32 +02:00
tool dmt: introduce generated table for DMT data 2022-08-01 14:35:33 +00:00
.editorconfig Add .editorconfig 2022-03-24 01:49:12 +01:00
.gitlab-ci.yml ci: add FreeBSD 2022-09-08 12:28:52 +02:00
cta.c cta: add support for video capability data block 2022-09-05 18:11:56 +00:00
di-edid-decode.c edid: parse timing data from CVT range limit descriptor 2022-09-06 09:27:32 +02:00
displayid.c Add basic support for DisplayID in EDID extension blocks 2022-09-02 06:42:06 +00:00
dmt-table.c dmt: introduce generated table for DMT data 2022-08-01 14:35:33 +00:00
edid.c edid: parse timing data from CVT range limit descriptor 2022-09-06 09:27:32 +02:00
info.c info: introduce di_logger 2022-08-04 08:40:36 +02:00
libdisplay-info.map build: set symbol visibility 2022-06-14 11:40:07 +00:00
LICENSE Initial commit 2022-03-24 01:49:00 +01:00
log.c info: introduce di_logger 2022-08-04 08:40:36 +02:00
meson.build Add basic support for DisplayID in EDID extension blocks 2022-09-02 06:42:06 +00:00
README.md build: stop using meson's implicit setup command 2022-08-23 23:14:31 +02:00

libdisplay-info

EDID and DisplayID library.

Goals:

  • Provide a set of high-level, easy-to-use, opinionated functions as well as low-level functions to access detailed information.
  • Simplicity and correctness over performance and resource usage.
  • Well-tested and fuzzed.

Contributing

Open issues and merge requests on the GitLab project.

In general, the Wayland contribution guidelines should be followed. In particular, each commit must carry a Signed-off-by tag to denote that the submitter adheres to the Developer Certificate of Origin 1.1. This project follows the freedesktop.org Contributor Covenant.

Building

libdisplay-info is built using Meson. It has no dependencies.

meson setup build/
ninja -C build/

Testing

The low-level EDID library is tested against edid-decode. test/data/ contains a small collection of EDID blobs and diffs between upstream edid-decode and our di-edid-decode clone. Our CI ensures the diffs are up-to-date. A patch should never make the diffs grow larger. To add a new EDID blob or update a diff, use test/edid-decode-diff.sh test/data/<edid>.

Fuzzing

To fuzz libdisplay-info with AFL, the library needs to be instrumented:

CC=afl-gcc meson build/
ninja -C build/
afl-fuzz -i test/data/ -o afl/ build/di-edid-decode