Properly handle memory layout of input buffer for test camera
Bug: 301023410
Test: manually with OpenCamera
Test: atest virtual_camera_tests
Test: atest VirtualCameraTest
Change-Id: I32c0074f7d6cf2f098525e48686dafb0970d4298
diff --git a/services/camera/virtualcamera/VirtualCameraRenderThread.cc b/services/camera/virtualcamera/VirtualCameraRenderThread.cc
index 25cc270..50b5709 100644
--- a/services/camera/virtualcamera/VirtualCameraRenderThread.cc
+++ b/services/camera/virtualcamera/VirtualCameraRenderThread.cc
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include "hardware/gralloc.h"
#define LOG_TAG "VirtualCameraRenderThread"
#include "VirtualCameraRenderThread.h"
@@ -392,6 +393,11 @@
EglTextureProgram::TextureFormat::RGBA);
mEglSurfaceTexture = std::make_unique<EglSurfaceTexture>(
mInputSurfaceSize.width, mInputSurfaceSize.height);
+
+ sp<Surface> inputSurface = mEglSurfaceTexture->getSurface();
+ if (mTestMode) {
+ inputSurface->connect(NATIVE_WINDOW_API_CPU, false, nullptr);
+ }
mInputSurfacePromise.set_value(mEglSurfaceTexture->getSurface());
while (std::unique_ptr<ProcessCaptureRequestTask> task = dequeueTask()) {