0

Revert "[MappableSI] Convert CameraBufferFactory to use MappableSI."

This reverts commit fbc70a7c9b.

Reason for revert: This blocks some models to open the Camera app

Original change's description:
> [MappableSI] Convert CameraBufferFactory to use MappableSI.
>
> Refactor CameraBufferFactory::ResolveStreamBufferFormat() to create
> MappableSI instead of GpuMemoryBuffer.
>
> This is ChromeOS only change.
>
> Follow up CLs will convert rest of CrOs media capture code
> to use MappableSI.
>
> Bug: 40264379
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5758193
> Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Commit-Queue: vikas soni <vikassoni@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1340598}

(cherry picked from commit 4747cbc7b3ca500b9332cd159359dbdd43373a6f)

Bug: 361010222
Change-Id: I1a2faaead8f8a5ce995bcda2b5610d429a0f49e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5796430
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dorah Kim <dorahkim@google.com>
Cr-Commit-Position: refs/heads/main@{#1345206}
This commit is contained in:
Dorah Kim
2024-08-22 02:13:09 +00:00
committed by Chromium LUCI CQ
parent 2b15c55869
commit d13c604016
5 changed files with 38 additions and 57 deletions

@ -488,7 +488,6 @@ test("capture_unittests") {
":test_support",
"//base/test:test_support",
"//build:chromeos_buildflags",
"//components/viz/test:test_support",
"//gpu:test_support",
"//gpu/command_buffer/client",
"//media:test_support",

@ -8,12 +8,3 @@ include_rules = [
"+third_party/cros_system_api",
"+third_party/libsync",
]
specific_include_rules = {
"camera_device_delegate_unittest.cc": [
"+components/viz/test/test_context_provider.h",
],
"camera_hal_delegate_unittest.cc": [
"+components/viz/test/test_context_provider.h",
],
}

@ -96,9 +96,9 @@ ChromiumPixelFormat CameraBufferFactory::ResolveStreamBufferFormat(
return kUnsupportedFormat;
}
for (const auto& f : cr_formats) {
auto shared_image = CreateSharedImage(
auto buffer = CreateGpuMemoryBuffer(
gfx::Size(kDummyBufferWidth, kDummyBufferHeight), f.gfx_format, usage);
if (shared_image) {
if (buffer) {
resolved_format_usages_[key] = f;
return f;
}

@ -23,7 +23,6 @@
#include "base/test/bind.h"
#include "base/test/task_environment.h"
#include "base/time/time.h"
#include "components/viz/test/test_context_provider.h"
#include "media/capture/video/chromeos/camera_buffer_factory.h"
#include "media/capture/video/chromeos/camera_device_context.h"
#include "media/capture/video/chromeos/camera_hal_delegate.h"
@ -170,9 +169,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
void SetUp() override {
VideoCaptureDeviceFactoryChromeOS::SetGpuBufferManager(
&mock_gpu_memory_buffer_manager_);
test_sii_ = base::MakeRefCounted<gpu::TestSharedImageInterface>();
test_sii_->UseTestGMBInSharedImageCreationWithBufferUsage();
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(test_sii_);
camera_hal_delegate_ = std::make_unique<CameraHalDelegate>(ui_task_runner_);
if (!camera_hal_delegate_->Init()) {
LOG(ERROR) << "Failed to initialize CameraHalDelegate";
@ -187,7 +183,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
}
void TearDown() override {
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(nullptr);
camera_device_delegate_.reset();
camera_hal_delegate_.reset();
task_environment_.RunUntilIdle();
@ -431,34 +426,22 @@ class CameraDeviceDelegateTest : public ::testing::Test {
.WillOnce(
Invoke(this, &CameraDeviceDelegateTest::ConfigureFakeStreams));
// CameraBufferFactory::ResolveStreamBufferFormat() is now using
// ::CreateSharedImage() instead of ::CreateGpuMemoryBuffer(). Hence adding
// some expectations here.
EXPECT_CALL(*test_sii_,
DoCreateSharedImage(
_, viz::MultiPlaneFormat::kNV12, gpu::kNullSurfaceHandle,
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE))
.Times(1);
EXPECT_CALL(*test_sii_,
DoCreateSharedImage(
_, viz::SinglePlaneFormat::kR_8, gpu::kNullSurfaceHandle,
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE))
.Times(AtMost(1));
EXPECT_CALL(*test_sii_,
DoCreateSharedImage(
gfx::Size(kJpegMaxBufferSize, 1),
viz::SinglePlaneFormat::kR_8, gpu::kNullSurfaceHandle,
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE))
.Times(AtMost(1));
// Note that ::CreateGpuMemoryBuffer() is currently being used by
// StreamBufferManager.
ON_CALL(mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(_, gfx::BufferFormat::R_8,
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE,
gpu::kNullSurfaceHandle, nullptr))
.WillByDefault(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(
_, gfx::BufferFormat::YUV_420_BIPLANAR,
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
gpu::kNullSurfaceHandle, nullptr))
.Times(1)
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
EXPECT_CALL(
mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(_, gfx::BufferFormat::R_8,
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE,
gpu::kNullSurfaceHandle, nullptr))
.Times(AtMost(1))
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(
gfx::Size(kDefaultWidth, kDefaultHeight),
@ -468,6 +451,14 @@ class CameraDeviceDelegateTest : public ::testing::Test {
.Times(1)
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(
gfx::Size(kJpegMaxBufferSize, 1), gfx::BufferFormat::R_8,
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE,
gpu::kNullSurfaceHandle, nullptr))
.Times(AtMost(1))
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
}
void SetUpExpectationUntilCapturing(
@ -562,7 +553,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
testing::NiceMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
scoped_refptr<gpu::TestSharedImageInterface> test_sii_;
testing::StrictMock<MockCameraDevice> mock_camera_device_;
mojo::Receiver<cros::mojom::Camera3DeviceOps> mock_camera_device_receiver_;

@ -19,10 +19,10 @@
#include "base/task/thread_pool.h"
#include "base/test/bind.h"
#include "base/test/task_environment.h"
#include "components/viz/test/test_context_provider.h"
#include "media/capture/video/chromeos/mock_camera_module.h"
#include "media/capture/video/chromeos/mock_vendor_tag_ops.h"
#include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h"
#include "media/capture/video/mock_gpu_memory_buffer_manager.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "testing/gmock/include/gmock/gmock.h"
@ -50,9 +50,8 @@ class CameraHalDelegateTest : public ::testing::Test {
CameraHalDelegateTest& operator=(const CameraHalDelegateTest&) = delete;
void SetUp() override {
test_sii_ = base::MakeRefCounted<gpu::TestSharedImageInterface>();
test_sii_->UseTestGMBInSharedImageCreationWithBufferUsage();
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(test_sii_);
VideoCaptureDeviceFactoryChromeOS::SetGpuBufferManager(
&mock_gpu_memory_buffer_manager_);
camera_hal_delegate_ = std::make_unique<CameraHalDelegate>(
base::SingleThreadTaskRunner::GetCurrentDefault());
if (!camera_hal_delegate_->Init()) {
@ -65,7 +64,6 @@ class CameraHalDelegateTest : public ::testing::Test {
}
void TearDown() override {
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(nullptr);
camera_hal_delegate_.reset();
task_environment_.RunUntilIdle();
}
@ -80,7 +78,7 @@ class CameraHalDelegateTest : public ::testing::Test {
std::unique_ptr<CameraHalDelegate> camera_hal_delegate_;
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
testing::StrictMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
scoped_refptr<gpu::TestSharedImageInterface> test_sii_;
unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
private:
std::unique_ptr<base::RunLoop> run_loop_;
@ -241,11 +239,14 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
.WillOnce(
Return(static_cast<int32_t>(cros::mojom::EntryType::TYPE_BYTE)));
EXPECT_CALL(*test_sii_,
DoCreateSharedImage(
_, viz::MultiPlaneFormat::kNV12, gpu::kNullSurfaceHandle,
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE))
.Times(1);
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
CreateGpuMemoryBuffer(
_, gfx::BufferFormat::YUV_420_BIPLANAR,
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
gpu::kNullSurfaceHandle, nullptr))
.Times(1)
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
CreateFakeGpuMemoryBuffer));
std::vector<VideoCaptureDeviceInfo> devices_info;
base::RunLoop run_loop;