#ifndef LCAMERA_DEV_CAMERA_MODE_REQUEST_H #define LCAMERA_DEV_CAMERA_MODE_REQUEST_H #include 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, configure may accept semi-planar or packed YUV; lcameraBuff * deinterleaves components in later capture stages. */ 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); bool cameraModeRequestsEqual( const LcameraDevCameraModeRequest& left, const LcameraDevCameraModeRequest& right); } // namespace lcamera_dev #endif // LCAMERA_DEV_CAMERA_MODE_REQUEST_H