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

49 lines
1.3 KiB
C++

#ifndef LCAMERA_DEV_CAMERA_MODE_REQUEST_H
#define LCAMERA_DEV_CAMERA_MODE_REQUEST_H
#include <string>
namespace lcamera_dev {
enum class LcameraDevColourSpace
{
Yuv,
};
struct LcameraDevCameraModeRequest
{
unsigned width = 0;
unsigned height = 0;
LcameraDevColourSpace colourSpace = LcameraDevColourSpace::Yuv;
/** EXPLANATION:
* When false, configure must select a fully planar YUV pixel format.
* When true, relaxed non-planar formats are not honored at the configure
* API yet — producer-side deinterleaving is not implemented (Stage 2).
*/
bool fullPlanarIsOptional = false;
};
struct LcameraDevConfiguredCameraMode
{
unsigned width = 0, height = 0;
LcameraDevColourSpace colourSpace = LcameraDevColourSpace::Yuv;
std::string pixelFormatName;
bool isFullyPlanar = false;
unsigned planeCount = 0;
};
void validateCameraModeRequest(const LcameraDevCameraModeRequest& request);
/** Rejects fullPlanarIsOptional at the configure API until non-planar fallback
* paths exist in lcameraBuff. */
void rejectFullPlanarOptionalAtConfigureApi(
const LcameraDevCameraModeRequest& request);
bool cameraModeRequestsEqual(
const LcameraDevCameraModeRequest& left,
const LcameraDevCameraModeRequest& right);
} // namespace lcamera_dev
#endif // LCAMERA_DEV_CAMERA_MODE_REQUEST_H