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(
}
void CastMirroringServiceHost::CreateAudioStream(
mojom::AudioStreamCreatorClientPtr client,
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t total_segments) {
content::WebContents* source_web_contents = nullptr;
......@@ -292,15 +292,17 @@ void CastMirroringServiceHost::CreateAudioStream(
audio_stream_creator_->CreateLoopbackStream(
source_web_contents, params, total_segments,
base::BindRepeating(
[](mojom::AudioStreamCreatorClientPtr client,
[](mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
media::mojom::AudioInputStreamPtr stream,
media::mojom::AudioInputStreamClientRequest client_request,
media::mojom::ReadOnlyAudioDataPipePtr data_pipe) {
// TODO(xjz): Remove |initially_muted| argument from
// mojom::AudioStreamCreatorClient::StreamCreated().
client->StreamCreated(std::move(stream), std::move(client_request),
std::move(data_pipe),
false /* initially_muted */);
mojo::Remote<mojom::AudioStreamCreatorClient> audio_client(
std::move(client));
audio_client->StreamCreated(
std::move(stream), std::move(client_request),
std::move(data_pipe), false /* initially_muted */);
},
base::Passed(&client)));
}
......
......@@ -87,7 +87,8 @@ class CastMirroringServiceHost final : public mojom::MirroringServiceHost,
media::mojom::VideoCaptureHostRequest request) override;
void GetNetworkContext(
mojo::PendingReceiver<network::mojom::NetworkContext> receiver) override;
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client,
void CreateAudioStream(
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t total_segments) override;
void ConnectToRemotingSource(
......
......@@ -128,9 +128,7 @@ class CastMirroringServiceHostBrowserTest
public mojom::AudioStreamCreatorClient {
public:
CastMirroringServiceHostBrowserTest()
: observer_binding_(this),
outbound_channel_binding_(this),
audio_client_binding_(this) {}
: observer_binding_(this), outbound_channel_binding_(this) {}
~CastMirroringServiceHostBrowserTest() override {}
protected:
......@@ -194,13 +192,11 @@ class CastMirroringServiceHostBrowserTest
media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
media::CHANNEL_LAYOUT_STEREO, kAudioTimebase,
kAudioTimebase / 100);
mojom::AudioStreamCreatorClientPtr audio_client_ptr;
audio_client_binding_.Bind(mojo::MakeRequest(&audio_client_ptr));
base::RunLoop run_loop;
EXPECT_CALL(*this, OnAudioStreamCreated())
.WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
host_->CreateAudioStream(std::move(audio_client_ptr), params,
kTotalSegments);
host_->CreateAudioStream(audio_client_receiver_.BindNewPipeAndPassRemote(),
params, kTotalSegments);
run_loop.Run();
}
......@@ -232,7 +228,7 @@ class CastMirroringServiceHostBrowserTest
mojo::Binding<mojom::SessionObserver> observer_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_;
std::unique_ptr<CastMirroringServiceHost> host_;
......
......@@ -30,7 +30,7 @@ interface ResourceProvider {
BindGpu(pending_receiver<viz.mojom.Gpu> receiver);
GetVideoCaptureHost(media.mojom.VideoCaptureHost& request);
GetNetworkContext(pending_receiver<network.mojom.NetworkContext> receiver);
CreateAudioStream(AudioStreamCreatorClient client,
CreateAudioStream(pending_remote<AudioStreamCreatorClient> client,
media.mojom.AudioParameters param,
uint32 shared_memory_count);
ConnectToRemotingSource(media.mojom.Remoter remoter,
......
......@@ -12,8 +12,7 @@ namespace mirroring {
CapturedAudioInput::CapturedAudioInput(StreamCreatorCallback callback)
: stream_creator_callback_(std::move(callback)),
stream_client_binding_(this),
stream_creator_client_binding_(this) {
stream_client_binding_(this) {
DETACH_FROM_SEQUENCE(sequence_checker_);
DCHECK(!stream_creator_callback_.is_null());
}
......@@ -29,9 +28,9 @@ void CapturedAudioInput::CreateStream(media::AudioInputIPCDelegate* delegate,
DCHECK(delegate);
DCHECK(!delegate_);
delegate_ = delegate;
mojom::AudioStreamCreatorClientPtr client;
stream_creator_client_binding_.Bind(mojo::MakeRequest(&client));
stream_creator_callback_.Run(std::move(client), params, total_segments);
stream_creator_callback_.Run(
stream_creator_client_receiver_.BindNewPipeAndPassRemote(), params,
total_segments);
}
void CapturedAudioInput::RecordStream() {
......
......@@ -13,6 +13,7 @@
#include "media/audio/audio_input_ipc.h"
#include "media/mojo/mojom/audio_input_stream.mojom.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace mirroring {
......@@ -23,8 +24,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final
public mojom::AudioStreamCreatorClient,
public media::mojom::AudioInputStreamClient {
public:
using StreamCreatorCallback =
base::RepeatingCallback<void(mojom::AudioStreamCreatorClientPtr client,
using StreamCreatorCallback = base::RepeatingCallback<void(
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t total_segments)>;
explicit CapturedAudioInput(StreamCreatorCallback callback);
......@@ -55,7 +56,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final
const StreamCreatorCallback stream_creator_callback_;
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::mojom::AudioInputStreamPtr stream_;
......
......@@ -10,6 +10,7 @@
#include "base/test/task_environment.h"
#include "media/base/audio_parameters.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/system/buffer.h"
#include "mojo/public/cpp/system/platform_handle.h"
......@@ -53,8 +54,9 @@ class CapturedAudioInputTest : public ::testing::Test {
~CapturedAudioInputTest() override { task_environment_.RunUntilIdle(); }
void CreateMockStream(bool initially_muted,
mojom::AudioStreamCreatorClientPtr client,
void CreateMockStream(
bool initially_muted,
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t total_segments) {
EXPECT_EQ(base::SyncSocket::kInvalidHandle, socket_.handle());
......@@ -67,7 +69,9 @@ class CapturedAudioInputTest : public ::testing::Test {
base::CancelableSyncSocket foreign_socket;
EXPECT_TRUE(
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_),
{base::in_place, base::ReadOnlySharedMemoryRegion::Create(1024).region,
mojo::WrapPlatformFile(foreign_socket.Release())},
......
......@@ -787,7 +787,8 @@ void Session::OnResponseParsingError(const std::string& error_message) {
// TODO(xjz): Log the |error_message| in the mirroring logs.
}
void Session::CreateAudioStream(mojom::AudioStreamCreatorClientPtr client,
void Session::CreateAudioStream(
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t shared_memory_count) {
resource_provider_->CreateAudioStream(std::move(client), params,
......
......@@ -97,7 +97,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) Session final
// Creates an audio input stream through Audio Service. |client| will be
// called after the stream is created.
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client,
void CreateAudioStream(
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t shared_memory_count);
......
......@@ -126,7 +126,8 @@ class SessionTest : public mojom::ResourceProvider,
OnGetNetworkContext();
}
void CreateAudioStream(mojom::AudioStreamCreatorClientPtr client,
void CreateAudioStream(
mojo::PendingRemote<mojom::AudioStreamCreatorClient> client,
const media::AudioParameters& params,
uint32_t total_segments) override {
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