Commit a1ddaae3 authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate GpuService to the new Mojo types

This CL converts old Mojo types to the new Mojo types
in GpuService interface.

 - Apply pending_receiver to FooRequest arguments.

Additionally, CreateVideoEncodeAcceleratorProvider of
Gpu interface needs to be converted to the new Mojo
type together.

Bug: 955171
Change-Id: I2636edd971d6d7962614204bf81ee0c25fce8edf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792039Reviewed-by: default avatarShik Chen <shik@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarVictor Miura <vmiura@chromium.org>
Reviewed-by: default avatardanakj <danakj@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#695950}
parent 2c23cba9
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "components/chromeos_camera/dmabuf_utils.h" #include "components/chromeos_camera/dmabuf_utils.h"
#include "media/base/bind_to_current_loop.h" #include "media/base/bind_to_current_loop.h"
#include "media/base/video_frame.h" #include "media/base/video_frame.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
#include "ui/gfx/linux/native_pixmap_dmabuf.h" #include "ui/gfx/linux/native_pixmap_dmabuf.h"
...@@ -56,9 +56,11 @@ media::VideoPixelFormat ToVideoPixelFormat(uint32_t fourcc_fmt) { ...@@ -56,9 +56,11 @@ media::VideoPixelFormat ToVideoPixelFormat(uint32_t fourcc_fmt) {
// static // static
void MojoJpegEncodeAcceleratorService::Create( void MojoJpegEncodeAcceleratorService::Create(
chromeos_camera::mojom::JpegEncodeAcceleratorRequest request) { mojo::PendingReceiver<chromeos_camera::mojom::JpegEncodeAccelerator>
receiver) {
auto* jpeg_encoder = new MojoJpegEncodeAcceleratorService(); auto* jpeg_encoder = new MojoJpegEncodeAcceleratorService();
mojo::MakeStrongBinding(base::WrapUnique(jpeg_encoder), std::move(request)); mojo::MakeSelfOwnedReceiver(base::WrapUnique(jpeg_encoder),
std::move(receiver));
} }
MojoJpegEncodeAcceleratorService::MojoJpegEncodeAcceleratorService() MojoJpegEncodeAcceleratorService::MojoJpegEncodeAcceleratorService()
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "components/chromeos_camera/common/jpeg_encode_accelerator.mojom.h" #include "components/chromeos_camera/common/jpeg_encode_accelerator.mojom.h"
#include "components/chromeos_camera/gpu_jpeg_encode_accelerator_factory.h" #include "components/chromeos_camera/gpu_jpeg_encode_accelerator_factory.h"
#include "components/chromeos_camera/jpeg_encode_accelerator.h" #include "components/chromeos_camera/jpeg_encode_accelerator.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chromeos_camera { namespace chromeos_camera {
...@@ -25,7 +26,8 @@ class MojoJpegEncodeAcceleratorService ...@@ -25,7 +26,8 @@ class MojoJpegEncodeAcceleratorService
public JpegEncodeAccelerator::Client { public JpegEncodeAccelerator::Client {
public: public:
static void Create( static void Create(
chromeos_camera::mojom::JpegEncodeAcceleratorRequest request); mojo::PendingReceiver<chromeos_camera::mojom::JpegEncodeAccelerator>
receiver);
~MojoJpegEncodeAcceleratorService() override; ~MojoJpegEncodeAcceleratorService() override;
......
...@@ -175,10 +175,11 @@ void GpuClient::CreateJpegDecodeAccelerator( ...@@ -175,10 +175,11 @@ void GpuClient::CreateJpegDecodeAccelerator(
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void GpuClient::CreateVideoEncodeAcceleratorProvider( void GpuClient::CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) { mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
vea_provider_receiver) {
if (auto* gpu_host = delegate_->EnsureGpuHost()) { if (auto* gpu_host = delegate_->EnsureGpuHost()) {
gpu_host->gpu_service()->CreateVideoEncodeAcceleratorProvider( gpu_host->gpu_service()->CreateVideoEncodeAcceleratorProvider(
std::move(vea_provider_request)); std::move(vea_provider_receiver));
} }
} }
......
...@@ -62,8 +62,8 @@ class VIZ_HOST_EXPORT GpuClient : public mojom::GpuMemoryBufferFactory, ...@@ -62,8 +62,8 @@ class VIZ_HOST_EXPORT GpuClient : public mojom::GpuMemoryBufferFactory,
override; override;
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
override; vea_provider_receiver) override;
private: private:
enum class ErrorReason { enum class ErrorReason {
......
...@@ -89,28 +89,33 @@ class TestGpuService : public mojom::GpuService { ...@@ -89,28 +89,33 @@ class TestGpuService : public mojom::GpuService {
void CloseChannel(int32_t client_id) override {} void CloseChannel(int32_t client_id) override {}
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void CreateArcVideoDecodeAccelerator( void CreateArcVideoDecodeAccelerator(
arc::mojom::VideoDecodeAcceleratorRequest vda_request) override {} mojo::PendingReceiver<arc::mojom::VideoDecodeAccelerator> vda_receiver)
override {}
void CreateArcVideoEncodeAccelerator( void CreateArcVideoEncodeAccelerator(
arc::mojom::VideoEncodeAcceleratorRequest vea_request) override {} mojo::PendingReceiver<arc::mojom::VideoEncodeAccelerator> vea_receiver)
override {}
void CreateArcVideoProtectedBufferAllocator( void CreateArcVideoProtectedBufferAllocator(
arc::mojom::VideoProtectedBufferAllocatorRequest pba_request) override {} mojo::PendingReceiver<arc::mojom::VideoProtectedBufferAllocator>
pba_receiver) override {}
void CreateArcProtectedBufferManager( void CreateArcProtectedBufferManager(
arc::mojom::ProtectedBufferManagerRequest pbm_request) override {} mojo::PendingReceiver<arc::mojom::ProtectedBufferManager> pbm_receiver)
override {}
void CreateJpegDecodeAccelerator( void CreateJpegDecodeAccelerator(
chromeos_camera::mojom::MjpegDecodeAcceleratorRequest jda_request) mojo::PendingReceiver<chromeos_camera::mojom::MjpegDecodeAccelerator>
override {} jda_receiver) override {}
void CreateJpegEncodeAccelerator( void CreateJpegEncodeAccelerator(
chromeos_camera::mojom::JpegEncodeAcceleratorRequest jea_request) mojo::PendingReceiver<chromeos_camera::mojom::JpegEncodeAccelerator>
override {} jea_receiver) override {}
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest request) override {} mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
receiver) override {}
void CreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id, void CreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
const gfx::Size& size, const gfx::Size& size,
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
#include "media/gpu/ipc/service/gpu_video_decode_accelerator.h" #include "media/gpu/ipc/service/gpu_video_decode_accelerator.h"
#include "media/gpu/ipc/service/media_gpu_channel_manager.h" #include "media/gpu/ipc/service/media_gpu_channel_manager.h"
#include "media/mojo/services/mojo_video_encode_accelerator_provider.h" #include "media/mojo/services/mojo_video_encode_accelerator_provider.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "third_party/skia/include/gpu/GrContext.h" #include "third_party/skia/include/gpu/GrContext.h"
#include "third_party/skia/include/gpu/gl/GrGLAssembleInterface.h" #include "third_party/skia/include/gpu/gl/GrGLAssembleInterface.h"
#include "third_party/skia/include/gpu/gl/GrGLInterface.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h"
...@@ -372,102 +372,109 @@ void GpuServiceImpl::RecordLogMessage(int severity, ...@@ -372,102 +372,109 @@ void GpuServiceImpl::RecordLogMessage(int severity,
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void GpuServiceImpl::CreateArcVideoDecodeAccelerator( void GpuServiceImpl::CreateArcVideoDecodeAccelerator(
arc::mojom::VideoDecodeAcceleratorRequest vda_request) { mojo::PendingReceiver<arc::mojom::VideoDecodeAccelerator> vda_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
main_runner_->PostTask( main_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
&GpuServiceImpl::CreateArcVideoDecodeAcceleratorOnMainThread, &GpuServiceImpl::CreateArcVideoDecodeAcceleratorOnMainThread,
weak_ptr_, std::move(vda_request))); weak_ptr_, std::move(vda_receiver)));
} }
void GpuServiceImpl::CreateArcVideoEncodeAccelerator( void GpuServiceImpl::CreateArcVideoEncodeAccelerator(
arc::mojom::VideoEncodeAcceleratorRequest vea_request) { mojo::PendingReceiver<arc::mojom::VideoEncodeAccelerator> vea_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
main_runner_->PostTask( main_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
&GpuServiceImpl::CreateArcVideoEncodeAcceleratorOnMainThread, &GpuServiceImpl::CreateArcVideoEncodeAcceleratorOnMainThread,
weak_ptr_, std::move(vea_request))); weak_ptr_, std::move(vea_receiver)));
} }
void GpuServiceImpl::CreateArcVideoProtectedBufferAllocator( void GpuServiceImpl::CreateArcVideoProtectedBufferAllocator(
arc::mojom::VideoProtectedBufferAllocatorRequest pba_request) { mojo::PendingReceiver<arc::mojom::VideoProtectedBufferAllocator>
pba_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
main_runner_->PostTask( main_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
&GpuServiceImpl::CreateArcVideoProtectedBufferAllocatorOnMainThread, &GpuServiceImpl::CreateArcVideoProtectedBufferAllocatorOnMainThread,
weak_ptr_, std::move(pba_request))); weak_ptr_, std::move(pba_receiver)));
} }
void GpuServiceImpl::CreateArcProtectedBufferManager( void GpuServiceImpl::CreateArcProtectedBufferManager(
arc::mojom::ProtectedBufferManagerRequest pbm_request) { mojo::PendingReceiver<arc::mojom::ProtectedBufferManager> pbm_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
main_runner_->PostTask( main_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
&GpuServiceImpl::CreateArcProtectedBufferManagerOnMainThread, &GpuServiceImpl::CreateArcProtectedBufferManagerOnMainThread,
weak_ptr_, std::move(pbm_request))); weak_ptr_, std::move(pbm_receiver)));
} }
void GpuServiceImpl::CreateArcVideoDecodeAcceleratorOnMainThread( void GpuServiceImpl::CreateArcVideoDecodeAcceleratorOnMainThread(
arc::mojom::VideoDecodeAcceleratorRequest vda_request) { mojo::PendingReceiver<arc::mojom::VideoDecodeAccelerator> vda_receiver) {
DCHECK(main_runner_->BelongsToCurrentThread()); DCHECK(main_runner_->BelongsToCurrentThread());
mojo::MakeStrongBinding(std::make_unique<arc::GpuArcVideoDecodeAccelerator>( mojo::MakeSelfOwnedReceiver(
gpu_preferences_, protected_buffer_manager_), std::make_unique<arc::GpuArcVideoDecodeAccelerator>(
std::move(vda_request)); gpu_preferences_, protected_buffer_manager_),
std::move(vda_receiver));
} }
void GpuServiceImpl::CreateArcVideoEncodeAcceleratorOnMainThread( void GpuServiceImpl::CreateArcVideoEncodeAcceleratorOnMainThread(
arc::mojom::VideoEncodeAcceleratorRequest vea_request) { mojo::PendingReceiver<arc::mojom::VideoEncodeAccelerator> vea_receiver) {
DCHECK(main_runner_->BelongsToCurrentThread()); DCHECK(main_runner_->BelongsToCurrentThread());
mojo::MakeStrongBinding( mojo::MakeSelfOwnedReceiver(
std::make_unique<arc::GpuArcVideoEncodeAccelerator>(gpu_preferences_), std::make_unique<arc::GpuArcVideoEncodeAccelerator>(gpu_preferences_),
std::move(vea_request)); std::move(vea_receiver));
} }
void GpuServiceImpl::CreateArcVideoProtectedBufferAllocatorOnMainThread( void GpuServiceImpl::CreateArcVideoProtectedBufferAllocatorOnMainThread(
arc::mojom::VideoProtectedBufferAllocatorRequest pba_request) { mojo::PendingReceiver<arc::mojom::VideoProtectedBufferAllocator>
pba_receiver) {
DCHECK(main_runner_->BelongsToCurrentThread()); DCHECK(main_runner_->BelongsToCurrentThread());
auto gpu_arc_video_protected_buffer_allocator = auto gpu_arc_video_protected_buffer_allocator =
arc::GpuArcVideoProtectedBufferAllocator::Create( arc::GpuArcVideoProtectedBufferAllocator::Create(
protected_buffer_manager_); protected_buffer_manager_);
if (!gpu_arc_video_protected_buffer_allocator) if (!gpu_arc_video_protected_buffer_allocator)
return; return;
mojo::MakeStrongBinding(std::move(gpu_arc_video_protected_buffer_allocator), mojo::MakeSelfOwnedReceiver(
std::move(pba_request)); std::move(gpu_arc_video_protected_buffer_allocator),
std::move(pba_receiver));
} }
void GpuServiceImpl::CreateArcProtectedBufferManagerOnMainThread( void GpuServiceImpl::CreateArcProtectedBufferManagerOnMainThread(
arc::mojom::ProtectedBufferManagerRequest pbm_request) { mojo::PendingReceiver<arc::mojom::ProtectedBufferManager> pbm_receiver) {
DCHECK(main_runner_->BelongsToCurrentThread()); DCHECK(main_runner_->BelongsToCurrentThread());
mojo::MakeStrongBinding( mojo::MakeSelfOwnedReceiver(
std::make_unique<arc::GpuArcProtectedBufferManagerProxy>( std::make_unique<arc::GpuArcProtectedBufferManagerProxy>(
protected_buffer_manager_), protected_buffer_manager_),
std::move(pbm_request)); std::move(pbm_receiver));
} }
void GpuServiceImpl::CreateJpegDecodeAccelerator( void GpuServiceImpl::CreateJpegDecodeAccelerator(
chromeos_camera::mojom::MjpegDecodeAcceleratorRequest jda_request) { mojo::PendingReceiver<chromeos_camera::mojom::MjpegDecodeAccelerator>
jda_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
chromeos_camera::MojoMjpegDecodeAcceleratorService::Create( chromeos_camera::MojoMjpegDecodeAcceleratorService::Create(
std::move(jda_request)); std::move(jda_receiver));
} }
void GpuServiceImpl::CreateJpegEncodeAccelerator( void GpuServiceImpl::CreateJpegEncodeAccelerator(
chromeos_camera::mojom::JpegEncodeAcceleratorRequest jea_request) { mojo::PendingReceiver<chromeos_camera::mojom::JpegEncodeAccelerator>
jea_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
chromeos_camera::MojoJpegEncodeAcceleratorService::Create( chromeos_camera::MojoJpegEncodeAcceleratorService::Create(
std::move(jea_request)); std::move(jea_receiver));
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void GpuServiceImpl::CreateVideoEncodeAcceleratorProvider( void GpuServiceImpl::CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) { mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
vea_provider_receiver) {
DCHECK(io_runner_->BelongsToCurrentThread()); DCHECK(io_runner_->BelongsToCurrentThread());
media::MojoVideoEncodeAcceleratorProvider::Create( media::MojoVideoEncodeAcceleratorProvider::Create(
std::move(vea_provider_request), std::move(vea_provider_receiver),
base::BindRepeating(&media::GpuVideoEncodeAcceleratorFactory::CreateVEA), base::BindRepeating(&media::GpuVideoEncodeAcceleratorFactory::CreateVEA),
gpu_preferences_); gpu_preferences_);
} }
......
...@@ -117,24 +117,28 @@ class VIZ_SERVICE_EXPORT GpuServiceImpl : public gpu::GpuChannelManagerDelegate, ...@@ -117,24 +117,28 @@ class VIZ_SERVICE_EXPORT GpuServiceImpl : public gpu::GpuChannelManagerDelegate,
void CloseChannel(int32_t client_id) override; void CloseChannel(int32_t client_id) override;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void CreateArcVideoDecodeAccelerator( void CreateArcVideoDecodeAccelerator(
arc::mojom::VideoDecodeAcceleratorRequest vda_request) override; mojo::PendingReceiver<arc::mojom::VideoDecodeAccelerator> vda_receiver)
override;
void CreateArcVideoEncodeAccelerator( void CreateArcVideoEncodeAccelerator(
arc::mojom::VideoEncodeAcceleratorRequest vea_request) override; mojo::PendingReceiver<arc::mojom::VideoEncodeAccelerator> vea_receiver)
override;
void CreateArcVideoProtectedBufferAllocator( void CreateArcVideoProtectedBufferAllocator(
arc::mojom::VideoProtectedBufferAllocatorRequest pba_request) override; mojo::PendingReceiver<arc::mojom::VideoProtectedBufferAllocator>
pba_receiver) override;
void CreateArcProtectedBufferManager( void CreateArcProtectedBufferManager(
arc::mojom::ProtectedBufferManagerRequest pbm_request) override; mojo::PendingReceiver<arc::mojom::ProtectedBufferManager> pbm_receiver)
void CreateJpegDecodeAccelerator(
chromeos_camera::mojom::MjpegDecodeAcceleratorRequest jda_request)
override; override;
void CreateJpegDecodeAccelerator(
mojo::PendingReceiver<chromeos_camera::mojom::MjpegDecodeAccelerator>
jda_receiver) override;
void CreateJpegEncodeAccelerator( void CreateJpegEncodeAccelerator(
chromeos_camera::mojom::JpegEncodeAcceleratorRequest jea_request) mojo::PendingReceiver<chromeos_camera::mojom::JpegEncodeAccelerator>
override; jea_receiver) override;
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
override; vea_provider_receiver) override;
void CreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id, void CreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
const gfx::Size& size, const gfx::Size& size,
gfx::BufferFormat format, gfx::BufferFormat format,
...@@ -266,13 +270,14 @@ class VIZ_SERVICE_EXPORT GpuServiceImpl : public gpu::GpuChannelManagerDelegate, ...@@ -266,13 +270,14 @@ class VIZ_SERVICE_EXPORT GpuServiceImpl : public gpu::GpuChannelManagerDelegate,
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void CreateArcVideoDecodeAcceleratorOnMainThread( void CreateArcVideoDecodeAcceleratorOnMainThread(
arc::mojom::VideoDecodeAcceleratorRequest vda_request); mojo::PendingReceiver<arc::mojom::VideoDecodeAccelerator> vda_receiver);
void CreateArcVideoEncodeAcceleratorOnMainThread( void CreateArcVideoEncodeAcceleratorOnMainThread(
arc::mojom::VideoEncodeAcceleratorRequest vea_request); mojo::PendingReceiver<arc::mojom::VideoEncodeAccelerator> vea_receiver);
void CreateArcVideoProtectedBufferAllocatorOnMainThread( void CreateArcVideoProtectedBufferAllocatorOnMainThread(
arc::mojom::VideoProtectedBufferAllocatorRequest pba_request); mojo::PendingReceiver<arc::mojom::VideoProtectedBufferAllocator>
pba_receiver);
void CreateArcProtectedBufferManagerOnMainThread( void CreateArcProtectedBufferManagerOnMainThread(
arc::mojom::ProtectedBufferManagerRequest pbm_request); mojo::PendingReceiver<arc::mojom::ProtectedBufferManager> pbm_receiver);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void RequestHDRStatusOnMainThread(RequestHDRStatusCallback callback); void RequestHDRStatusOnMainThread(RequestHDRStatusCallback callback);
......
...@@ -10,20 +10,21 @@ ...@@ -10,20 +10,21 @@
#include "base/logging.h" #include "base/logging.h"
#include "media/base/bind_to_current_loop.h" #include "media/base/bind_to_current_loop.h"
#include "media/base/limits.h" #include "media/base/limits.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"
namespace media { namespace media {
// static // static
void MojoVideoEncodeAcceleratorProvider::Create( void MojoVideoEncodeAcceleratorProvider::Create(
mojom::VideoEncodeAcceleratorProviderRequest request, mojo::PendingReceiver<mojom::VideoEncodeAcceleratorProvider> receiver,
const CreateAndInitializeVideoEncodeAcceleratorCallback& const CreateAndInitializeVideoEncodeAcceleratorCallback&
create_vea_callback, create_vea_callback,
const gpu::GpuPreferences& gpu_preferences) { const gpu::GpuPreferences& gpu_preferences) {
mojo::MakeStrongBinding(std::make_unique<MojoVideoEncodeAcceleratorProvider>( mojo::MakeSelfOwnedReceiver(
create_vea_callback, gpu_preferences), std::make_unique<MojoVideoEncodeAcceleratorProvider>(create_vea_callback,
std::move(request)); gpu_preferences),
std::move(receiver));
} }
MojoVideoEncodeAcceleratorProvider::MojoVideoEncodeAcceleratorProvider( MojoVideoEncodeAcceleratorProvider::MojoVideoEncodeAcceleratorProvider(
......
...@@ -26,10 +26,11 @@ class MEDIA_MOJO_EXPORT MojoVideoEncodeAcceleratorProvider ...@@ -26,10 +26,11 @@ class MEDIA_MOJO_EXPORT MojoVideoEncodeAcceleratorProvider
MojoVideoEncodeAcceleratorService:: MojoVideoEncodeAcceleratorService::
CreateAndInitializeVideoEncodeAcceleratorCallback; CreateAndInitializeVideoEncodeAcceleratorCallback;
static void Create(mojom::VideoEncodeAcceleratorProviderRequest request, static void Create(
const CreateAndInitializeVideoEncodeAcceleratorCallback& mojo::PendingReceiver<mojom::VideoEncodeAcceleratorProvider> receiver,
create_vea_callback, const CreateAndInitializeVideoEncodeAcceleratorCallback&
const gpu::GpuPreferences& gpu_preferences); create_vea_callback,
const gpu::GpuPreferences& gpu_preferences);
MojoVideoEncodeAcceleratorProvider( MojoVideoEncodeAcceleratorProvider(
const CreateAndInitializeVideoEncodeAcceleratorCallback& const CreateAndInitializeVideoEncodeAcceleratorCallback&
......
...@@ -40,33 +40,38 @@ interface GpuService { ...@@ -40,33 +40,38 @@ interface GpuService {
// Create a new ARC VideoDecodeAccelerator and binds it to |vda|. // Create a new ARC VideoDecodeAccelerator and binds it to |vda|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateArcVideoDecodeAccelerator(arc.mojom.VideoDecodeAccelerator& vda); CreateArcVideoDecodeAccelerator(
pending_receiver<arc.mojom.VideoDecodeAccelerator> vda);
// Create a new ARC VideoEncodeAccelerator and binds it to |vea|. // Create a new ARC VideoEncodeAccelerator and binds it to |vea|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateArcVideoEncodeAccelerator(arc.mojom.VideoEncodeAccelerator& vea); CreateArcVideoEncodeAccelerator(
pending_receiver<arc.mojom.VideoEncodeAccelerator> vea);
// Create a new ARC VideoProtectedBufferAllocator and binds it to |pba|. // Create a new ARC VideoProtectedBufferAllocator and binds it to |pba|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateArcVideoProtectedBufferAllocator( CreateArcVideoProtectedBufferAllocator(
arc.mojom.VideoProtectedBufferAllocator& pba); pending_receiver<arc.mojom.VideoProtectedBufferAllocator> pba);
// Create a new ARC ProtectedBufferManager and binds it to |pbm|. // Create a new ARC ProtectedBufferManager and binds it to |pbm|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateArcProtectedBufferManager(arc.mojom.ProtectedBufferManager& pbm); CreateArcProtectedBufferManager(
pending_receiver<arc.mojom.ProtectedBufferManager> pbm);
// Creates a new MjpegDecodeAccelerator and binds it to |jda|. // Creates a new MjpegDecodeAccelerator and binds it to |jda|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateJpegDecodeAccelerator( CreateJpegDecodeAccelerator(
chromeos_camera.mojom.MjpegDecodeAccelerator& jda); pending_receiver<chromeos_camera.mojom.MjpegDecodeAccelerator> jda);
// Creates a new JpegEncodeAccelerator and binds it to |jea|. // Creates a new JpegEncodeAccelerator and binds it to |jea|.
[EnableIf=is_chromeos] [EnableIf=is_chromeos]
CreateJpegEncodeAccelerator(chromeos_camera.mojom.JpegEncodeAccelerator& jea); CreateJpegEncodeAccelerator(
pending_receiver<chromeos_camera.mojom.JpegEncodeAccelerator> jea);
// Creates a VideoEncodeAcceleratorProvider and binds it to |vea_provider|. // Creates a VideoEncodeAcceleratorProvider and binds it to |vea_provider|.
CreateVideoEncodeAcceleratorProvider( CreateVideoEncodeAcceleratorProvider(
media.mojom.VideoEncodeAcceleratorProvider& vea_provider); pending_receiver<media.mojom.VideoEncodeAcceleratorProvider>
vea_provider);
CreateGpuMemoryBuffer(gfx.mojom.GpuMemoryBufferId id, CreateGpuMemoryBuffer(gfx.mojom.GpuMemoryBufferId id,
gfx.mojom.Size size, gfx.mojom.Size size,
......
...@@ -64,9 +64,10 @@ class Gpu::GpuPtrIO { ...@@ -64,9 +64,10 @@ class Gpu::GpuPtrIO {
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest request) { mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
receiver) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
gpu_ptr_->CreateVideoEncodeAcceleratorProvider(std::move(request)); gpu_ptr_->CreateVideoEncodeAcceleratorProvider(std::move(receiver));
} }
private: private:
...@@ -296,12 +297,13 @@ void Gpu::CreateJpegDecodeAccelerator( ...@@ -296,12 +297,13 @@ void Gpu::CreateJpegDecodeAccelerator(
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void Gpu::CreateVideoEncodeAcceleratorProvider( void Gpu::CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) { mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
vea_provider_receiver) {
DCHECK(main_task_runner_->BelongsToCurrentThread()); DCHECK(main_task_runner_->BelongsToCurrentThread());
io_task_runner_->PostTask( io_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&GpuPtrIO::CreateVideoEncodeAcceleratorProvider, FROM_HERE, base::BindOnce(&GpuPtrIO::CreateVideoEncodeAcceleratorProvider,
base::Unretained(gpu_.get()), base::Unretained(gpu_.get()),
std::move(vea_provider_request))); std::move(vea_provider_receiver)));
} }
void Gpu::EstablishGpuChannel(gpu::GpuChannelEstablishedCallback callback) { void Gpu::EstablishGpuChannel(gpu::GpuChannelEstablishedCallback callback) {
......
...@@ -46,7 +46,8 @@ class Gpu : public gpu::GpuChannelEstablishFactory { ...@@ -46,7 +46,8 @@ class Gpu : public gpu::GpuChannelEstablishFactory {
chromeos_camera::mojom::MjpegDecodeAcceleratorRequest jda_request); chromeos_camera::mojom::MjpegDecodeAcceleratorRequest jda_request);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request); mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
vea_provider_receiver);
// gpu::GpuChannelEstablishFactory: // gpu::GpuChannelEstablishFactory:
void EstablishGpuChannel( void EstablishGpuChannel(
......
...@@ -65,7 +65,8 @@ class TestGpuImpl : public mojom::Gpu { ...@@ -65,7 +65,8 @@ class TestGpuImpl : public mojom::Gpu {
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void CreateVideoEncodeAcceleratorProvider( void CreateVideoEncodeAcceleratorProvider(
media::mojom::VideoEncodeAcceleratorProviderRequest request) override {} mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProvider>
receiver) override {}
private: private:
bool request_will_succeed_ = true; bool request_will_succeed_ = true;
......
...@@ -48,5 +48,6 @@ interface Gpu { ...@@ -48,5 +48,6 @@ interface Gpu {
// Creates a VideoEncodeAcceleratorProvider and binds it to |vea_provider|. // Creates a VideoEncodeAcceleratorProvider and binds it to |vea_provider|.
CreateVideoEncodeAcceleratorProvider( CreateVideoEncodeAcceleratorProvider(
media.mojom.VideoEncodeAcceleratorProvider& vea_provider); pending_receiver<media.mojom.VideoEncodeAcceleratorProvider>
vea_provider);
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment