LCamDev: implement configureSessionModeCReq
We can, theoretically, now change the v4l camera's mode.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user