Commit 99b8819d authored by Jose Lopes's avatar Jose Lopes Committed by Commit Bot

media: Migrate BulkRawEventsCallback to repeating callback.

This callback is repeating because it is used as part of a handler for an event,
which can fire repeatedly:
* https://cs.chromium.org/chromium/src/chrome/renderer/media/cast_transport_ipc.cc?sq=package:chromium&dr&g=0&l=135

This is part of the base::Callback migration.

Context: https://cs.chromium.org/chromium/src/docs/callback.md?rcl=9fcc3764aea8f97e9f6de4a9ee61d554e67edcda&l=40

Bug: 714018
Change-Id: Ic2ef406352713bf023bfa476688c9c7a89e5a2df
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2071894
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatardanakj <danakj@chromium.org>
Auto-Submit: Jose Lopes <jabolopes@google.com>
Cr-Commit-Position: refs/heads/master@{#745083}
parent 5a343f29
......@@ -74,14 +74,15 @@ void CastSessionDelegateBase::StartUDP(
// Rationale for using unretained: The callback cannot be called after the
// destruction of CastTransportIPC, and they both share the same thread.
cast_transport_.reset(new CastTransportIPC(
cast_transport_ = std::make_unique<CastTransportIPC>(
local_endpoint, remote_endpoint, std::move(options),
base::Bind(&CastSessionDelegateBase::ReceivePacket,
base::Unretained(this)),
base::Bind(&CastSessionDelegateBase::StatusNotificationCB,
base::Unretained(this), error_callback),
base::Bind(&media::cast::LogEventDispatcher::DispatchBatchOfEvents,
base::Unretained(cast_environment_->logger()))));
base::BindRepeating(
&media::cast::LogEventDispatcher::DispatchBatchOfEvents,
base::Unretained(cast_environment_->logger())));
}
void CastSessionDelegateBase::StatusNotificationCB(
......@@ -182,8 +183,8 @@ void CastSessionDelegate::StartUDP(
DCHECK(io_task_runner_->BelongsToCurrentThread());
CastSessionDelegateBase::StartUDP(local_endpoint, remote_endpoint,
std::move(options), error_callback);
event_subscribers_.reset(
new media::cast::RawEventSubscriberBundle(cast_environment_));
event_subscribers_ = std::make_unique<media::cast::RawEventSubscriberBundle>(
cast_environment_);
cast_sender_ = CastSender::Create(cast_environment_, cast_transport_.get());
}
......
......@@ -20,11 +20,11 @@ CastTransportIPC::CastTransportIPC(
std::unique_ptr<base::DictionaryValue> options,
const media::cast::PacketReceiverCallback& packet_callback,
const media::cast::CastTransportStatusCallback& status_cb,
const media::cast::BulkRawEventsCallback& raw_events_cb)
BulkRawEventsCallback raw_events_cb)
: channel_id_(-1),
packet_callback_(packet_callback),
status_callback_(status_cb),
raw_events_callback_(raw_events_cb) {
raw_events_callback_(std::move(raw_events_cb)) {
if (CastIPCDispatcher::Get()) {
// TODO(miu): CastIPCDispatcher should be provided as a ctor argument.
channel_id_ = CastIPCDispatcher::Get()->AddSender(this);
......
......@@ -22,12 +22,17 @@
// renderer less direct control over the UDP sockets.
class CastTransportIPC : public media::cast::CastTransport {
public:
// Runs when a raw event completes.
using BulkRawEventsCallback = base::RepeatingCallback<void(
std::unique_ptr<std::vector<media::cast::FrameEvent>>,
std::unique_ptr<std::vector<media::cast::PacketEvent>>)>;
CastTransportIPC(const net::IPEndPoint& local_end_point,
const net::IPEndPoint& remote_end_point,
std::unique_ptr<base::DictionaryValue> options,
const media::cast::PacketReceiverCallback& packet_callback,
const media::cast::CastTransportStatusCallback& status_cb,
const media::cast::BulkRawEventsCallback& raw_events_cb);
BulkRawEventsCallback raw_events_cb);
~CastTransportIPC() override;
......@@ -75,7 +80,7 @@ class CastTransportIPC : public media::cast::CastTransport {
int32_t channel_id_;
media::cast::PacketReceiverCallback packet_callback_;
media::cast::CastTransportStatusCallback status_callback_;
media::cast::BulkRawEventsCallback raw_events_callback_;
const BulkRawEventsCallback raw_events_callback_;
using ClientMap =
std::map<uint32_t, std::unique_ptr<media::cast::RtcpObserver>>;
ClientMap clients_;
......
......@@ -47,10 +47,6 @@ struct RtcpTimeData;
using CastTransportStatusCallback =
base::Callback<void(CastTransportStatus status)>;
using BulkRawEventsCallback =
base::Callback<void(std::unique_ptr<std::vector<FrameEvent>>,
std::unique_ptr<std::vector<PacketEvent>>)>;
// Interface to handle received RTCP messages on RTP sender.
class RtcpObserver {
public:
......
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