py: Add FrameMetadataPlane
Add FrameMetadataPlane class and adjust the methods and uses accordingly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
80e0ff355e
commit
e8317de05c
2 changed files with 10 additions and 6 deletions
|
@ -285,7 +285,8 @@ class CaptureState:
|
||||||
print('{:.6f} ({:.2f} fps) {}-{}: seq {}, bytes {}, CRCs {}'
|
print('{:.6f} ({:.2f} fps) {}-{}: seq {}, bytes {}, CRCs {}'
|
||||||
.format(ts / 1000000000, fps,
|
.format(ts / 1000000000, fps,
|
||||||
ctx.id, stream_name,
|
ctx.id, stream_name,
|
||||||
meta.sequence, meta.bytesused,
|
meta.sequence,
|
||||||
|
'/'.join([str(p.bytes_used) for p in meta.planes]),
|
||||||
crcs))
|
crcs))
|
||||||
|
|
||||||
if ctx.opt_metadata:
|
if ctx.opt_metadata:
|
||||||
|
|
|
@ -163,6 +163,7 @@ PYBIND11_MODULE(_libcamera, m)
|
||||||
auto pyRequestReuse = py::enum_<Request::ReuseFlag>(pyRequest, "Reuse");
|
auto pyRequestReuse = py::enum_<Request::ReuseFlag>(pyRequest, "Reuse");
|
||||||
auto pyFrameMetadata = py::class_<FrameMetadata>(m, "FrameMetadata");
|
auto pyFrameMetadata = py::class_<FrameMetadata>(m, "FrameMetadata");
|
||||||
auto pyFrameMetadataStatus = py::enum_<FrameMetadata::Status>(pyFrameMetadata, "Status");
|
auto pyFrameMetadataStatus = py::enum_<FrameMetadata::Status>(pyFrameMetadata, "Status");
|
||||||
|
auto pyFrameMetadataPlane = py::class_<FrameMetadata::Plane>(pyFrameMetadata, "Plane");
|
||||||
auto pyTransform = py::class_<Transform>(m, "Transform");
|
auto pyTransform = py::class_<Transform>(m, "Transform");
|
||||||
auto pyColorSpace = py::class_<ColorSpace>(m, "ColorSpace");
|
auto pyColorSpace = py::class_<ColorSpace>(m, "ColorSpace");
|
||||||
auto pyColorSpacePrimaries = py::enum_<ColorSpace::Primaries>(pyColorSpace, "Primaries");
|
auto pyColorSpacePrimaries = py::enum_<ColorSpace::Primaries>(pyColorSpace, "Primaries");
|
||||||
|
@ -512,11 +513,10 @@ PYBIND11_MODULE(_libcamera, m)
|
||||||
.def_readonly("status", &FrameMetadata::status)
|
.def_readonly("status", &FrameMetadata::status)
|
||||||
.def_readonly("sequence", &FrameMetadata::sequence)
|
.def_readonly("sequence", &FrameMetadata::sequence)
|
||||||
.def_readonly("timestamp", &FrameMetadata::timestamp)
|
.def_readonly("timestamp", &FrameMetadata::timestamp)
|
||||||
/* \todo Implement FrameMetadata::Plane properly */
|
.def_property_readonly("planes", [](const FrameMetadata &self) {
|
||||||
.def_property_readonly("bytesused", [](FrameMetadata &self) {
|
/* Convert from Span<> to std::vector<> */
|
||||||
std::vector<unsigned int> v;
|
/* Note: this creates a copy */
|
||||||
v.resize(self.planes().size());
|
std::vector<FrameMetadata::Plane> v(self.planes().begin(), self.planes().end());
|
||||||
transform(self.planes().begin(), self.planes().end(), v.begin(), [](const auto &p) { return p.bytesused; });
|
|
||||||
return v;
|
return v;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -525,6 +525,9 @@ PYBIND11_MODULE(_libcamera, m)
|
||||||
.value("Error", FrameMetadata::FrameError)
|
.value("Error", FrameMetadata::FrameError)
|
||||||
.value("Cancelled", FrameMetadata::FrameCancelled);
|
.value("Cancelled", FrameMetadata::FrameCancelled);
|
||||||
|
|
||||||
|
pyFrameMetadataPlane
|
||||||
|
.def_readwrite("bytes_used", &FrameMetadata::Plane::bytesused);
|
||||||
|
|
||||||
pyTransform
|
pyTransform
|
||||||
.def(py::init([](int rotation, bool hflip, bool vflip, bool transpose) {
|
.def(py::init([](int rotation, bool hflip, bool vflip, bool transpose) {
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue