Commit 48b7ce7e authored by Thomas Guilbert's avatar Thomas Guilbert Committed by Chromium LUCI CQ

Convert base::Callback in media/cast

Issue crbug.com/454029 was closed as won't fix, and it seems like the
VideoEncodeAccelerator callbacks won't be removed for now.

This CL converts them into their proper {Once|Repeating} callback forms.

These are the last callbacks that need to be converted in media/cast,
and media/ as a whole (although there are still a few uses of
base::Bind in media/).

Bug: 1007801, 714018
Change-Id: Ia133555172d91cdce4a42f48127424d910fbe268
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2566355Reviewed-by: default avatarDavid Bienvenu <davidbienvenu@chromium.org>
Reviewed-by: default avatarmark a. foltz <mfoltz@chromium.org>
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Cr-Commit-Position: refs/heads/master@{#832454}
parent d978cff2
......@@ -46,13 +46,13 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) RtpStreamClient {
// The following are for hardware video encoding.
virtual void CreateVideoEncodeAccelerator(
const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) = 0;
media::cast::ReceiveVideoEncodeAcceleratorCallback callback) = 0;
// TODO(crbug.com/1015472): Remove this interface. Instead, create the shared
// memory in external video encoder through mojo::ScopedSharedBufferHandle.
virtual void CreateVideoEncodeMemory(
size_t size,
const media::cast::ReceiveVideoEncodeMemoryCallback& callback) = 0;
media::cast::ReceiveVideoEncodeMemoryCallback callback) = 0;
};
// Receives video frames and submits the data to media::cast::VideoSender. It
......
......@@ -38,11 +38,10 @@ class DummyClient final : public RtpStreamClient {
void OnError(const std::string& message) override {}
void RequestRefreshFrame() override {}
void CreateVideoEncodeAccelerator(
const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback)
override {}
media::cast::ReceiveVideoEncodeAcceleratorCallback callback) override {}
void CreateVideoEncodeMemory(
size_t size,
const media::cast::ReceiveVideoEncodeMemoryCallback& callback) override {}
media::cast::ReceiveVideoEncodeMemoryCallback callback) override {}
base::WeakPtr<RtpStreamClient> GetWeakPtr() {
return weak_factory_.GetWeakPtr();
......
......@@ -529,7 +529,7 @@ Session::GetSupportedVeaProfiles() {
}
void Session::CreateVideoEncodeAccelerator(
const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) {
media::cast::ReceiveVideoEncodeAcceleratorCallback callback) {
if (callback.is_null())
return;
std::unique_ptr<media::VideoEncodeAccelerator> mojo_vea;
......@@ -545,12 +545,13 @@ void Session::CreateVideoEncodeAccelerator(
mojo_vea.reset(new media::MojoVideoEncodeAccelerator(std::move(vea),
supported_profiles_));
}
callback.Run(base::ThreadTaskRunnerHandle::Get(), std::move(mojo_vea));
std::move(callback).Run(base::ThreadTaskRunnerHandle::Get(),
std::move(mojo_vea));
}
void Session::CreateVideoEncodeMemory(
size_t size,
const media::cast::ReceiveVideoEncodeMemoryCallback& callback) {
media::cast::ReceiveVideoEncodeMemoryCallback callback) {
DVLOG(1) << __func__;
base::UnsafeSharedMemoryRegion buf =
......@@ -559,7 +560,7 @@ void Session::CreateVideoEncodeMemory(
if (!buf.IsValid())
LOG(WARNING) << "Browser failed to allocate shared memory.";
callback.Run(std::move(buf));
std::move(callback).Run(std::move(buf));
}
void Session::OnTransportStatusChanged(CastTransportStatus status) {
......
......@@ -75,11 +75,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) Session final
void OnError(const std::string& message) override;
void RequestRefreshFrame() override;
void CreateVideoEncodeAccelerator(
const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback)
override;
media::cast::ReceiveVideoEncodeAcceleratorCallback callback) override;
void CreateVideoEncodeMemory(
size_t size,
const media::cast::ReceiveVideoEncodeMemoryCallback& callback) override;
media::cast::ReceiveVideoEncodeMemoryCallback callback) override;
// Callbacks by media::cast::CastTransport::Client.
void OnTransportStatusChanged(media::cast::CastTransportStatus status);
......
......@@ -246,15 +246,15 @@ struct FrameReceiverConfig {
};
// TODO(miu): Remove the CreateVEA callbacks. http://crbug.com/454029
typedef base::Callback<void(scoped_refptr<base::SingleThreadTaskRunner>,
std::unique_ptr<media::VideoEncodeAccelerator>)>
typedef base::OnceCallback<void(scoped_refptr<base::SingleThreadTaskRunner>,
std::unique_ptr<media::VideoEncodeAccelerator>)>
ReceiveVideoEncodeAcceleratorCallback;
typedef base::Callback<void(const ReceiveVideoEncodeAcceleratorCallback&)>
typedef base::RepeatingCallback<void(ReceiveVideoEncodeAcceleratorCallback)>
CreateVideoEncodeAcceleratorCallback;
typedef base::Callback<void(base::UnsafeSharedMemoryRegion)>
typedef base::OnceCallback<void(base::UnsafeSharedMemoryRegion)>
ReceiveVideoEncodeMemoryCallback;
typedef base::Callback<void(size_t size,
const ReceiveVideoEncodeMemoryCallback&)>
typedef base::RepeatingCallback<void(size_t size,
ReceiveVideoEncodeMemoryCallback)>
CreateVideoEncodeMemoryCallback;
} // namespace cast
......
......@@ -182,7 +182,7 @@ class ExternalVideoEncoder::VEAClientImpl final
create_video_encode_memory_cb_.Run(
media::VideoFrame::AllocationSize(media::PIXEL_FORMAT_I420,
frame_coded_size_),
base::Bind(&VEAClientImpl::OnCreateInputSharedMemory, this));
base::BindOnce(&VEAClientImpl::OnCreateInputSharedMemory, this));
}
AbortLatestEncodeAttemptDueToErrors();
return;
......@@ -657,9 +657,9 @@ ExternalVideoEncoder::ExternalVideoEncoder(
DCHECK_GT(bit_rate_, 0);
create_vea_cb.Run(
base::Bind(&ExternalVideoEncoder::OnCreateVideoEncodeAccelerator,
weak_factory_.GetWeakPtr(), video_config, first_frame_id,
std::move(status_change_cb)));
base::BindOnce(&ExternalVideoEncoder::OnCreateVideoEncodeAccelerator,
weak_factory_.GetWeakPtr(), video_config, first_frame_id,
std::move(status_change_cb)));
}
ExternalVideoEncoder::~ExternalVideoEncoder() {
......
......@@ -38,7 +38,7 @@ void FakeVideoEncodeAcceleratorFactory::SetAutoRespond(bool auto_respond) {
}
void FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator(
const ReceiveVideoEncodeAcceleratorCallback& callback) {
ReceiveVideoEncodeAcceleratorCallback callback) {
DCHECK(!callback.is_null());
DCHECK(!next_response_vea_);
......@@ -46,18 +46,19 @@ void FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator(
new FakeVideoEncodeAccelerator(task_runner_);
vea->SetWillInitializationSucceed(will_init_succeed_);
next_response_vea_.reset(vea);
vea_response_callback_ = callback;
vea_response_callback_ = std::move(callback);
if (auto_respond_)
RespondWithVideoEncodeAccelerator();
}
void FakeVideoEncodeAcceleratorFactory::CreateSharedMemory(
size_t size, const ReceiveVideoEncodeMemoryCallback& callback) {
size_t size,
ReceiveVideoEncodeMemoryCallback callback) {
DCHECK(!callback.is_null());
DCHECK(!next_response_shm_.IsValid());
next_response_shm_ = base::UnsafeSharedMemoryRegion::Create(size);
shm_response_callback_ = callback;
shm_response_callback_ = std::move(callback);
if (auto_respond_)
RespondWithSharedMemory();
}
......
......@@ -45,13 +45,12 @@ class FakeVideoEncodeAcceleratorFactory {
// Creates a media::FakeVideoEncodeAccelerator. If in auto-respond mode,
// |callback| is run synchronously (i.e., before this method returns).
void CreateVideoEncodeAccelerator(
const ReceiveVideoEncodeAcceleratorCallback& callback);
ReceiveVideoEncodeAcceleratorCallback callback);
// Creates shared memory of the requested |size|. If in auto-respond mode,
// |callback| is run synchronously (i.e., before this method returns).
void CreateSharedMemory(
size_t size,
const ReceiveVideoEncodeMemoryCallback& callback);
void CreateSharedMemory(size_t size,
ReceiveVideoEncodeMemoryCallback callback);
// Runs the |callback| provided to the last call to
// CreateVideoEncodeAccelerator() with the new VideoEncodeAccelerator
......
......@@ -74,11 +74,12 @@ class VideoEncoderTest
cast_environment_, video_config_,
base::BindRepeating(&VideoEncoderTest::OnOperationalStatusChange,
base::Unretained(this)),
base::Bind(
base::BindRepeating(
&FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator,
base::Unretained(vea_factory_.get())),
base::Bind(&FakeVideoEncodeAcceleratorFactory::CreateSharedMemory,
base::Unretained(vea_factory_.get())));
base::BindRepeating(
&FakeVideoEncodeAcceleratorFactory::CreateSharedMemory,
base::Unretained(vea_factory_.get())));
RunTasksAndAdvanceClock();
if (is_encoder_present())
ASSERT_EQ(STATUS_INITIALIZED, operational_status_);
......
......@@ -193,11 +193,12 @@ class VideoSenderTest : public ::testing::Test {
video_sender_.reset(new PeerVideoSender(
cast_environment_, video_config,
base::BindRepeating(&SaveOperationalStatus, &operational_status_),
base::Bind(
base::BindRepeating(
&FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator,
base::Unretained(&vea_factory_)),
base::Bind(&FakeVideoEncodeAcceleratorFactory::CreateSharedMemory,
base::Unretained(&vea_factory_)),
base::BindRepeating(
&FakeVideoEncodeAcceleratorFactory::CreateSharedMemory,
base::Unretained(&vea_factory_)),
transport_sender_.get()));
} else {
video_sender_.reset(new PeerVideoSender(
......
......@@ -14,13 +14,13 @@
namespace {
void CreateVideoEncodeAccelerator(
const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) {
media::cast::ReceiveVideoEncodeAcceleratorCallback callback) {
// Do nothing.
}
void CreateVideoEncodeMemory(
size_t size,
const media::cast::ReceiveVideoEncodeMemoryCallback& callback) {
media::cast::ReceiveVideoEncodeMemoryCallback callback) {
// Do nothing.
}
......@@ -95,11 +95,11 @@ FrameSenderConfig GetDefaultVideoSenderConfig() {
CreateVideoEncodeAcceleratorCallback
CreateDefaultVideoEncodeAcceleratorCallback() {
return base::Bind(&CreateVideoEncodeAccelerator);
return base::BindRepeating(&CreateVideoEncodeAccelerator);
}
CreateVideoEncodeMemoryCallback CreateDefaultVideoEncodeMemoryCallback() {
return base::Bind(&CreateVideoEncodeMemory);
return base::BindRepeating(&CreateVideoEncodeMemory);
}
} // namespace cast
......
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