Age | Commit message (Collapse) | Author |
|
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>
|
|
Add support for the NV16 and NV61 pixel 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>
|
|
Several pixel formats defined in the C++ PixelFormat class are missing
from the Python API. Add them.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
The BO pitches are unconditionally set to the frame buffer pitch, for
all planes. This is correct for semiplanar YUV formats, as they
subsample chroma horizontally by two but combined U and V in a single
plane, cancelling each other. For fully planar YUV formats, however, the
horizontal subsampling need to be taken into account to compute the
pitch. Fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
The DumbFrameBuffer class supports up to 4 planes, as required by the
DRM/KMS API, but only considers planes 0 and 1 when constructing the
buffer. Fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
The has_has_universal_planes() method name includes a typo, fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
The device minor number is needed to access the debugfs directory
corresponding to the device. Make it available to users through a
dev_minor() method on the Card object.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
Use unique_ptr to prevent memory leaks in VideoDevice class
|
|
|
|
More card constructors
|
|
Uses drmOpen() to do the heavy lifting.
|
|
This is an escape hatch to let the user do whatever crazy thing he
wants to obtain the DRM fd. This could be from a DRM lease, an FD
passed across a Wayland protocol request, something calculated by
manually walking across the set of DRI cards and selecting specific
criteria, etc.
|
|
fix compiler errors with gcc 10
|
|
resmgr: add release() methods
|
|
|
|
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.
|
|
Allow kmstest to enable an output without anything connected, if the
user gives a videomode. DRM framework allows this, and is needed for
testing.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
|
|
Add an option to print crc16 for the framebuffer contents.
|
|
Only single touch supported, and pretty naive implementation.
|
|
|
|
|
|
Include array
|
|
|
|
Supply pkg-config files
|
|
These are customary, and pretty straightforward to offer.
|
|
Py tests tidss updates v3
|
|
|
|
|
|
|
|
PixelFormat is an uint32_t underneath, so use that type instead of int
when casting.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
|
|
Link libfmt in header-only mode
|
|
This saves us the trouble of having a copy of its shared library
installed into the target filesystem, which would conflict with
an independently packaged copy.
Only the headers are needed to accomplish the usages that Kms++
makes.
|
|
Add an build option to allow explicitly shutting off libdrm-omap
features. This is useful for packaging situations to prevent
accidental unexpected features.
To deactivate the drm-omap specific functionality that was activated
unconditionally if present until now, use:
cmake -DKMSXX_ENABLE_LIBDRMOMAP=OFF
Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
|
|
This makes package managers happier when the software is built
as a dynamic-library.
Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
|
|
Many GPUs use bandwidth compression or tiling, and this information
must be passed along to KMS when constructing the framebuffer object
around the GEM handle or prime filedescriptor.
Add an vector of modifiers as an optional parameter to both of these
classes.
Bump the minimum required version of libdrm to 2.4.17 to ensure
drmModeAddFB2WithModifiers() is available.
Signed-off-by: Matt Hoosier <matt.hoosier@garmin.com>
|
|
Use std::array and .at() to get bounds checking.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
Check that parameter vectors are of the same size, and match the number
of planes.
Extend the vectors to 4, as drmModeAddFB2() expects to get arrays of 4
elements.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Matt Hoosier <matt.hoosier@garmin.com>
|
|
Misc improvements
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
|
|
Use correct operator delete[] to free buffers in CPUFramebuffer
|
|
|