Commit 0ccefbcd authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate ResourceProvider::CreateAudioStream to the new Mojo types

This CL applies pending_remote to AudioStreamCreatorClient argument
in ResourceProvider::CreateAudioStream. To migrate it to the new
Mojo types, this CL converts mojo::Binding to mojo::Receiver, and
mojom::AudioStreamCreatorClientPtr to mojo::PendingRemote, and so on.

Bug: 955171
Change-Id: I730fdf20fc3ffc3627bdf3f2fc12e6154554d73e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1775895Reviewed-by: default avatarTommi <tommi@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#695439}
parent 22c23ed1
...@@ -273,7 +273,7 @@ void CastMirroringServiceHost::GetNetworkContext( ...@@ -273,7 +273,7 @@ void CastMirroringServiceHost::GetNetworkContext(
} }
void CastMirroringServiceHost::CreateAudioStream( void CastMirroringServiceHost::CreateAudioStream(
mojom::AudioStreamCreatorClientPtr client, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params, const media::AudioParameters& params,
uint32_t total_segments) { uint32_t total_segments) {
content::WebContents* source_web_contents = nullptr; content::WebContents* source_web_contents = nullptr;
...@@ -292,15 +292,17 @@ void CastMirroringServiceHost::CreateAudioStream( ...@@ -292,15 +292,17 @@ void CastMirroringServiceHost::CreateAudioStream(
audio_stream_creator_->CreateLoopbackStream( audio_stream_creator_->CreateLoopbackStream(
source_web_contents, params, total_segments, source_web_contents, params, total_segments,
base::BindRepeating( base::BindRepeating(
[](mojom::AudioStreamCreatorClientPtr client, [](mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
media::mojom::AudioInputStreamPtr stream, media::mojom::AudioInputStreamPtr stream,
media::mojom::AudioInputStreamClientRequest client_request, media::mojom::AudioInputStreamClientRequest client_request,
media::mojom::ReadOnlyAudioDataPipePtr data_pipe) { media::mojom::ReadOnlyAudioDataPipePtr data_pipe) {
// TODO(xjz): Remove |initially_muted| argument from // TODO(xjz): Remove |initially_muted| argument from
// mojom::AudioStreamCreatorClient::StreamCreated(). // mojom::AudioStreamCreatorClient::StreamCreated().
client->StreamCreated(std::move(stream), std::move(client_request), mojo::Remote<mojom::AudioStreamCreatorClient> audio_client(
std::move(data_pipe), std::move(client));
false /* initially_muted */); audio_client->StreamCreated(
std::move(stream), std::move(client_request),
std::move(data_pipe), false /* initially_muted */);
}, },
base::Passed(&client))); base::Passed(&client)));
} }
......
...@@ -87,9 +87,10 @@ class CastMirroringServiceHost final : public mojom::MirroringServiceHost, ...@@ -87,9 +87,10 @@ class CastMirroringServiceHost final : public mojom::MirroringServiceHost,
media::mojom::VideoCaptureHostRequest request) override; media::mojom::VideoCaptureHostRequest request) override;
void GetNetworkContext( void GetNetworkContext(
mojo::PendingReceiver<network::mojom::NetworkContext> receiver) override; mojo::PendingReceiver<network::mojom::NetworkContext> receiver) override;
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client, void CreateAudioStream(
const media::AudioParameters& params, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
uint32_t total_segments) override; const media::AudioParameters& params,
uint32_t total_segments) override;
void ConnectToRemotingSource( void ConnectToRemotingSource(
media::mojom::RemoterPtr remoter, media::mojom::RemoterPtr remoter,
media::mojom::RemotingSourceRequest request) override; media::mojom::RemotingSourceRequest request) override;
......
...@@ -128,9 +128,7 @@ class CastMirroringServiceHostBrowserTest ...@@ -128,9 +128,7 @@ class CastMirroringServiceHostBrowserTest
public mojom::AudioStreamCreatorClient { public mojom::AudioStreamCreatorClient {
public: public:
CastMirroringServiceHostBrowserTest() CastMirroringServiceHostBrowserTest()
: observer_binding_(this), : observer_binding_(this), outbound_channel_binding_(this) {}
outbound_channel_binding_(this),
audio_client_binding_(this) {}
~CastMirroringServiceHostBrowserTest() override {} ~CastMirroringServiceHostBrowserTest() override {}
protected: protected:
...@@ -194,13 +192,11 @@ class CastMirroringServiceHostBrowserTest ...@@ -194,13 +192,11 @@ class CastMirroringServiceHostBrowserTest
media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
media::CHANNEL_LAYOUT_STEREO, kAudioTimebase, media::CHANNEL_LAYOUT_STEREO, kAudioTimebase,
kAudioTimebase / 100); kAudioTimebase / 100);
mojom::AudioStreamCreatorClientPtr audio_client_ptr;
audio_client_binding_.Bind(mojo::MakeRequest(&audio_client_ptr));
base::RunLoop run_loop; base::RunLoop run_loop;
EXPECT_CALL(*this, OnAudioStreamCreated()) EXPECT_CALL(*this, OnAudioStreamCreated())
.WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
host_->CreateAudioStream(std::move(audio_client_ptr), params, host_->CreateAudioStream(audio_client_receiver_.BindNewPipeAndPassRemote(),
kTotalSegments); params, kTotalSegments);
run_loop.Run(); run_loop.Run();
} }
...@@ -232,7 +228,7 @@ class CastMirroringServiceHostBrowserTest ...@@ -232,7 +228,7 @@ class CastMirroringServiceHostBrowserTest
mojo::Binding<mojom::SessionObserver> observer_binding_; mojo::Binding<mojom::SessionObserver> observer_binding_;
mojo::Binding<mojom::CastMessageChannel> outbound_channel_binding_; mojo::Binding<mojom::CastMessageChannel> outbound_channel_binding_;
mojo::Binding<mojom::AudioStreamCreatorClient> audio_client_binding_; mojo::Receiver<mojom::AudioStreamCreatorClient> audio_client_receiver_{this};
mojom::CastMessageChannelPtr inbound_channel_; mojom::CastMessageChannelPtr inbound_channel_;
std::unique_ptr<CastMirroringServiceHost> host_; std::unique_ptr<CastMirroringServiceHost> host_;
......
...@@ -30,7 +30,7 @@ interface ResourceProvider { ...@@ -30,7 +30,7 @@ interface ResourceProvider {
BindGpu(pending_receiver<viz.mojom.Gpu> receiver); BindGpu(pending_receiver<viz.mojom.Gpu> receiver);
GetVideoCaptureHost(media.mojom.VideoCaptureHost& request); GetVideoCaptureHost(media.mojom.VideoCaptureHost& request);
GetNetworkContext(pending_receiver<network.mojom.NetworkContext> receiver); GetNetworkContext(pending_receiver<network.mojom.NetworkContext> receiver);
CreateAudioStream(AudioStreamCreatorClient client, CreateAudioStream(pending_remote<AudioStreamCreatorClient> client,
media.mojom.AudioParameters param, media.mojom.AudioParameters param,
uint32 shared_memory_count); uint32 shared_memory_count);
ConnectToRemotingSource(media.mojom.Remoter remoter, ConnectToRemotingSource(media.mojom.Remoter remoter,
......
...@@ -12,8 +12,7 @@ namespace mirroring { ...@@ -12,8 +12,7 @@ namespace mirroring {
CapturedAudioInput::CapturedAudioInput(StreamCreatorCallback callback) CapturedAudioInput::CapturedAudioInput(StreamCreatorCallback callback)
: stream_creator_callback_(std::move(callback)), : stream_creator_callback_(std::move(callback)),
stream_client_binding_(this), stream_client_binding_(this) {
stream_creator_client_binding_(this) {
DETACH_FROM_SEQUENCE(sequence_checker_); DETACH_FROM_SEQUENCE(sequence_checker_);
DCHECK(!stream_creator_callback_.is_null()); DCHECK(!stream_creator_callback_.is_null());
} }
...@@ -29,9 +28,9 @@ void CapturedAudioInput::CreateStream(media::AudioInputIPCDelegate* delegate, ...@@ -29,9 +28,9 @@ void CapturedAudioInput::CreateStream(media::AudioInputIPCDelegate* delegate,
DCHECK(delegate); DCHECK(delegate);
DCHECK(!delegate_); DCHECK(!delegate_);
delegate_ = delegate; delegate_ = delegate;
mojom::AudioStreamCreatorClientPtr client; stream_creator_callback_.Run(
stream_creator_client_binding_.Bind(mojo::MakeRequest(&client)); stream_creator_client_receiver_.BindNewPipeAndPassRemote(), params,
stream_creator_callback_.Run(std::move(client), params, total_segments); total_segments);
} }
void CapturedAudioInput::RecordStream() { void CapturedAudioInput::RecordStream() {
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "media/audio/audio_input_ipc.h" #include "media/audio/audio_input_ipc.h"
#include "media/mojo/mojom/audio_input_stream.mojom.h" #include "media/mojo/mojom/audio_input_stream.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace mirroring { namespace mirroring {
...@@ -23,10 +24,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final ...@@ -23,10 +24,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final
public mojom::AudioStreamCreatorClient, public mojom::AudioStreamCreatorClient,
public media::mojom::AudioInputStreamClient { public media::mojom::AudioInputStreamClient {
public: public:
using StreamCreatorCallback = using StreamCreatorCallback = base::RepeatingCallback<void(
base::RepeatingCallback<void(mojom::AudioStreamCreatorClientPtr client, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params, const media::AudioParameters& params,
uint32_t total_segments)>; uint32_t total_segments)>;
explicit CapturedAudioInput(StreamCreatorCallback callback); explicit CapturedAudioInput(StreamCreatorCallback callback);
~CapturedAudioInput() override; ~CapturedAudioInput() override;
...@@ -55,7 +56,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final ...@@ -55,7 +56,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final
const StreamCreatorCallback stream_creator_callback_; const StreamCreatorCallback stream_creator_callback_;
mojo::Binding<media::mojom::AudioInputStreamClient> stream_client_binding_; mojo::Binding<media::mojom::AudioInputStreamClient> stream_client_binding_;
mojo::Binding<mojom::AudioStreamCreatorClient> stream_creator_client_binding_; mojo::Receiver<mojom::AudioStreamCreatorClient>
stream_creator_client_receiver_{this};
media::AudioInputIPCDelegate* delegate_ = nullptr; media::AudioInputIPCDelegate* delegate_ = nullptr;
media::mojom::AudioInputStreamPtr stream_; media::mojom::AudioInputStreamPtr stream_;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "media/base/audio_parameters.h" #include "media/base/audio_parameters.h"
#include "media/mojo/mojom/audio_data_pipe.mojom.h" #include "media/mojo/mojom/audio_data_pipe.mojom.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/system/buffer.h" #include "mojo/public/cpp/system/buffer.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"
...@@ -53,10 +54,11 @@ class CapturedAudioInputTest : public ::testing::Test { ...@@ -53,10 +54,11 @@ class CapturedAudioInputTest : public ::testing::Test {
~CapturedAudioInputTest() override { task_environment_.RunUntilIdle(); } ~CapturedAudioInputTest() override { task_environment_.RunUntilIdle(); }
void CreateMockStream(bool initially_muted, void CreateMockStream(
mojom::AudioStreamCreatorClientPtr client, bool initially_muted,
const media::AudioParameters& params, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
uint32_t total_segments) { const media::AudioParameters& params,
uint32_t total_segments) {
EXPECT_EQ(base::SyncSocket::kInvalidHandle, socket_.handle()); EXPECT_EQ(base::SyncSocket::kInvalidHandle, socket_.handle());
EXPECT_FALSE(stream_); EXPECT_FALSE(stream_);
media::mojom::AudioInputStreamPtr stream_ptr; media::mojom::AudioInputStreamPtr stream_ptr;
...@@ -67,7 +69,9 @@ class CapturedAudioInputTest : public ::testing::Test { ...@@ -67,7 +69,9 @@ class CapturedAudioInputTest : public ::testing::Test {
base::CancelableSyncSocket foreign_socket; base::CancelableSyncSocket foreign_socket;
EXPECT_TRUE( EXPECT_TRUE(
base::CancelableSyncSocket::CreatePair(&socket_, &foreign_socket)); base::CancelableSyncSocket::CreatePair(&socket_, &foreign_socket));
client->StreamCreated( mojo::Remote<mojom::AudioStreamCreatorClient> audio_client(
std::move(client));
audio_client->StreamCreated(
std::move(stream_ptr), mojo::MakeRequest(&stream_client_), std::move(stream_ptr), mojo::MakeRequest(&stream_client_),
{base::in_place, base::ReadOnlySharedMemoryRegion::Create(1024).region, {base::in_place, base::ReadOnlySharedMemoryRegion::Create(1024).region,
mojo::WrapPlatformFile(foreign_socket.Release())}, mojo::WrapPlatformFile(foreign_socket.Release())},
......
...@@ -787,9 +787,10 @@ void Session::OnResponseParsingError(const std::string& error_message) { ...@@ -787,9 +787,10 @@ void Session::OnResponseParsingError(const std::string& error_message) {
// TODO(xjz): Log the |error_message| in the mirroring logs. // TODO(xjz): Log the |error_message| in the mirroring logs.
} }
void Session::CreateAudioStream(mojom::AudioStreamCreatorClientPtr client, void Session::CreateAudioStream(
const media::AudioParameters& params, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
uint32_t shared_memory_count) { const media::AudioParameters& params,
uint32_t shared_memory_count) {
resource_provider_->CreateAudioStream(std::move(client), params, resource_provider_->CreateAudioStream(std::move(client), params,
shared_memory_count); shared_memory_count);
} }
......
...@@ -97,9 +97,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) Session final ...@@ -97,9 +97,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) Session final
// Creates an audio input stream through Audio Service. |client| will be // Creates an audio input stream through Audio Service. |client| will be
// called after the stream is created. // called after the stream is created.
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client, void CreateAudioStream(
const media::AudioParameters& params, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
uint32_t shared_memory_count); const media::AudioParameters& params,
uint32_t shared_memory_count);
// Callback for CAPABILITIES_RESPONSE. // Callback for CAPABILITIES_RESPONSE.
void OnCapabilitiesResponse(const ReceiverResponse& response); void OnCapabilitiesResponse(const ReceiverResponse& response);
......
...@@ -126,9 +126,10 @@ class SessionTest : public mojom::ResourceProvider, ...@@ -126,9 +126,10 @@ class SessionTest : public mojom::ResourceProvider,
OnGetNetworkContext(); OnGetNetworkContext();
} }
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client, void CreateAudioStream(
const media::AudioParameters& params, mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
uint32_t total_segments) override { const media::AudioParameters& params,
uint32_t total_segments) override {
OnCreateAudioStream(); OnCreateAudioStream();
} }
......
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