Merge commit 'b48ad0f59d93638adca58c60fbe667472de822f3'
* commit 'b48ad0f59d93638adca58c60fbe667472de822f3':
Make sure shutter callback is called before raw callback.
The problem is even after release() is done, the singleton
variable is not cleared, so a new openCameraHardware()
call could return an instance which is already released.
The singleton variable is cleared in the destructor, so
we wait until that happens in openCameraHardware().
Merge commit 'be125559561e66c1ed080dc6aca8fd9fd642b030'
* commit 'be125559561e66c1ed080dc6aca8fd9fd642b030':
The antibanding (60Hz) broke the bar code scanner.
Merge commit '346ac60d65b406ef102c9f471f87a90b056a1efc'
* commit '346ac60d65b406ef102c9f471f87a90b056a1efc':
Add timestamps to video frames to improve A/V sync.
Merge commit 'bda01917a432b68a25d54839eb6f3da949f388bb'
* commit 'bda01917a432b68a25d54839eb6f3da949f388bb':
libcamera: set antibanding to 60Hz, use cropping information on snapshot
Merge commit 'c9949de51b0f7d585bd4185ee1e682cc2a5cab8e'
* commit 'c9949de51b0f7d585bd4185ee1e682cc2a5cab8e':
libcamera: dlopen() libqcamera in the AF thread
-- Set the antibanding to 60Hz for the US (Should be 50Hz for the
rest of the world.)
-- Save the cropping info returned when taking a picture and then
pass it to the JPEG encoder. This enables digital zoom for JPEG
images (cropping and upsampling).
Signed-off-by: Iliyan Malchev <malchev@google.com>
-- general cleanup: made a bunch of functions static to
QualcommCameraHardware.cpp, not class members; got rid of unnecessary
private member variables. The only functions that remain as members
are native_set_dimension() and native_jpeg_encode()
-- removed kRawFrameHeaderSize; aDSP frame offsets are zero now;
-- simplify reg_unreg_buf
-- Removed PreviewPmemPool and RawPmemPool, which do not need to be
specialized on top of PmemPool. We use PmemPool instead.
-- use PmemPool to both create pmem pools and register them with the driver
-- takePicture runs in a separate thread
-- the destructor keeps a singleton lock
-- PmemPool calls dup() on the camera-control file descriptor to guard against
release() calling close() on it before PmemPool has a chance to deregister
pmem from the camera driver.
-- got rid of hal_mmap() and hal_munmap() entirely and created a PmemHeap to
manage thumbnails.
-- removed support for CAPTURE_RAW. The CameraService can already do this.
Signed-off-by: Iliyan Malchev <malchev@google.com>
Merge commit 'efaedb948a67d90bc0a61fcdfd778e1ce5629e7f'
* commit 'efaedb948a67d90bc0a61fcdfd778e1ce5629e7f':
Get the values returned from CAMERA_GET_PARM_ZOOM correctly.
Merge commit 'feb4e9a7da6264007786b161ab6273ba08094570'
* commit 'feb4e9a7da6264007786b161ab6273ba08094570':
Enable more debug message to debug the Camera startPreview bug.
Merge commit '384fc2db5ad3ec835b72dd84240a2552f84e2a52'
* commit '384fc2db5ad3ec835b72dd84240a2552f84e2a52':
libcamera2: update to match new libqcamera.so
Merge commit '2697f855be4d8b0bccbb3ba5bf1ae1547d2cf595'
* commit '2697f855be4d8b0bccbb3ba5bf1ae1547d2cf595':
Fix deadlock in camera hal when auto focus failed
Merge commit '0233cce1fad9b150c93f80a06aeaac8de6da8cdf'
* commit '0233cce1fad9b150c93f80a06aeaac8de6da8cdf':
libcamera: avoid a race condition on starting and stopping a recording
Merge commit '5fe5fdf8082f6ebde346d2a32c50d567dd3eeb5b'
* commit '5fe5fdf8082f6ebde346d2a32c50d567dd3eeb5b':
libcamera: default brightness to 5 when not specified by camera
precondition: preview is running
-- call startRecording()
-- a preview frame arrives, causing the record callback to be called, and then
blocks on mRecordWait.wait()
-- call stopRecording(), which sets mReleasedRecordingFrame and signals
mRecordWait;
-- call startRecording(), which clears mReleasedRecordingFrame;
-- receivePreviewFrame() wakes up, checks mReleasedRecordingFrame, and
blocks again on mRecordWait.wait(), without having notified the client.
Signed-off-by: Iliyan Malchev <malchev@google.com>
Merge commit '9ef7ea7ef81ae46de84e660024a73047372cc133'
* commit '9ef7ea7ef81ae46de84e660024a73047372cc133':
libcamera2: update the frame offset after we call the recording callback