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:

committed by
Chromium LUCI CQ

parent
2b15c55869
commit
d13c604016
media/capture
@ -488,7 +488,6 @@ test("capture_unittests") {
|
|||||||
":test_support",
|
":test_support",
|
||||||
"//base/test:test_support",
|
"//base/test:test_support",
|
||||||
"//build:chromeos_buildflags",
|
"//build:chromeos_buildflags",
|
||||||
"//components/viz/test:test_support",
|
|
||||||
"//gpu:test_support",
|
"//gpu:test_support",
|
||||||
"//gpu/command_buffer/client",
|
"//gpu/command_buffer/client",
|
||||||
"//media:test_support",
|
"//media:test_support",
|
||||||
|
@ -8,12 +8,3 @@ include_rules = [
|
|||||||
"+third_party/cros_system_api",
|
"+third_party/cros_system_api",
|
||||||
"+third_party/libsync",
|
"+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;
|
return kUnsupportedFormat;
|
||||||
}
|
}
|
||||||
for (const auto& f : cr_formats) {
|
for (const auto& f : cr_formats) {
|
||||||
auto shared_image = CreateSharedImage(
|
auto buffer = CreateGpuMemoryBuffer(
|
||||||
gfx::Size(kDummyBufferWidth, kDummyBufferHeight), f.gfx_format, usage);
|
gfx::Size(kDummyBufferWidth, kDummyBufferHeight), f.gfx_format, usage);
|
||||||
if (shared_image) {
|
if (buffer) {
|
||||||
resolved_format_usages_[key] = f;
|
resolved_format_usages_[key] = f;
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include "base/test/bind.h"
|
#include "base/test/bind.h"
|
||||||
#include "base/test/task_environment.h"
|
#include "base/test/task_environment.h"
|
||||||
#include "base/time/time.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_buffer_factory.h"
|
||||||
#include "media/capture/video/chromeos/camera_device_context.h"
|
#include "media/capture/video/chromeos/camera_device_context.h"
|
||||||
#include "media/capture/video/chromeos/camera_hal_delegate.h"
|
#include "media/capture/video/chromeos/camera_hal_delegate.h"
|
||||||
@ -170,9 +169,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
|
|||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
VideoCaptureDeviceFactoryChromeOS::SetGpuBufferManager(
|
VideoCaptureDeviceFactoryChromeOS::SetGpuBufferManager(
|
||||||
&mock_gpu_memory_buffer_manager_);
|
&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_);
|
camera_hal_delegate_ = std::make_unique<CameraHalDelegate>(ui_task_runner_);
|
||||||
if (!camera_hal_delegate_->Init()) {
|
if (!camera_hal_delegate_->Init()) {
|
||||||
LOG(ERROR) << "Failed to initialize CameraHalDelegate";
|
LOG(ERROR) << "Failed to initialize CameraHalDelegate";
|
||||||
@ -187,7 +183,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TearDown() override {
|
void TearDown() override {
|
||||||
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(nullptr);
|
|
||||||
camera_device_delegate_.reset();
|
camera_device_delegate_.reset();
|
||||||
camera_hal_delegate_.reset();
|
camera_hal_delegate_.reset();
|
||||||
task_environment_.RunUntilIdle();
|
task_environment_.RunUntilIdle();
|
||||||
@ -431,34 +426,22 @@ class CameraDeviceDelegateTest : public ::testing::Test {
|
|||||||
.WillOnce(
|
.WillOnce(
|
||||||
Invoke(this, &CameraDeviceDelegateTest::ConfigureFakeStreams));
|
Invoke(this, &CameraDeviceDelegateTest::ConfigureFakeStreams));
|
||||||
|
|
||||||
// CameraBufferFactory::ResolveStreamBufferFormat() is now using
|
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
|
||||||
// ::CreateSharedImage() instead of ::CreateGpuMemoryBuffer(). Hence adding
|
CreateGpuMemoryBuffer(
|
||||||
// some expectations here.
|
_, gfx::BufferFormat::YUV_420_BIPLANAR,
|
||||||
EXPECT_CALL(*test_sii_,
|
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
|
||||||
DoCreateSharedImage(
|
gpu::kNullSurfaceHandle, nullptr))
|
||||||
_, viz::MultiPlaneFormat::kNV12, gpu::kNullSurfaceHandle,
|
.Times(1)
|
||||||
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE))
|
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
|
||||||
.Times(1);
|
CreateFakeGpuMemoryBuffer));
|
||||||
EXPECT_CALL(*test_sii_,
|
EXPECT_CALL(
|
||||||
DoCreateSharedImage(
|
mock_gpu_memory_buffer_manager_,
|
||||||
_, viz::SinglePlaneFormat::kR_8, gpu::kNullSurfaceHandle,
|
CreateGpuMemoryBuffer(_, gfx::BufferFormat::R_8,
|
||||||
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE))
|
gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE,
|
||||||
.Times(AtMost(1));
|
gpu::kNullSurfaceHandle, nullptr))
|
||||||
EXPECT_CALL(*test_sii_,
|
.Times(AtMost(1))
|
||||||
DoCreateSharedImage(
|
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
|
||||||
gfx::Size(kJpegMaxBufferSize, 1),
|
CreateFakeGpuMemoryBuffer));
|
||||||
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_,
|
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
|
||||||
CreateGpuMemoryBuffer(
|
CreateGpuMemoryBuffer(
|
||||||
gfx::Size(kDefaultWidth, kDefaultHeight),
|
gfx::Size(kDefaultWidth, kDefaultHeight),
|
||||||
@ -468,6 +451,14 @@ class CameraDeviceDelegateTest : public ::testing::Test {
|
|||||||
.Times(1)
|
.Times(1)
|
||||||
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
|
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
|
||||||
CreateFakeGpuMemoryBuffer));
|
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(
|
void SetUpExpectationUntilCapturing(
|
||||||
@ -562,7 +553,6 @@ class CameraDeviceDelegateTest : public ::testing::Test {
|
|||||||
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
|
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
|
||||||
testing::NiceMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
|
testing::NiceMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
|
||||||
unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
|
unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
|
||||||
scoped_refptr<gpu::TestSharedImageInterface> test_sii_;
|
|
||||||
|
|
||||||
testing::StrictMock<MockCameraDevice> mock_camera_device_;
|
testing::StrictMock<MockCameraDevice> mock_camera_device_;
|
||||||
mojo::Receiver<cros::mojom::Camera3DeviceOps> mock_camera_device_receiver_;
|
mojo::Receiver<cros::mojom::Camera3DeviceOps> mock_camera_device_receiver_;
|
||||||
|
@ -19,10 +19,10 @@
|
|||||||
#include "base/task/thread_pool.h"
|
#include "base/task/thread_pool.h"
|
||||||
#include "base/test/bind.h"
|
#include "base/test/bind.h"
|
||||||
#include "base/test/task_environment.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_camera_module.h"
|
||||||
#include "media/capture/video/chromeos/mock_vendor_tag_ops.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/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_receiver.h"
|
||||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||||
#include "testing/gmock/include/gmock/gmock.h"
|
#include "testing/gmock/include/gmock/gmock.h"
|
||||||
@ -50,9 +50,8 @@ class CameraHalDelegateTest : public ::testing::Test {
|
|||||||
CameraHalDelegateTest& operator=(const CameraHalDelegateTest&) = delete;
|
CameraHalDelegateTest& operator=(const CameraHalDelegateTest&) = delete;
|
||||||
|
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
test_sii_ = base::MakeRefCounted<gpu::TestSharedImageInterface>();
|
VideoCaptureDeviceFactoryChromeOS::SetGpuBufferManager(
|
||||||
test_sii_->UseTestGMBInSharedImageCreationWithBufferUsage();
|
&mock_gpu_memory_buffer_manager_);
|
||||||
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(test_sii_);
|
|
||||||
camera_hal_delegate_ = std::make_unique<CameraHalDelegate>(
|
camera_hal_delegate_ = std::make_unique<CameraHalDelegate>(
|
||||||
base::SingleThreadTaskRunner::GetCurrentDefault());
|
base::SingleThreadTaskRunner::GetCurrentDefault());
|
||||||
if (!camera_hal_delegate_->Init()) {
|
if (!camera_hal_delegate_->Init()) {
|
||||||
@ -65,7 +64,6 @@ class CameraHalDelegateTest : public ::testing::Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TearDown() override {
|
void TearDown() override {
|
||||||
VideoCaptureDeviceFactoryChromeOS::SetSharedImageInterface(nullptr);
|
|
||||||
camera_hal_delegate_.reset();
|
camera_hal_delegate_.reset();
|
||||||
task_environment_.RunUntilIdle();
|
task_environment_.RunUntilIdle();
|
||||||
}
|
}
|
||||||
@ -80,7 +78,7 @@ class CameraHalDelegateTest : public ::testing::Test {
|
|||||||
std::unique_ptr<CameraHalDelegate> camera_hal_delegate_;
|
std::unique_ptr<CameraHalDelegate> camera_hal_delegate_;
|
||||||
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
|
testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
|
||||||
testing::StrictMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
|
testing::StrictMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
|
||||||
scoped_refptr<gpu::TestSharedImageInterface> test_sii_;
|
unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<base::RunLoop> run_loop_;
|
std::unique_ptr<base::RunLoop> run_loop_;
|
||||||
@ -241,11 +239,14 @@ TEST_F(CameraHalDelegateTest, GetBuiltinCameraInfo) {
|
|||||||
.WillOnce(
|
.WillOnce(
|
||||||
Return(static_cast<int32_t>(cros::mojom::EntryType::TYPE_BYTE)));
|
Return(static_cast<int32_t>(cros::mojom::EntryType::TYPE_BYTE)));
|
||||||
|
|
||||||
EXPECT_CALL(*test_sii_,
|
EXPECT_CALL(mock_gpu_memory_buffer_manager_,
|
||||||
DoCreateSharedImage(
|
CreateGpuMemoryBuffer(
|
||||||
_, viz::MultiPlaneFormat::kNV12, gpu::kNullSurfaceHandle,
|
_, gfx::BufferFormat::YUV_420_BIPLANAR,
|
||||||
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE))
|
gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
|
||||||
.Times(1);
|
gpu::kNullSurfaceHandle, nullptr))
|
||||||
|
.Times(1)
|
||||||
|
.WillOnce(Invoke(&unittest_internal::MockGpuMemoryBufferManager::
|
||||||
|
CreateFakeGpuMemoryBuffer));
|
||||||
|
|
||||||
std::vector<VideoCaptureDeviceInfo> devices_info;
|
std::vector<VideoCaptureDeviceInfo> devices_info;
|
||||||
base::RunLoop run_loop;
|
base::RunLoop run_loop;
|
||||||
|
Reference in New Issue
Block a user