Repository navigation
feat: integrate receiver application and build tooling - #71
Merged
dmkarthi merged 2 commits intoOct 19, 2026
Merged
Conversation
- frame_converter: compute the BGRA copy size in size_t so width * height * 4 cannot overflow 32-bit unsigned arithmetic. - logger: remove the lstat()-then-rename() race during rotation. The rename now refuses to replace an existing <log>.rotating atomically (renameat2 RENAME_NOREPLACE, falling back to link()+unlink() on filesystems without it), and the ftell() fallback uses fstat() on the open descriptor instead of stat() on the path. The log stays open until the rename succeeds, so a failed rotation keeps appending as before. - test_config_reader: build test JSON through a bounds-checked append helper instead of accumulating unchecked snprintf() return values.
7 of 17 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds
dvledrx, the ST 2110-20 receiver application, alongside the existingdvledtxtransmitter, and restructures the repository so each application owns its own sources, configs, tests and fuzz harnesses under a single top-level Meson build.Receiver application (
dvledrx/)interfaces[](up to 8 NICs),video(resolution / fps / pixel format),rx_sessions[](NIC, UDP port, payload type, crop) anddisplays[](per-output session placement with scaling, enabling mirrored and per-output layouts).yuv422p/yuv444p/gbrpformats; fps values are mapped to the MTLst_fpsenums so RTP timestamp cadence matches the sender.config_reader,session_manager,frame_converter,x11_handler,logger,main.dvledrx/config/(Full HD, 2K, 4K, crop, multi-session, multi-NIC, per-output).Repository layout
src/,include/dvledtx/src/,dvledtx/include/config/dvledtx/config/tests/dvledtx/tests/fuzz/dvledtx/fuzz/dvledrx/{src,include,config,tests,fuzz}/Transmitter sources are moved without content changes.
Build and test tooling
meson.buildkeeps the shared dependencies and pulls insubdir('dvledtx')andsubdir('dvledrx'); each application defines its own executable andtests/subdirectory.build/dvledtx/dvledtxandbuild/dvledrx/dvledrx.scripts/build.shbuilds and checks both binaries.scripts/test.shruns both suites from a single combined build inbuild-tests/and reports gcovr coverage fordvledtx/srcanddvledrx/src(excludingmain.c). The standalonetests/meson.buildis removed.fake_mtl.c) and X11 tests run underxvfb-run..gitignorenow ignores/build/and/build-tests/.CI
dvledrxalongsidedvledtxanddvledtx-mtl; smoke test verifiesdvledrx version X.Y.Z.libxext-dev,libxrandr-dev,zlib1g-dev,xvfb,xauth; bumps the environment cache key so runners rebuild.Dependency updates
9762c314ed24bd628d3f808b95a94c3aa8525723(v26.09), previously7bee24231c864d12da6db2c2ffbfd3986717af5a.25.11→26.07.Documentation
README updated for the receiver build dependencies, the MTL v26.09 pin, new binary/config paths, and the combined test run.
Notes for reviewers
build/dvledtx,config/*.json,src/,tests/orfuzz/must move to the newdvledtx/...locations.libx11-dev,libxext-dev,libxrandr-dev,libjson-c-devandzlib1g-devare now required to configure the project;xvfb/xauthare needed for the full receiver test suite.Checklist
Code Quality
Testing
Review Readiness
Documentation
Security
PR Type
What kind of change does this PR introduce?