Commit ad938f30 authored by Mario Sanchez Prada's avatar Mario Sanchez Prada Committed by Commit Bot

Migrate references of media::mojom::AudioOutputStreamObserver to new Mojo types

Convert both the implementation and clients in the browser and renderer
processes for the media.mojom.AudioOutputStreamObserver interface, and
adapt unit tests.

Bug: 955171
Change-Id: Ic179ae9add69b4d2bf68823af60e52a30a8b16e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803151Reviewed-by: default avatarTommi <tommi@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Commit-Queue: Mario Sanchez Prada <mario@igalia.com>
Cr-Commit-Position: refs/heads/master@{#697941}
parent b0a9a929
......@@ -103,7 +103,8 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create(
int render_frame_id,
int render_process_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id) {
auto socket = std::make_unique<base::CancelableSyncSocket>();
auto reader = media::AudioSyncReader::Create(
......@@ -115,7 +116,7 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create(
return std::make_unique<AudioOutputDelegateImpl>(
std::move(reader), std::move(socket), handler, audio_manager,
std::move(audio_log), media_observer, stream_id, render_frame_id,
render_process_id, params, std::move(observer), output_device_id);
render_process_id, params, std::move(pending_observer), output_device_id);
}
AudioOutputDelegateImpl::AudioOutputDelegateImpl(
......@@ -129,14 +130,15 @@ AudioOutputDelegateImpl::AudioOutputDelegateImpl(
int render_frame_id,
int render_process_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id)
: subscriber_(handler),
audio_log_(std::move(audio_log)),
reader_(std::move(reader)),
foreign_socket_(std::move(foreign_socket)),
stream_id_(stream_id),
observer_(std::move(observer)) {
observer_(std::move(pending_observer)) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(subscriber_);
DCHECK(audio_manager);
......
......@@ -15,6 +15,8 @@
#include "media/audio/audio_output_delegate.h"
#include "media/mojo/mojom/audio_logging.mojom.h"
#include "media/mojo/mojom/audio_output_stream.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace content {
class MediaObserver;
......@@ -43,7 +45,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
int render_frame_id,
int render_process_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id);
AudioOutputDelegateImpl(
......@@ -57,7 +60,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
int render_frame_id,
int render_process_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id);
~AudioOutputDelegateImpl() override;
......@@ -100,7 +104,7 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
base::RepeatingTimer poll_timer_;
bool is_audible_ = false;
// |observer_| is notified about changes in the audible state of the stream.
media::mojom::AudioOutputStreamObserverPtr observer_;
mojo::Remote<media::mojom::AudioOutputStreamObserver> observer_;
base::WeakPtrFactory<AudioOutputDelegateImpl> weak_factory_{this};
......
......@@ -129,7 +129,8 @@ class MockContext : public RendererAudioOutputStreamFactoryContext {
int render_frame_id,
int stream_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) override {
EXPECT_NE(nullptr, delegate_);
EXPECT_NE(nullptr, delegate_event_handler_location_);
......
......@@ -12,6 +12,7 @@
#include "content/common/content_export.h"
#include "media/audio/audio_output_delegate.h"
#include "media/mojo/mojom/audio_output_stream.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace media {
class AudioParameters;
......@@ -44,7 +45,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContext {
int render_frame_id,
int stream_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) = 0;
};
......
......@@ -56,7 +56,8 @@ RendererAudioOutputStreamFactoryContextImpl::CreateDelegate(
int render_frame_id,
int stream_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
MediaObserver* const media_observer =
......
......@@ -12,6 +12,7 @@
#include "content/browser/renderer_host/media/old_render_frame_audio_output_stream_factory.h"
#include "content/browser/renderer_host/media/renderer_audio_output_stream_factory_context.h"
#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace media {
class AudioManager;
......@@ -68,7 +69,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContextImpl
int render_frame_id,
int stream_id,
const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) override;
private:
......
......@@ -22,7 +22,7 @@ MojoAudioOutputStreamProvider::MojoAudioOutputStreamProvider(
create_delegate_callback_(std::move(create_delegate_callback)),
deleter_callback_(std::move(deleter_callback)),
observer_(std::move(observer)),
observer_binding_(observer_.get()) {
observer_receiver_(observer_.get()) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Unretained is safe since |this| owns |binding_|.
binding_.set_connection_error_handler(
......@@ -60,12 +60,12 @@ void MojoAudioOutputStreamProvider::Acquire(
provider_client_ = std::move(provider_client);
mojom::AudioOutputStreamObserverPtr observer_ptr;
observer_binding_.Bind(mojo::MakeRequest(&observer_ptr));
mojo::PendingRemote<mojom::AudioOutputStreamObserver> pending_observer;
observer_receiver_.Bind(pending_observer.InitWithNewPipeAndPassReceiver());
// Unretained is safe since |this| owns |audio_output_|.
audio_output_.emplace(
base::BindOnce(std::move(create_delegate_callback_), params,
std::move(observer_ptr)),
std::move(pending_observer)),
base::BindOnce(&mojom::AudioOutputStreamProviderClient::Created,
base::Unretained(provider_client_.get())),
base::BindOnce(&MojoAudioOutputStreamProvider::CleanUp,
......
......@@ -14,6 +14,8 @@
#include "media/mojo/services/media_mojo_export.h"
#include "media/mojo/services/mojo_audio_output_stream.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace media {
......@@ -24,7 +26,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider
using CreateDelegateCallback =
base::OnceCallback<std::unique_ptr<AudioOutputDelegate>(
const AudioParameters& params,
mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<mojom::AudioOutputStreamObserver>,
AudioOutputDelegate::EventHandler*)>;
using DeleterCallback = base::OnceCallback<void(AudioOutputStreamProvider*)>;
......@@ -59,7 +61,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider
CreateDelegateCallback create_delegate_callback_;
DeleterCallback deleter_callback_;
std::unique_ptr<mojom::AudioOutputStreamObserver> observer_;
mojo::Binding<mojom::AudioOutputStreamObserver> observer_binding_;
mojo::Receiver<mojom::AudioOutputStreamObserver> observer_receiver_;
base::Optional<MojoAudioOutputStream> audio_output_;
mojom::AudioOutputStreamProviderClientPtr provider_client_;
......
......@@ -44,8 +44,10 @@ class FakeObserver : public mojom::AudioOutputStreamObserver {
class FakeDelegate : public AudioOutputDelegate {
public:
explicit FakeDelegate(mojom::AudioOutputStreamObserverPtr observer)
: observer_(std::move(observer)) {}
explicit FakeDelegate(
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer)
: observer_(std::move(pending_observer)) {}
~FakeDelegate() override = default;
int GetStreamId() override { return 0; }
......@@ -55,14 +57,15 @@ class FakeDelegate : public AudioOutputDelegate {
void OnSetVolume(double) override {}
private:
mojom::AudioOutputStreamObserverPtr observer_;
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver> observer_;
};
std::unique_ptr<AudioOutputDelegate> CreateFakeDelegate(
const AudioParameters& params,
mojom::AudioOutputStreamObserverPtr observer,
mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
AudioOutputDelegate::EventHandler*) {
return std::make_unique<FakeDelegate>(std::move(observer));
return std::make_unique<FakeDelegate>(std::move(pending_observer));
}
} // namespace
......
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