Commit ae2c4ab8 authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert AudioDecoder to new Mojo types

This CL converts AudioDecoder{Ptr, Request} in media and content
to the new Mojo type, and uses pending_receiver<AudioDecoder> in
interface_factory.mojom.

Bug: 955171
Change-Id: I6a5cdc5a6c7c41be286baa8cd7235cb6adf33e41
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1864787Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#706807}
parent 0e4161fc
...@@ -149,11 +149,11 @@ MediaInterfaceProxy::~MediaInterfaceProxy() { ...@@ -149,11 +149,11 @@ MediaInterfaceProxy::~MediaInterfaceProxy() {
} }
void MediaInterfaceProxy::CreateAudioDecoder( void MediaInterfaceProxy::CreateAudioDecoder(
media::mojom::AudioDecoderRequest request) { mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
InterfaceFactory* factory = media_interface_factory_ptr_->Get(); InterfaceFactory* factory = media_interface_factory_ptr_->Get();
if (factory) if (factory)
factory->CreateAudioDecoder(std::move(request)); factory->CreateAudioDecoder(std::move(receiver));
} }
void MediaInterfaceProxy::CreateVideoDecoder( void MediaInterfaceProxy::CreateVideoDecoder(
......
...@@ -49,7 +49,8 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory { ...@@ -49,7 +49,8 @@ class MediaInterfaceProxy : public media::mojom::InterfaceFactory {
~MediaInterfaceProxy() final; ~MediaInterfaceProxy() final;
// media::mojom::InterfaceFactory implementation. // media::mojom::InterfaceFactory implementation.
void CreateAudioDecoder(media::mojom::AudioDecoderRequest request) final; void CreateAudioDecoder(
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final; void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(const std::string& audio_device_id,
media::mojom::RendererRequest request) final; media::mojom::RendererRequest request) final;
......
...@@ -31,7 +31,7 @@ void VideoDecoderProxy::Add(media::mojom::InterfaceFactoryRequest request) { ...@@ -31,7 +31,7 @@ void VideoDecoderProxy::Add(media::mojom::InterfaceFactoryRequest request) {
} }
void VideoDecoderProxy::CreateAudioDecoder( void VideoDecoderProxy::CreateAudioDecoder(
media::mojom::AudioDecoderRequest request) {} mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) {}
void VideoDecoderProxy::CreateVideoDecoder( void VideoDecoderProxy::CreateVideoDecoder(
media::mojom::VideoDecoderRequest request) { media::mojom::VideoDecoderRequest request) {
......
...@@ -30,7 +30,8 @@ class VideoDecoderProxy : public media::mojom::InterfaceFactory { ...@@ -30,7 +30,8 @@ class VideoDecoderProxy : public media::mojom::InterfaceFactory {
void Add(media::mojom::InterfaceFactoryRequest request); void Add(media::mojom::InterfaceFactoryRequest request);
// media::mojom::InterfaceFactory implementation. // media::mojom::InterfaceFactory implementation.
void CreateAudioDecoder(media::mojom::AudioDecoderRequest request) final; void CreateAudioDecoder(
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final; void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(const std::string& audio_device_id,
media::mojom::RendererRequest request) final; media::mojom::RendererRequest request) final;
......
...@@ -27,16 +27,16 @@ MediaInterfaceFactory::~MediaInterfaceFactory() { ...@@ -27,16 +27,16 @@ MediaInterfaceFactory::~MediaInterfaceFactory() {
} }
void MediaInterfaceFactory::CreateAudioDecoder( void MediaInterfaceFactory::CreateAudioDecoder(
media::mojom::AudioDecoderRequest request) { mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) {
if (!task_runner_->BelongsToCurrentThread()) { if (!task_runner_->BelongsToCurrentThread()) {
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, base::BindOnce(&MediaInterfaceFactory::CreateAudioDecoder, FROM_HERE, base::BindOnce(&MediaInterfaceFactory::CreateAudioDecoder,
weak_this_, std::move(request))); weak_this_, std::move(receiver)));
return; return;
} }
DVLOG(1) << __func__; DVLOG(1) << __func__;
GetMediaInterfaceFactory()->CreateAudioDecoder(std::move(request)); GetMediaInterfaceFactory()->CreateAudioDecoder(std::move(receiver));
} }
void MediaInterfaceFactory::CreateVideoDecoder( void MediaInterfaceFactory::CreateVideoDecoder(
......
...@@ -34,7 +34,8 @@ class CONTENT_EXPORT MediaInterfaceFactory ...@@ -34,7 +34,8 @@ class CONTENT_EXPORT MediaInterfaceFactory
~MediaInterfaceFactory() final; ~MediaInterfaceFactory() final;
// media::mojom::InterfaceFactory implementation. // media::mojom::InterfaceFactory implementation.
void CreateAudioDecoder(media::mojom::AudioDecoderRequest request) final; void CreateAudioDecoder(
mojo::PendingReceiver<media::mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final; void CreateVideoDecoder(media::mojom::VideoDecoderRequest request) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(const std::string& audio_device_id,
media::mojom::RendererRequest request) final; media::mojom::RendererRequest request) final;
......
...@@ -21,9 +21,9 @@ namespace media { ...@@ -21,9 +21,9 @@ namespace media {
MojoAudioDecoder::MojoAudioDecoder( MojoAudioDecoder::MojoAudioDecoder(
scoped_refptr<base::SingleThreadTaskRunner> task_runner, scoped_refptr<base::SingleThreadTaskRunner> task_runner,
mojom::AudioDecoderPtr remote_decoder) mojo::PendingRemote<mojom::AudioDecoder> remote_decoder)
: task_runner_(task_runner), : task_runner_(task_runner),
remote_decoder_info_(remote_decoder.PassInterface()), pending_remote_decoder_(std::move(remote_decoder)),
writer_capacity_( writer_capacity_(
GetDefaultDecoderBufferConverterCapacity(DemuxerStream::AUDIO)), GetDefaultDecoderBufferConverterCapacity(DemuxerStream::AUDIO)),
client_binding_(this) { client_binding_(this) {
...@@ -54,7 +54,7 @@ void MojoAudioDecoder::Initialize(const AudioDecoderConfig& config, ...@@ -54,7 +54,7 @@ void MojoAudioDecoder::Initialize(const AudioDecoderConfig& config,
BindRemoteDecoder(); BindRemoteDecoder();
// This could happen during reinitialization. // This could happen during reinitialization.
if (remote_decoder_.encountered_error()) { if (!remote_decoder_.is_connected()) {
DVLOG(1) << __func__ << ": Connection error happened."; DVLOG(1) << __func__ << ": Connection error happened.";
task_runner_->PostTask(FROM_HERE, task_runner_->PostTask(FROM_HERE,
base::BindOnce(std::move(init_cb), false)); base::BindOnce(std::move(init_cb), false));
...@@ -89,7 +89,7 @@ void MojoAudioDecoder::Decode(scoped_refptr<DecoderBuffer> media_buffer, ...@@ -89,7 +89,7 @@ void MojoAudioDecoder::Decode(scoped_refptr<DecoderBuffer> media_buffer,
DVLOG(3) << __func__; DVLOG(3) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
if (remote_decoder_.encountered_error()) { if (!remote_decoder_.is_connected()) {
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, base::BindOnce(decode_cb, DecodeStatus::DECODE_ERROR)); FROM_HERE, base::BindOnce(decode_cb, DecodeStatus::DECODE_ERROR));
return; return;
...@@ -115,7 +115,7 @@ void MojoAudioDecoder::Reset(base::OnceClosure closure) { ...@@ -115,7 +115,7 @@ void MojoAudioDecoder::Reset(base::OnceClosure closure) {
DVLOG(2) << __func__; DVLOG(2) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
if (remote_decoder_.encountered_error()) { if (!remote_decoder_.is_connected()) {
if (decode_cb_) { if (decode_cb_) {
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, FROM_HERE,
...@@ -143,11 +143,11 @@ void MojoAudioDecoder::BindRemoteDecoder() { ...@@ -143,11 +143,11 @@ void MojoAudioDecoder::BindRemoteDecoder() {
DVLOG(1) << __func__; DVLOG(1) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
remote_decoder_.Bind(std::move(remote_decoder_info_)); remote_decoder_.Bind(std::move(pending_remote_decoder_));
// Using base::Unretained(this) is safe because |this| owns |remote_decoder_|, // Using base::Unretained(this) is safe because |this| owns |remote_decoder_|,
// and the error handler can't be invoked once |remote_decoder_| is destroyed. // and the error handler can't be invoked once |remote_decoder_| is destroyed.
remote_decoder_.set_connection_error_handler( remote_decoder_.set_disconnect_handler(
base::Bind(&MojoAudioDecoder::OnConnectionError, base::Unretained(this))); base::Bind(&MojoAudioDecoder::OnConnectionError, base::Unretained(this)));
mojom::AudioDecoderClientAssociatedPtrInfo client_ptr_info; mojom::AudioDecoderClientAssociatedPtrInfo client_ptr_info;
...@@ -173,7 +173,7 @@ void MojoAudioDecoder::OnWaiting(WaitingReason reason) { ...@@ -173,7 +173,7 @@ void MojoAudioDecoder::OnWaiting(WaitingReason reason) {
void MojoAudioDecoder::OnConnectionError() { void MojoAudioDecoder::OnConnectionError() {
DVLOG(1) << __func__; DVLOG(1) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
DCHECK(remote_decoder_.encountered_error()); DCHECK(!remote_decoder_.is_connected());
if (init_cb_) { if (init_cb_) {
std::move(init_cb_).Run(false); std::move(init_cb_).Run(false);
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
#include "media/mojo/mojom/media_types.mojom.h" #include "media/mojo/mojom/media_types.mojom.h"
#include "mojo/public/cpp/bindings/associated_binding.h" #include "mojo/public/cpp/bindings/associated_binding.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace base { namespace base {
class SingleThreadTaskRunner; class SingleThreadTaskRunner;
...@@ -27,7 +29,7 @@ class MojoDecoderBufferWriter; ...@@ -27,7 +29,7 @@ class MojoDecoderBufferWriter;
class MojoAudioDecoder : public AudioDecoder, public mojom::AudioDecoderClient { class MojoAudioDecoder : public AudioDecoder, public mojom::AudioDecoderClient {
public: public:
MojoAudioDecoder(scoped_refptr<base::SingleThreadTaskRunner> task_runner, MojoAudioDecoder(scoped_refptr<base::SingleThreadTaskRunner> task_runner,
mojom::AudioDecoderPtr remote_decoder); mojo::PendingRemote<mojom::AudioDecoder> remote_decoder);
~MojoAudioDecoder() final; ~MojoAudioDecoder() final;
// AudioDecoder implementation. // AudioDecoder implementation.
...@@ -69,12 +71,12 @@ class MojoAudioDecoder : public AudioDecoder, public mojom::AudioDecoderClient { ...@@ -69,12 +71,12 @@ class MojoAudioDecoder : public AudioDecoder, public mojom::AudioDecoderClient {
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
// This class is constructed on one thread and used exclusively on another // This class is constructed on one thread and used exclusively on another
// thread. This member is used to safely pass the AudioDecoderPtr from one // thread. This member is used to safely pass the
// thread to another. It is set in the constructor and is consumed in // mojo::PendingRemote<AudioDecoder> from one thread to another. It is set in
// Initialize(). // the constructor and is consumed in Initialize().
mojom::AudioDecoderPtrInfo remote_decoder_info_; mojo::PendingRemote<mojom::AudioDecoder> pending_remote_decoder_;
mojom::AudioDecoderPtr remote_decoder_; mojo::Remote<mojom::AudioDecoder> remote_decoder_;
std::unique_ptr<MojoDecoderBufferWriter> mojo_decoder_buffer_writer_; std::unique_ptr<MojoDecoderBufferWriter> mojo_decoder_buffer_writer_;
......
...@@ -23,7 +23,9 @@ ...@@ -23,7 +23,9 @@
#include "media/mojo/mojom/audio_decoder.mojom.h" #include "media/mojo/mojom/audio_decoder.mojom.h"
#include "media/mojo/services/mojo_audio_decoder_service.h" #include "media/mojo/services/mojo_audio_decoder_service.h"
#include "media/mojo/services/mojo_cdm_service_context.h" #include "media/mojo/services/mojo_cdm_service_context.h"
#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -59,12 +61,12 @@ class MojoAudioDecoderTest : public ::testing::Test { ...@@ -59,12 +61,12 @@ class MojoAudioDecoderTest : public ::testing::Test {
service_task_runner_ = service_thread_.task_runner(); service_task_runner_ = service_thread_.task_runner();
// Setup the mojo connection. // Setup the mojo connection.
mojom::AudioDecoderPtr remote_audio_decoder; mojo::PendingRemote<mojom::AudioDecoder> remote_audio_decoder;
service_task_runner_->PostTask( service_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&MojoAudioDecoderTest::ConnectToService, base::BindOnce(&MojoAudioDecoderTest::ConnectToService,
base::Unretained(this), base::Unretained(this),
base::Passed(mojo::MakeRequest(&remote_audio_decoder)))); remote_audio_decoder.InitWithNewPipeAndPassReceiver()));
mojo_audio_decoder_.reset( mojo_audio_decoder_.reset(
new MojoAudioDecoder(task_environment_.GetMainThreadTaskRunner(), new MojoAudioDecoder(task_environment_.GetMainThreadTaskRunner(),
std::move(remote_audio_decoder))); std::move(remote_audio_decoder)));
...@@ -106,7 +108,7 @@ class MojoAudioDecoderTest : public ::testing::Test { ...@@ -106,7 +108,7 @@ class MojoAudioDecoderTest : public ::testing::Test {
run_loop_->QuitWhenIdle(); run_loop_->QuitWhenIdle();
} }
void ConnectToService(mojom::AudioDecoderRequest request) { void ConnectToService(mojo::PendingReceiver<mojom::AudioDecoder> receiver) {
DCHECK(service_task_runner_->BelongsToCurrentThread()); DCHECK(service_task_runner_->BelongsToCurrentThread());
std::unique_ptr<StrictMock<MockAudioDecoder>> mock_audio_decoder( std::unique_ptr<StrictMock<MockAudioDecoder>> mock_audio_decoder(
...@@ -123,10 +125,10 @@ class MojoAudioDecoderTest : public ::testing::Test { ...@@ -123,10 +125,10 @@ class MojoAudioDecoderTest : public ::testing::Test {
EXPECT_CALL(*mock_audio_decoder_, Reset_(_)) EXPECT_CALL(*mock_audio_decoder_, Reset_(_))
.WillRepeatedly(RunOnceCallback<0>()); .WillRepeatedly(RunOnceCallback<0>());
mojo::MakeStrongBinding( mojo::MakeSelfOwnedReceiver(
std::make_unique<MojoAudioDecoderService>( std::make_unique<MojoAudioDecoderService>(
&mojo_cdm_service_context_, std::move(mock_audio_decoder)), &mojo_cdm_service_context_, std::move(mock_audio_decoder)),
std::move(request)); std::move(receiver));
} }
void SetWriterCapacity(uint32_t capacity) { void SetWriterCapacity(uint32_t capacity) {
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "media/mojo/clients/mojo_video_decoder.h" #include "media/mojo/clients/mojo_video_decoder.h"
#include "media/mojo/mojom/audio_decoder.mojom.h" #include "media/mojo/mojom/audio_decoder.mojom.h"
#include "media/mojo/mojom/interface_factory.mojom.h" #include "media/mojo/mojom/interface_factory.mojom.h"
#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/pending_remote.h"
namespace media { namespace media {
...@@ -32,11 +32,12 @@ void MojoDecoderFactory::CreateAudioDecoders( ...@@ -32,11 +32,12 @@ void MojoDecoderFactory::CreateAudioDecoders(
MediaLog* media_log, MediaLog* media_log,
std::vector<std::unique_ptr<AudioDecoder>>* audio_decoders) { std::vector<std::unique_ptr<AudioDecoder>>* audio_decoders) {
#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
mojom::AudioDecoderPtr audio_decoder_ptr; mojo::PendingRemote<mojom::AudioDecoder> audio_decoder;
interface_factory_->CreateAudioDecoder(mojo::MakeRequest(&audio_decoder_ptr)); interface_factory_->CreateAudioDecoder(
audio_decoder.InitWithNewPipeAndPassReceiver());
audio_decoders->push_back(std::make_unique<MojoAudioDecoder>( audio_decoders->push_back(std::make_unique<MojoAudioDecoder>(
task_runner, std::move(audio_decoder_ptr))); task_runner, std::move(audio_decoder)));
#endif #endif
} }
......
...@@ -17,7 +17,7 @@ import "mojo/public/mojom/base/unguessable_token.mojom"; ...@@ -17,7 +17,7 @@ import "mojo/public/mojom/base/unguessable_token.mojom";
// A factory for creating media mojo interfaces. Renderers can only access // A factory for creating media mojo interfaces. Renderers can only access
// ContentDecryptionModules created with the same factory. // ContentDecryptionModules created with the same factory.
interface InterfaceFactory { interface InterfaceFactory {
CreateAudioDecoder(AudioDecoder& audio_decoder); CreateAudioDecoder(pending_receiver<AudioDecoder> audio_decoder);
CreateVideoDecoder(VideoDecoder& video_decoder); CreateVideoDecoder(VideoDecoder& video_decoder);
// Creates a regular media::Renderer (DefaultRendererFactory). // Creates a regular media::Renderer (DefaultRendererFactory).
......
...@@ -62,7 +62,7 @@ InterfaceFactoryImpl::~InterfaceFactoryImpl() { ...@@ -62,7 +62,7 @@ InterfaceFactoryImpl::~InterfaceFactoryImpl() {
// mojom::InterfaceFactory implementation. // mojom::InterfaceFactory implementation.
void InterfaceFactoryImpl::CreateAudioDecoder( void InterfaceFactoryImpl::CreateAudioDecoder(
mojo::InterfaceRequest<mojom::AudioDecoder> request) { mojo::PendingReceiver<mojom::AudioDecoder> receiver) {
DVLOG(2) << __func__; DVLOG(2) << __func__;
#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
scoped_refptr<base::SingleThreadTaskRunner> task_runner( scoped_refptr<base::SingleThreadTaskRunner> task_runner(
...@@ -75,10 +75,10 @@ void InterfaceFactoryImpl::CreateAudioDecoder( ...@@ -75,10 +75,10 @@ void InterfaceFactoryImpl::CreateAudioDecoder(
return; return;
} }
audio_decoder_bindings_.AddBinding( audio_decoder_receivers_.Add(
std::make_unique<MojoAudioDecoderService>(&cdm_service_context_, std::make_unique<MojoAudioDecoderService>(&cdm_service_context_,
std::move(audio_decoder)), std::move(audio_decoder)),
std::move(request)); std::move(receiver));
#endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
} }
...@@ -228,7 +228,7 @@ void InterfaceFactoryImpl::OnDestroyPending(base::OnceClosure destroy_cb) { ...@@ -228,7 +228,7 @@ void InterfaceFactoryImpl::OnDestroyPending(base::OnceClosure destroy_cb) {
bool InterfaceFactoryImpl::IsEmpty() { bool InterfaceFactoryImpl::IsEmpty() {
#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
if (!audio_decoder_bindings_.empty()) if (!audio_decoder_receivers_.empty())
return false; return false;
#endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
...@@ -266,7 +266,7 @@ void InterfaceFactoryImpl::SetBindingConnectionErrorHandler() { ...@@ -266,7 +266,7 @@ void InterfaceFactoryImpl::SetBindingConnectionErrorHandler() {
&InterfaceFactoryImpl::OnBindingConnectionError, base::Unretained(this)); &InterfaceFactoryImpl::OnBindingConnectionError, base::Unretained(this));
#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
audio_decoder_bindings_.set_connection_error_handler(connection_error_cb); audio_decoder_receivers_.set_disconnect_handler(connection_error_cb);
#endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
#if BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) #if BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER)
......
...@@ -40,7 +40,8 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> { ...@@ -40,7 +40,8 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> {
~InterfaceFactoryImpl() final; ~InterfaceFactoryImpl() final;
// mojom::InterfaceFactory implementation. // mojom::InterfaceFactory implementation.
void CreateAudioDecoder(mojom::AudioDecoderRequest request) final; void CreateAudioDecoder(
mojo::PendingReceiver<mojom::AudioDecoder> receiver) final;
void CreateVideoDecoder(mojom::VideoDecoderRequest request) final; void CreateVideoDecoder(mojom::VideoDecoderRequest request) final;
void CreateDefaultRenderer(const std::string& audio_device_id, void CreateDefaultRenderer(const std::string& audio_device_id,
mojom::RendererRequest request) final; mojom::RendererRequest request) final;
...@@ -87,7 +88,7 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> { ...@@ -87,7 +88,7 @@ class InterfaceFactoryImpl : public DeferredDestroy<mojom::InterfaceFactory> {
MojoCdmServiceContext cdm_service_context_; MojoCdmServiceContext cdm_service_context_;
#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
mojo::StrongBindingSet<mojom::AudioDecoder> audio_decoder_bindings_; mojo::UniqueReceiverSet<mojom::AudioDecoder> audio_decoder_receivers_;
#endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) #endif // BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER)
#if BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) #if BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER)
......
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