Files
salmanoff/commonLibs/lcameraDev/cameraModeRequest.cpp
T
hayodea 3e85b920fb LCamDev: implement configureSessionModeCReq
We can, theoretically, now change the v4l camera's mode.
2026-06-13 20:56:33 -04:00

51 lines
1.2 KiB
C++

#include <cameraModeRequest.h>
#include <sstream>
#include <stdexcept>
namespace lcamera_dev {
namespace {
constexpr const char *incompleteOptionalPlanarMessage =
"lcameraDev: fullPlanarIsOptional/opt-planar is not honored yet "
"(non-planar producer deinterleaving is not implemented)";
} // namespace
void validateCameraModeRequest(const LcameraDevCameraModeRequest& request)
{
if (request.width == 0 || request.height == 0)
{
throw std::runtime_error(
"lcameraDev: camera mode request width and height must be "
"non-zero");
}
if (request.colourSpace != LcameraDevColourSpace::Yuv)
{
throw std::runtime_error(
"lcameraDev: unsupported colour-space for camera mode request");
}
}
void rejectFullPlanarOptionalAtConfigureApi(
const LcameraDevCameraModeRequest& request)
{
if (request.fullPlanarIsOptional)
{
throw std::runtime_error(incompleteOptionalPlanarMessage);
}
}
bool cameraModeRequestsEqual(
const LcameraDevCameraModeRequest& left,
const LcameraDevCameraModeRequest& right)
{
return left.width == right.width
&& left.height == right.height
&& left.colourSpace == right.colourSpace
&& left.fullPlanarIsOptional == right.fullPlanarIsOptional;
}
} // namespace lcamera_dev