summaryrefslogtreecommitdiff
path: root/kms++util/inc
AgeCommit message (Collapse)Author
2026-05-11utils: Add a dump_framebuffer() methodLaurent Pinchart
Add a new method to write the contents of a framebuffer to a file descriptor. This can be used to capture frames from writeback connectors. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2026-05-08kmstest: Use pixpat vbar for the moving flip barTomi Valkeinen
Replace the hand-rolled draw_color_bar call in FlipState::draw_bar with pixpat's "vbar" pattern via a new draw_vbar_pattern helper in kms++util. The pattern fills the full buffer, so the old_xpos bookkeeping for clearing the previous bar is no longer needed.
2026-05-08kms++util: Replace test-pattern generator with pixpatTomi Valkeinen
Switch draw_test_pattern() to call libpixpat (linked statically into libkms++util.so) instead of the in-tree pattern generator. Pixpat covers every pattern (kmstest, smpte, solid colors) and every pixel format the previous generator handled, so behavior is unchanged for all callers. Drop the now-unused machinery: conv.h and conv-*.h template writers, color16.h (RGB16/YUV16 plus conversions), the *_old / _single / _multi declarations that had no definitions or callers, and the c_draw_test_pattern C ABI which had no callers anywhere in the tree. RecStandard and ColorRange move from color16.h directly into kms++util.h, since they are still part of the public TestPatternOptions struct.
2025-09-08utils: c_draw_test_pattern() takes format name, not fourccTomi Valkeinen
We can generate test patterns for pixel formats not in DRM, so we can't take DRM fourcc as a parameter for c_draw_test_pattern(). Switch it to format name instead. This is a ABI change, but it is marked as super experimental. Also, it feels a bit odd to add non-DRM format handling to kms++. But it feels a bit pointless to split the testpat generation to a separate library. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-04-17color16: Add rounding to YUV-to-RGBTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-04-17color16: Fix RGB-to-YUVTomi Valkeinen
The calculation was not right, producing bad values. Fix it, and this time actually test the output... Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26kms++util: Add draw_test_pattern() with C ABITomi Valkeinen
Add a draw_test_pattern for C ABI (i.e. not C++). This function can be easily called from Python with ctypes, without any kind of bindings. Experimental, ABI can change. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26kms++util: Add SMPTE test patternTomi Valkeinen
2025-03-26kms++util: New template based conversion & testpat codeTomi Valkeinen
New templated conversion and test pattern code. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-03-26kms++util: Add color16.hTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-12-22Code formatting fixesTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2022-12-18kms++util: Add endian.hTomi Valkeinen
Add simple endianness supporting write function, and, for now, only one shortcut helper, write16le(). Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
2022-12-04kms++util: Add missing #pragma onceTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2021-10-06Split V4L2 code into separate libsTomi Valkeinen
Create v4l2++ library and pyv4l2, which are independent from the rest of the kms++. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2020-10-09Bulk format of all filesTomi Valkeinen
2020-08-10kms++: Add support for missing 8 -and 16-bit RGB formatsLaurent Pinchart
Add support for the RGB332, XRGB1555 and XRGB4444 formats to the PixelFormat class, the Python API, and the drawing utilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-08-10kms++: Add support for the planar YUV formatsLaurent Pinchart
Add support for the 6 planar YUV formats (YUV and YVU, combined with 420, 422 or 444 subsampling) to the PixelFormat class, the Python API, and the drawing utilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2020-07-24Use unique_ptr to prevent memory leaks in VideoDevice classdreamer.dead
2020-05-15resmgr: add release() methodsMatt Hoosier
This makes the ResourceManager class much more functional for uses where the set of resources used to scan out a scene changes from frame to frame. The atomic modesetting API discipline requires a brute-force search to find a compatible pairing of planes/etc, and being able to reserve bits incrementally is much simpler than throwing out the entire resourcemanager and make a new one each time a resource reserved in a tentative attempt to probe its compatibility with an test-mode atomic commit, turns out not to pan out.
2019-09-25remove unused sformat()Tomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2019-04-09add support for more pixel formatsTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2018-11-01videodevice: Add selection API supportBenoit Parrot
Add selection API support to the VideoSteamer class. Signed-off-by: Benoit Parrot <bparrot@ti.com>
2018-10-17Add AR12 & AR15 supportTomi Valkeinen
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2018-08-03add a simple draw_circle()Tomi Valkeinen
2017-11-22resman: use set<> instead of vector<>Tomi Valkeinen
2017-11-22kmstest: use resmanTomi Valkeinen
2017-10-03Rework framebuffer classesTomi Valkeinen
Drop (I)MappedFramebuffer, as it doesn't really provide any value, and have most of the methods be present in IFramebuffer with default exception throwing implementation. This gives us simpler way to use the framebuffers, as almost always we can just use a pointer to IFramebuffer.
2017-05-31Add different YCbCr encodings.Jyri Sarha
2017-03-21Merge branch 'universal-planes2' of git://github.com/jsarha/kmsxxTomi Valkeinen
2017-03-21utils: add EXIT_IFTomi Valkeinen
2017-03-20ResourceManager: reserve_generic_plane() for either primary or overlayJyri Sarha
2017-02-10use reserve_connector from ResourceManagerTomi Valkeinen
2016-08-15ResourceManager: add card()Tomi Valkeinen
2016-08-12ExtCPUFramebuffer: add size and offset paramsTomi Valkeinen
Add size and offset params to ExtCPUFramebuffer, so that we can fix fbtestpat's test pattern size on larger virtual fbdevs.
2016-08-11Add BGR888 (BG24) and BGR565 (BG16) pixelformats.Jyri Sarha
Note colorbar does not support 24 bit modes (RGB888 or BGR888) yet.
2016-08-10kms++-util: portability fixYann E. MORIN
__STRING(x) is a glibcism (i.e. it is non-standard), that happens to be also available with uClibc, but is not with musl. Define it if not already defined, using the same trivial definition as is done by both glibg and uClibc. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2016-06-16kmsutils: add VideoDeviceTomi Valkeinen
2016-06-16add ResourceManagerTomi Valkeinen
2016-06-11kms++util: split to subdirsTomi Valkeinen