Camera: Invalidate buffer cache for partial buffer request failure
In case partial buffer request fails for a particular stream, the
successfully allocated buffers need to be invalidated from the
mBufferIdMaps. Otherwise, the camera frameworks thinks the HAL already
knows about the buffer, and sends a null buffer handle for a new buffer.
Test: Vendor testing
Bug: 198122465
Bug: 196202313
Change-Id: I73a710aebf102fcbb49e53b52c18e4835986f40f
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index fd645c7..a195fb1 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -4132,6 +4132,11 @@
return mBufferRecords.getBufferId(buf, streamId);
}
+uint64_t Camera3Device::HalInterface::removeOneBufferCache(int streamId,
+ const native_handle_t* handle) {
+ return mBufferRecords.removeOneBufferCache(streamId, handle);
+}
+
void Camera3Device::HalInterface::onBufferFreed(
int streamId, const native_handle_t* handle) {
uint32_t bufferId = mBufferRecords.removeOneBufferCache(streamId, handle);