Commit 2ca93eb0 authored by Mario Sanchez Prada's avatar Mario Sanchez Prada Committed by Commit Bot

Migrate references to the video_capture::mojom::VideoSource interface

Convert the remaining bits referencing the VideoSource mojo interface
(from video_capture service) using the old APIs to the new mojo types,
and adapt unit tests.

Bug: 955171
Change-Id: Ib647a30ca7c95683bf9edca0e89d7bba1ce53d75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1886893
Commit-Queue: Mario Sanchez Prada <mario@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711651}
parent 33b2724e
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
namespace content { namespace content {
ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice( ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice(
video_capture::mojom::VideoSourcePtr source, mojo::Remote<video_capture::mojom::VideoSource> source,
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
base::OnceClosure connection_lost_cb) base::OnceClosure connection_lost_cb)
...@@ -20,7 +20,7 @@ ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice( ...@@ -20,7 +20,7 @@ ServiceLaunchedVideoCaptureDevice::ServiceLaunchedVideoCaptureDevice(
subscription_(std::move(subscription)), subscription_(std::move(subscription)),
connection_lost_cb_(std::move(connection_lost_cb)) { connection_lost_cb_(std::move(connection_lost_cb)) {
// Unretained |this| is safe, because |this| owns |source_|. // Unretained |this| is safe, because |this| owns |source_|.
source_.set_connection_error_handler( source_.set_disconnect_handler(
base::BindOnce(&ServiceLaunchedVideoCaptureDevice:: base::BindOnce(&ServiceLaunchedVideoCaptureDevice::
OnLostConnectionToSourceOrSubscription, OnLostConnectionToSourceOrSubscription,
base::Unretained(this))); base::Unretained(this)));
......
...@@ -17,7 +17,7 @@ namespace content { ...@@ -17,7 +17,7 @@ namespace content {
class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice { class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice {
public: public:
ServiceLaunchedVideoCaptureDevice( ServiceLaunchedVideoCaptureDevice(
video_capture::mojom::VideoSourcePtr source, mojo::Remote<video_capture::mojom::VideoSource> source,
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
base::OnceClosure connection_lost_cb); base::OnceClosure connection_lost_cb);
...@@ -52,7 +52,7 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice { ...@@ -52,7 +52,7 @@ class ServiceLaunchedVideoCaptureDevice : public LaunchedVideoCaptureDevice {
media::VideoCaptureDevice::TakePhotoCallback callback, media::VideoCaptureDevice::TakePhotoCallback callback,
media::mojom::BlobPtr blob); media::mojom::BlobPtr blob);
video_capture::mojom::VideoSourcePtr source_; mojo::Remote<video_capture::mojom::VideoSource> source_;
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_;
base::OnceClosure connection_lost_cb_; base::OnceClosure connection_lost_cb_;
base::SequenceChecker sequence_checker_; base::SequenceChecker sequence_checker_;
......
...@@ -25,7 +25,7 @@ namespace content { ...@@ -25,7 +25,7 @@ namespace content {
namespace { namespace {
void ConcludeLaunchDeviceWithSuccess( void ConcludeLaunchDeviceWithSuccess(
video_capture::mojom::VideoSourcePtr source, mojo::Remote<video_capture::mojom::VideoSource> source,
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
...@@ -109,9 +109,9 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync( ...@@ -109,9 +109,9 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAsync(
// invoked. // invoked.
done_cb_ = std::move(done_cb); done_cb_ = std::move(done_cb);
callbacks_ = callbacks; callbacks_ = callbacks;
video_capture::mojom::VideoSourcePtr source; mojo::Remote<video_capture::mojom::VideoSource> source;
service_connection_->source_provider()->GetVideoSource( service_connection_->source_provider()->GetVideoSource(
device_id, mojo::MakeRequest(&source)); device_id, source.BindNewPipeAndPassReceiver());
auto receiver_adapter = auto receiver_adapter =
std::make_unique<video_capture::ReceiverMediaToMojoAdapter>( std::make_unique<video_capture::ReceiverMediaToMojoAdapter>(
...@@ -172,7 +172,7 @@ void ServiceVideoCaptureDeviceLauncher::AbortLaunch() { ...@@ -172,7 +172,7 @@ void ServiceVideoCaptureDeviceLauncher::AbortLaunch() {
} }
void ServiceVideoCaptureDeviceLauncher::OnCreatePushSubscriptionCallback( void ServiceVideoCaptureDeviceLauncher::OnCreatePushSubscriptionCallback(
video_capture::mojom::VideoSourcePtr source, mojo::Remote<video_capture::mojom::VideoSource> source,
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
......
...@@ -47,7 +47,7 @@ class CONTENT_EXPORT ServiceVideoCaptureDeviceLauncher ...@@ -47,7 +47,7 @@ class CONTENT_EXPORT ServiceVideoCaptureDeviceLauncher
}; };
void OnCreatePushSubscriptionCallback( void OnCreatePushSubscriptionCallback(
video_capture::mojom::VideoSourcePtr source, mojo::Remote<video_capture::mojom::VideoSource> source,
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> mojo::Remote<video_capture::mojom::PushVideoStreamSubscription>
subscription, subscription,
base::OnceClosure connection_lost_cb, base::OnceClosure connection_lost_cb,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/video_capture/public/cpp/mock_push_subscription.h" #include "services/video_capture/public/cpp/mock_push_subscription.h"
#include "services/video_capture/public/cpp/mock_video_source.h" #include "services/video_capture/public/cpp/mock_video_source.h"
...@@ -52,7 +53,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -52,7 +53,7 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
ServiceVideoCaptureDeviceLauncherTest() {} ServiceVideoCaptureDeviceLauncherTest() {}
~ServiceVideoCaptureDeviceLauncherTest() override {} ~ServiceVideoCaptureDeviceLauncherTest() override {}
void CloseSourceBinding() { source_binding_.reset(); } void CloseSourceReceiver() { source_receiver_.reset(); }
void CloseSubscriptionReceivers() { subscription_receivers_.Clear(); } void CloseSubscriptionReceivers() { subscription_receivers_.Clear(); }
...@@ -86,10 +87,11 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -86,10 +87,11 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
ON_CALL(mock_source_provider_, DoGetVideoSource(kStubDeviceId, _)) ON_CALL(mock_source_provider_, DoGetVideoSource(kStubDeviceId, _))
.WillByDefault(Invoke( .WillByDefault(Invoke(
[this](const std::string& device_id, [this](const std::string& device_id,
video_capture::mojom::VideoSourceRequest* source_request) { mojo::PendingReceiver<video_capture::mojom::VideoSource>*
source_binding_ = std::make_unique< source_receiver) {
mojo::Binding<video_capture::mojom::VideoSource>>( source_receiver_ = std::make_unique<
&mock_source_, std::move(*source_request)); mojo::Receiver<video_capture::mojom::VideoSource>>(
&mock_source_, std::move(*source_receiver));
})); }));
ON_CALL(mock_source_, DoCreatePushSubscription(_, _, _, _, _)) ON_CALL(mock_source_, DoCreatePushSubscription(_, _, _, _, _))
...@@ -127,8 +129,8 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test { ...@@ -127,8 +129,8 @@ class ServiceVideoCaptureDeviceLauncherTest : public testing::Test {
std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSourceProvider>> std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSourceProvider>>
source_provider_binding_; source_provider_binding_;
video_capture::MockVideoSource mock_source_; video_capture::MockVideoSource mock_source_;
std::unique_ptr<mojo::Binding<video_capture::mojom::VideoSource>> std::unique_ptr<mojo::Receiver<video_capture::mojom::VideoSource>>
source_binding_; source_receiver_;
video_capture::MockPushSubcription mock_subscription_; video_capture::MockPushSubcription mock_subscription_;
mojo::ReceiverSet<video_capture::mojom::PushVideoStreamSubscription> mojo::ReceiverSet<video_capture::mojom::PushVideoStreamSubscription>
subscription_receivers_; subscription_receivers_;
...@@ -376,7 +378,7 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest, ...@@ -376,7 +378,7 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest,
// Cleanup // Cleanup
// Cut the connection to the source, so that the outstanding // Cut the connection to the source, so that the outstanding
// |create_subscription_cb| will be dropped when we invoke it below. // |create_subscription_cb| will be dropped when we invoke it below.
source_binding_.reset(); source_receiver_.reset();
// We have to invoke the callback, because not doing so triggers a DCHECK. // We have to invoke the callback, because not doing so triggers a DCHECK.
const video_capture::mojom::CreatePushSubscriptionResultCode const video_capture::mojom::CreatePushSubscriptionResultCode
arbitrary_result_code = video_capture::mojom:: arbitrary_result_code = video_capture::mojom::
...@@ -387,9 +389,9 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest, ...@@ -387,9 +389,9 @@ TEST_F(ServiceVideoCaptureDeviceLauncherTest,
TEST_F(ServiceVideoCaptureDeviceLauncherTest, TEST_F(ServiceVideoCaptureDeviceLauncherTest,
ConnectionToSubscriptionLostAfterSuccessfulLaunch) { ConnectionToSubscriptionLostAfterSuccessfulLaunch) {
RunConnectionLostAfterSuccessfulStartTest( RunConnectionLostAfterSuccessfulStartTest(base::BindOnce(
base::BindOnce(&ServiceVideoCaptureDeviceLauncherTest::CloseSourceBinding, &ServiceVideoCaptureDeviceLauncherTest::CloseSourceReceiver,
base::Unretained(this))); base::Unretained(this)));
} }
TEST_F(ServiceVideoCaptureDeviceLauncherTest, TEST_F(ServiceVideoCaptureDeviceLauncherTest,
......
...@@ -98,10 +98,11 @@ class ServiceVideoCaptureProviderTest : public testing::Test { ...@@ -98,10 +98,11 @@ class ServiceVideoCaptureProviderTest : public testing::Test {
})); }));
ON_CALL(mock_source_provider_, DoGetVideoSource(_, _)) ON_CALL(mock_source_provider_, DoGetVideoSource(_, _))
.WillByDefault( .WillByDefault(Invoke(
Invoke([this](const std::string& device_id, [this](const std::string& device_id,
video_capture::mojom::VideoSourceRequest* request) { mojo::PendingReceiver<video_capture::mojom::VideoSource>*
source_bindings_.AddBinding(&mock_source_, std::move(*request)); receiver) {
source_receivers_.Add(&mock_source_, std::move(*receiver));
})); }));
ON_CALL(mock_source_, DoCreatePushSubscription(_, _, _, _, _)) ON_CALL(mock_source_, DoCreatePushSubscription(_, _, _, _, _))
...@@ -132,7 +133,7 @@ class ServiceVideoCaptureProviderTest : public testing::Test { ...@@ -132,7 +133,7 @@ class ServiceVideoCaptureProviderTest : public testing::Test {
mojo::Binding<video_capture::mojom::VideoSourceProvider> mojo::Binding<video_capture::mojom::VideoSourceProvider>
source_provider_binding_; source_provider_binding_;
video_capture::MockVideoSource mock_source_; video_capture::MockVideoSource mock_source_;
mojo::BindingSet<video_capture::mojom::VideoSource> source_bindings_; mojo::ReceiverSet<video_capture::mojom::VideoSource> source_receivers_;
video_capture::MockPushSubcription mock_subscription_; video_capture::MockPushSubcription mock_subscription_;
mojo::ReceiverSet<video_capture::mojom::PushVideoStreamSubscription> mojo::ReceiverSet<video_capture::mojom::PushVideoStreamSubscription>
subscription_receivers_; subscription_receivers_;
......
...@@ -164,8 +164,9 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -164,8 +164,9 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
media::VideoCaptureBufferType buffer_type_to_request, media::VideoCaptureBufferType buffer_type_to_request,
const std::vector<media::VideoCaptureDeviceInfo>& infos) { const std::vector<media::VideoCaptureDeviceInfo>& infos) {
ASSERT_FALSE(infos.empty()); ASSERT_FALSE(infos.empty());
video_source_provider_->GetVideoSource(infos[0].descriptor.device_id, video_source_provider_->GetVideoSource(
mojo::MakeRequest(&video_source_)); infos[0].descriptor.device_id,
video_source_.BindNewPipeAndPassReceiver());
media::VideoCaptureParams requestable_settings; media::VideoCaptureParams requestable_settings;
ASSERT_FALSE(infos[0].supported_formats.empty()); ASSERT_FALSE(infos[0].supported_formats.empty());
...@@ -198,7 +199,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest ...@@ -198,7 +199,7 @@ class WebRtcVideoCaptureSharedDeviceBrowserTest
// For multi-client API case only // For multi-client API case only
video_capture::mojom::VideoSourceProviderPtr video_source_provider_; video_capture::mojom::VideoSourceProviderPtr video_source_provider_;
video_capture::mojom::VideoSourcePtr video_source_; mojo::Remote<video_capture::mojom::VideoSource> video_source_;
mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_; mojo::Remote<video_capture::mojom::PushVideoStreamSubscription> subscription_;
mojo::PendingRemote<video_capture::mojom::Receiver> subscriber_; mojo::PendingRemote<video_capture::mojom::Receiver> subscriber_;
......
...@@ -12,8 +12,8 @@ MockVideoSourceProvider::~MockVideoSourceProvider() = default; ...@@ -12,8 +12,8 @@ MockVideoSourceProvider::~MockVideoSourceProvider() = default;
void MockVideoSourceProvider::GetVideoSource( void MockVideoSourceProvider::GetVideoSource(
const std::string& device_id, const std::string& device_id,
video_capture::mojom::VideoSourceRequest source_request) { mojo::PendingReceiver<video_capture::mojom::VideoSource> source_receiver) {
DoGetVideoSource(device_id, &source_request); DoGetVideoSource(device_id, &source_receiver);
} }
void MockVideoSourceProvider::GetSourceInfos(GetSourceInfosCallback callback) { void MockVideoSourceProvider::GetSourceInfos(GetSourceInfosCallback callback) {
......
...@@ -20,9 +20,9 @@ class MockVideoSourceProvider ...@@ -20,9 +20,9 @@ class MockVideoSourceProvider
MockVideoSourceProvider(); MockVideoSourceProvider();
~MockVideoSourceProvider() override; ~MockVideoSourceProvider() override;
void GetVideoSource( void GetVideoSource(const std::string& device_id,
const std::string& device_id, mojo::PendingReceiver<video_capture::mojom::VideoSource>
video_capture::mojom::VideoSourceRequest source_request) override; source_receiver) override;
void GetSourceInfos(GetSourceInfosCallback callback) override; void GetSourceInfos(GetSourceInfosCallback callback) override;
...@@ -47,9 +47,10 @@ class MockVideoSourceProvider ...@@ -47,9 +47,10 @@ class MockVideoSourceProvider
void Close(CloseCallback callback) override; void Close(CloseCallback callback) override;
MOCK_METHOD1(DoGetSourceInfos, void(GetSourceInfosCallback& callback)); MOCK_METHOD1(DoGetSourceInfos, void(GetSourceInfosCallback& callback));
MOCK_METHOD2(DoGetVideoSource, MOCK_METHOD2(
void(const std::string& device_id, DoGetVideoSource,
video_capture::mojom::VideoSourceRequest* request)); void(const std::string& device_id,
mojo::PendingReceiver<video_capture::mojom::VideoSource>* receiver));
MOCK_METHOD3( MOCK_METHOD3(
DoAddVirtualDevice, DoAddVirtualDevice,
void( void(
......
...@@ -17,7 +17,7 @@ interface VideoSourceProvider { ...@@ -17,7 +17,7 @@ interface VideoSourceProvider {
// This essentially constrains things down to a particular source. This is // This essentially constrains things down to a particular source. This is
// useful for subsequently passing the resulting |stream| to clients that // useful for subsequently passing the resulting |stream| to clients that
// are supposed to get access to only a particular source. // are supposed to get access to only a particular source.
GetVideoSource(string source_id, VideoSource& stream); GetVideoSource(string source_id, pending_receiver<VideoSource> stream);
// Creates a new virtual capture device, which will be exposed // Creates a new virtual capture device, which will be exposed
// using the given |device_info|. The returned |virtual_device| is to // using the given |device_info|. The returned |virtual_device| is to
......
...@@ -69,7 +69,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -69,7 +69,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
// CreateDevice. // CreateDevice.
wait_loop.Run(); wait_loop.Run();
source_provider_->GetVideoSource(mock_descriptor.device_id, source_provider_->GetVideoSource(mock_descriptor.device_id,
mojo::MakeRequest(&source_)); source_.BindNewPipeAndPassReceiver());
requestable_settings_.requested_format.frame_size = gfx::Size(800, 600); requestable_settings_.requested_format.frame_size = gfx::Size(800, 600);
requestable_settings_.requested_format.frame_rate = 15; requestable_settings_.requested_format.frame_rate = 15;
...@@ -255,7 +255,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test { ...@@ -255,7 +255,7 @@ class MockDeviceSharedAccessTest : public ::testing::Test {
media::MockDeviceFactory* mock_device_factory_; media::MockDeviceFactory* mock_device_factory_;
std::unique_ptr<DeviceFactoryMediaToMojoAdapter> service_device_factory_; std::unique_ptr<DeviceFactoryMediaToMojoAdapter> service_device_factory_;
std::unique_ptr<VideoSourceProviderImpl> source_provider_; std::unique_ptr<VideoSourceProviderImpl> source_provider_;
mojom::VideoSourcePtr source_; mojo::Remote<mojom::VideoSource> source_;
media::VideoCaptureParams requestable_settings_; media::VideoCaptureParams requestable_settings_;
mojo::Remote<mojom::PushVideoStreamSubscription> subscription_1_; mojo::Remote<mojom::PushVideoStreamSubscription> subscription_1_;
......
...@@ -19,19 +19,20 @@ VideoSourceImpl::VideoSourceImpl( ...@@ -19,19 +19,20 @@ VideoSourceImpl::VideoSourceImpl(
on_last_binding_closed_cb_(std::move(on_last_binding_closed_cb)), on_last_binding_closed_cb_(std::move(on_last_binding_closed_cb)),
device_status_(DeviceStatus::kNotStarted), device_status_(DeviceStatus::kNotStarted),
restart_device_once_when_stop_complete_(false) { restart_device_once_when_stop_complete_(false) {
// Unretained(this) is safe because |this| owns |bindings_|. // Unretained(this) is safe because |this| owns |receivers_|.
bindings_.set_connection_error_handler(base::BindRepeating( receivers_.set_disconnect_handler(base::BindRepeating(
&VideoSourceImpl::OnClientDisconnected, base::Unretained(this))); &VideoSourceImpl::OnClientDisconnected, base::Unretained(this)));
} }
VideoSourceImpl::~VideoSourceImpl() { VideoSourceImpl::~VideoSourceImpl() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
bindings_.set_connection_error_handler(base::DoNothing()); receivers_.set_disconnect_handler(base::DoNothing());
} }
void VideoSourceImpl::AddToBindingSet(mojom::VideoSourceRequest request) { void VideoSourceImpl::AddToReceiverSet(
mojo::PendingReceiver<VideoSource> receiver) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
bindings_.AddBinding(this, std::move(request)); receivers_.Add(this, std::move(receiver));
} }
void VideoSourceImpl::CreatePushSubscription( void VideoSourceImpl::CreatePushSubscription(
...@@ -81,7 +82,7 @@ void VideoSourceImpl::CreatePushSubscription( ...@@ -81,7 +82,7 @@ void VideoSourceImpl::CreatePushSubscription(
void VideoSourceImpl::OnClientDisconnected() { void VideoSourceImpl::OnClientDisconnected() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (bindings_.empty()) { if (receivers_.empty()) {
// Note: Invoking this callback may synchronously trigger the destruction of // Note: Invoking this callback may synchronously trigger the destruction of
// |this|, so no more member access should be done after it. // |this|, so no more member access should be done after it.
on_last_binding_closed_cb_.Run(); on_last_binding_closed_cb_.Run();
......
...@@ -9,10 +9,11 @@ ...@@ -9,10 +9,11 @@
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
#include "services/video_capture/broadcasting_receiver.h" #include "services/video_capture/broadcasting_receiver.h"
#include "services/video_capture/device_factory_media_to_mojo_adapter.h" #include "services/video_capture/device_factory_media_to_mojo_adapter.h"
...@@ -31,7 +32,7 @@ class VideoSourceImpl : public mojom::VideoSource { ...@@ -31,7 +32,7 @@ class VideoSourceImpl : public mojom::VideoSource {
base::RepeatingClosure on_last_binding_closed_cb); base::RepeatingClosure on_last_binding_closed_cb);
~VideoSourceImpl() override; ~VideoSourceImpl() override;
void AddToBindingSet(mojom::VideoSourceRequest request); void AddToReceiverSet(mojo::PendingReceiver<VideoSource> receiver);
// mojom::VideoSource implementation. // mojom::VideoSource implementation.
void CreatePushSubscription( void CreatePushSubscription(
...@@ -61,7 +62,7 @@ class VideoSourceImpl : public mojom::VideoSource { ...@@ -61,7 +62,7 @@ class VideoSourceImpl : public mojom::VideoSource {
mojom::DeviceFactory* const device_factory_; mojom::DeviceFactory* const device_factory_;
const std::string device_id_; const std::string device_id_;
mojo::BindingSet<mojom::VideoSource> bindings_; mojo::ReceiverSet<mojom::VideoSource> receivers_;
base::RepeatingClosure on_last_binding_closed_cb_; base::RepeatingClosure on_last_binding_closed_cb_;
// We use the address of each instance as keys to itself. // We use the address of each instance as keys to itself.
......
...@@ -36,7 +36,7 @@ void VideoSourceProviderImpl::GetSourceInfos(GetSourceInfosCallback callback) { ...@@ -36,7 +36,7 @@ void VideoSourceProviderImpl::GetSourceInfos(GetSourceInfosCallback callback) {
void VideoSourceProviderImpl::GetVideoSource( void VideoSourceProviderImpl::GetVideoSource(
const std::string& device_id, const std::string& device_id,
mojom::VideoSourceRequest source_request) { mojo::PendingReceiver<mojom::VideoSource> source_receiver) {
auto source_iter = sources_.find(device_id); auto source_iter = sources_.find(device_id);
if (source_iter == sources_.end()) { if (source_iter == sources_.end()) {
auto video_source = std::make_unique<VideoSourceImpl>( auto video_source = std::make_unique<VideoSourceImpl>(
...@@ -48,7 +48,7 @@ void VideoSourceProviderImpl::GetVideoSource( ...@@ -48,7 +48,7 @@ void VideoSourceProviderImpl::GetVideoSource(
sources_.insert(std::make_pair(device_id, std::move(video_source))) sources_.insert(std::make_pair(device_id, std::move(video_source)))
.first; .first;
} }
source_iter->second->AddToBindingSet(std::move(source_request)); source_iter->second->AddToReceiverSet(std::move(source_receiver));
} }
void VideoSourceProviderImpl::AddSharedMemoryVirtualDevice( void VideoSourceProviderImpl::AddSharedMemoryVirtualDevice(
......
...@@ -28,8 +28,9 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider { ...@@ -28,8 +28,9 @@ class VideoSourceProviderImpl : public mojom::VideoSourceProvider {
// mojom::VideoSourceProvider implementation. // mojom::VideoSourceProvider implementation.
void GetSourceInfos(GetSourceInfosCallback callback) override; void GetSourceInfos(GetSourceInfosCallback callback) override;
void GetVideoSource(const std::string& device_id, void GetVideoSource(
mojom::VideoSourceRequest source_request) override; const std::string& device_id,
mojo::PendingReceiver<mojom::VideoSource> source_receiver) override;
void AddSharedMemoryVirtualDevice( void AddSharedMemoryVirtualDevice(
const media::VideoCaptureDeviceInfo& device_info, const media::VideoCaptureDeviceInfo& device_info,
mojo::PendingRemote<mojom::Producer> producer, mojo::PendingRemote<mojom::Producer> producer,
......
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