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

Unified Diff: chrome/renderer/media/cast_session_delegate.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: fix sender app 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: chrome/renderer/media/cast_session_delegate.cc
diff --git a/chrome/renderer/media/cast_session_delegate.cc b/chrome/renderer/media/cast_session_delegate.cc
index d99d70faccbe997b8b8f7b618a22c02547e8dfdd..5c49cc733a7b9a331304e8d41892251f44e1e125 100644
--- a/chrome/renderer/media/cast_session_delegate.cc
+++ b/chrome/renderer/media/cast_session_delegate.cc
@@ -58,7 +58,8 @@ CastSessionDelegate::~CastSessionDelegate() {
}
}
-void CastSessionDelegate::Initialize() {
+void CastSessionDelegate::Initialize(
+ const media::cast::CastLoggingConfig& logging_config) {
if (cast_environment_)
return; // Already initialized.
@@ -74,7 +75,7 @@ void CastSessionDelegate::Initialize() {
g_cast_threads.Get().GetVideoEncodeMessageLoopProxy(),
NULL,
base::MessageLoopProxy::current(),
- media::cast::GetDefaultCastSenderLoggingConfig());
+ logging_config);
}
void CastSessionDelegate::StartAudio(
@@ -134,19 +135,23 @@ void CastSessionDelegate::StartSendingInternal() {
if (!audio_config_ && !video_config_)
return;
- Initialize();
+ // TODO(imcheng): Enable raw event and stats collection.
+ media::cast::CastLoggingConfig logging_config =
+ media::cast::GetDefaultCastSenderLoggingConfig();
- media::cast::transport::CastTransportConfig config;
+ Initialize(logging_config);
- // TODO(hubbe): set config.aes_key and config.aes_iv_mask.
- config.local_endpoint = local_endpoint_;
- config.receiver_endpoint = remote_endpoint_;
+ media::cast::transport::CastTransportConfig transport_config;
+
+ // TODO(hubbe): set transport_config.aes_key and transport_config.aes_iv_mask.
+ transport_config.local_endpoint = local_endpoint_;
+ transport_config.receiver_endpoint = remote_endpoint_;
if (audio_config_) {
- config.audio_ssrc = audio_config_->sender_ssrc;
- config.audio_codec = audio_config_->codec;
- config.audio_rtp_config = audio_config_->rtp_config;
- config.audio_frequency = audio_config_->frequency;
- config.audio_channels = audio_config_->channels;
+ transport_config.audio_ssrc = audio_config_->sender_ssrc;
+ transport_config.audio_codec = audio_config_->codec;
+ transport_config.audio_rtp_config = audio_config_->rtp_config;
+ transport_config.audio_frequency = audio_config_->frequency;
+ transport_config.audio_channels = audio_config_->channels;
if (!audio_event_subscriber_.get()) {
audio_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
@@ -156,9 +161,9 @@ void CastSessionDelegate::StartSendingInternal() {
}
}
if (video_config_) {
- config.video_ssrc = video_config_->sender_ssrc;
- config.video_codec = video_config_->codec;
- config.video_rtp_config = video_config_->rtp_config;
+ transport_config.video_ssrc = video_config_->sender_ssrc;
+ transport_config.video_codec = video_config_->codec;
+ transport_config.video_rtp_config = video_config_->rtp_config;
if (!video_event_subscriber_.get()) {
video_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
@@ -169,9 +174,11 @@ void CastSessionDelegate::StartSendingInternal() {
}
cast_transport_.reset(new CastTransportSenderIPC(
- config,
+ transport_config,
+ logging_config,
base::Bind(&CastSessionDelegate::StatusNotificationCB,
- base::Unretained(this))));
+ base::Unretained(this)),
+ base::Bind(&CastSessionDelegate::LogRawEvents, base::Unretained(this))));
cast_sender_.reset(CastSender::CreateCastSender(
cast_environment_,
@@ -198,3 +205,21 @@ void CastSessionDelegate::InitializationResult(
}
}
}
+
+void CastSessionDelegate::LogRawEvents(
+ const std::vector<media::cast::PacketEvent>& packet_events) {
+ DCHECK(io_message_loop_proxy_->BelongsToCurrentThread());
+
+ for (std::vector<media::cast::PacketEvent>::const_iterator it =
+ packet_events.begin();
+ it != packet_events.end();
+ ++it) {
+ cast_environment_->Logging()->InsertPacketEvent(it->timestamp,
+ it->type,
+ it->rtp_timestamp,
+ it->frame_id,
+ it->packet_id,
+ it->max_packet_id,
+ it->size);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698