summaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
imx8mp/extensible-formatipa: rkisp1: Use the extensible parameters formatJacopo Mondi3 weeks
isi/raw_sensorlibcamera: imx8-isi: Split Bayer/YUV config generationJacopo Mondi18 months
isi/raw_sensor_v2fixup! libcamera: imx8-isi: Break out YUV format selectionJacopo Mondi17 months
jmondi/android/ndk/pinephoneproandroid: data: Add camera HAL config for PinephoneProJacopo Mondi19 months
jmondi/android/pinephoneproandroid: Fix improper file descriptor enumerationNicholas Roth19 months
jmondi/android/vndkipa: workaround libcxx duration limitationNicholas Roth9 months
jmondi/imx8mp/debix-aipa: rkisp1: agc: Load ExposureValue from configJacopo Mondi16 months
jmondi/lc-compliance-crosWIP: test controls in a RequestJacopo Mondi6 months
jmondi/pinephonelibcamera: v4l2_pixelformat: Map formats::MJPEG to V4L2_PIX_FMT_JPEGJacopo Mondi24 months
jmondi/pinephonepro[WIP] camera_sensor: Do not consider FOV in getFormat()Jacopo Mondi17 months
jmondi/pinephonepro-af[HACK] ipa: af: Force AfModeContinuousJacopo Mondi10 months
jmondi/rk3399/google-dru-scarletipa: rkisp1: Add tuning files for Google DRU "Scarlet" sensorsJacopo Mondi16 months
jmondi/rockpi/af/imx519ipa: algorithms: af: Do not inherit from AlgorithmJacopo Mondi24 months
jmondi/rpi5-on-mainlinedebugJacopo Mondi6 months
 
; }; V4L2Camera(std::shared_ptr<Camera> camera); ~V4L2Camera(); int open(StreamConfiguration *streamConfig); void close(); void bind(int efd); void unbind(); std::vector<Buffer> completedBuffers(); int configure(StreamConfiguration *streamConfigOut, const Size &size, const PixelFormat &pixelformat, unsigned int bufferCount); int validateConfiguration(const PixelFormat &pixelformat, const Size &size, StreamConfiguration *streamConfigOut); int allocBuffers(unsigned int count); void freeBuffers(); FileDescriptor getBufferFd(unsigned int index); int streamOn(); int streamOff(); int qbuf(unsigned int index); void waitForBufferAvailable(); bool isBufferAvailable(); bool isRunning(); private: void requestComplete(Request *request); std::shared_ptr<Camera> camera_; std::unique_ptr<CameraConfiguration> config_; bool isRunning_; std::mutex bufferLock_; FrameBufferAllocator *bufferAllocator_; std::vector<std::unique_ptr<Request>> requestPool_; std::deque<Request *> pendingRequests_; std::deque<std::unique_ptr<Buffer>> completedBuffers_; int efd_; Mutex bufferMutex_; std::condition_variable bufferCV_; unsigned int bufferAvailableCount_; }; #endif /* __V4L2_CAMERA_H__ */