Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: media/cast/transport/cast_transport_sender_impl.cc

Issue 178073004: Cast: IPC from browser to renderer to send packet events from transport to cast library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed hubbe's comments Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cast/transport/cast_transport_sender_impl.cc
diff --git a/media/cast/transport/cast_transport_sender_impl.cc b/media/cast/transport/cast_transport_sender_impl.cc
index fd7139993c6fc0638e9c17cb02d17643e7b398f6..65043cefa9f1976eaee887adc33c29a4118d3b29 100644
--- a/media/cast/transport/cast_transport_sender_impl.cc
+++ b/media/cast/transport/cast_transport_sender_impl.cc
@@ -16,15 +16,21 @@ CastTransportSender* CastTransportSender::CreateCastTransportSender(
base::TickClock* clock,
const CastTransportConfig& config,
const CastTransportStatusCallback& status_callback,
+ const BulkRawEventsCallback& raw_events_callback,
const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner) {
- return new CastTransportSenderImpl(
- clock, config, status_callback, transport_task_runner.get(), NULL);
+ return new CastTransportSenderImpl(clock,
+ config,
+ status_callback,
+ raw_events_callback,
+ transport_task_runner.get(),
+ NULL);
}
CastTransportSenderImpl::CastTransportSenderImpl(
base::TickClock* clock,
const CastTransportConfig& config,
const CastTransportStatusCallback& status_callback,
+ const BulkRawEventsCallback& raw_events_callback,
const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
PacketSender* external_transport)
: transport_(external_transport ? NULL
@@ -37,15 +43,32 @@ CastTransportSenderImpl::CastTransportSenderImpl(
transport_task_runner),
rtcp_builder_(&pacer_),
audio_sender_(config, clock, transport_task_runner, &pacer_),
- video_sender_(config, clock, transport_task_runner, &pacer_) {
+ video_sender_(config, clock, transport_task_runner, &pacer_),
+ logging_(transport_task_runner,
+ CastLoggingConfig(config.enable_raw_event_logging,
+ false, false)),
+ raw_events_callback_(raw_events_callback) {
if (audio_sender_.initialized() && video_sender_.initialized()) {
status_callback.Run(TRANSPORT_INITIALIZED);
} else {
status_callback.Run(TRANSPORT_UNINITIALIZED);
}
+
+ if (config.enable_raw_event_logging) {
+ event_subscriber_.reset(new SimpleEventSubscriber);
+ logging_.AddRawEventSubscriber(event_subscriber_.get());
+ raw_events_timer_.Start(
+ FROM_HERE,
+ base::TimeDelta::FromSeconds(kSendRawEventsIntervalSecs),
+ this,
+ &CastTransportSenderImpl::SendRawEvents);
+ }
}
-CastTransportSenderImpl::~CastTransportSenderImpl() {}
+CastTransportSenderImpl::~CastTransportSenderImpl() {
+ if (event_subscriber_.get())
+ logging_.RemoveRawEventSubscriber(event_subscriber_.get());
+}
void CastTransportSenderImpl::SetPacketReceiver(
const PacketReceiverCallback& packet_receiver) {
@@ -95,6 +118,13 @@ void CastTransportSenderImpl::SubscribeVideoRtpStatsCallback(
video_sender_.SubscribeVideoRtpStatsCallback(callback);
}
+void CastTransportSenderImpl::SendRawEvents() {
+ DCHECK(event_subscriber_.get());
+ std::vector<PacketEvent> packet_events;
+ event_subscriber_->GetPacketEventsAndReset(&packet_events);
+ raw_events_callback_.Run(packet_events);
+}
+
} // namespace transport
} // namespace cast
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698