Chromium Code Reviews| 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 919324966b54de06f43a3120c02fc1665b98d290..cc5060fc9da5bbdd3c47da4f1789fffe6ff7b83b 100644 |
| --- a/chrome/renderer/media/cast_session_delegate.cc |
| +++ b/chrome/renderer/media/cast_session_delegate.cc |
| @@ -16,8 +16,8 @@ |
| #include "media/cast/logging/encoding_event_subscriber.h" |
| #include "media/cast/logging/log_serializer.h" |
| #include "media/cast/logging/logging_defines.h" |
| +#include "media/cast/logging/receiver_time_offset_estimator_impl.h" |
| #include "media/cast/logging/stats_event_subscriber.h" |
| -#include "media/cast/logging/stats_util.h" |
| #include "media/cast/transport/cast_transport_config.h" |
| #include "media/cast/transport/cast_transport_sender.h" |
| @@ -53,6 +53,10 @@ CastSessionDelegate::~CastSessionDelegate() { |
| DCHECK(io_message_loop_proxy_->BelongsToCurrentThread()); |
| if (cast_environment_.get()) { |
| + if (receiver_offset_estimator_.get()) { |
| + cast_environment_->Logging()->RemoveRawEventSubscriber( |
| + receiver_offset_estimator_.get()); |
| + } |
| if (audio_event_subscriber_.get()) { |
| cast_environment_->Logging()->RemoveRawEventSubscriber( |
| audio_event_subscriber_.get()); |
| @@ -146,6 +150,12 @@ void CastSessionDelegate::ToggleLogging(bool is_audio, bool enable) { |
| if (!cast_environment_.get()) |
| return; |
| if (enable) { |
| + if (!receiver_offset_estimator_.get()) { |
|
miu
2014/04/15 21:29:43
There's a huge amount of copy-and-paste going thro
imcheng
2014/04/17 19:19:06
Per offline discussion I am defining a new struct
|
| + receiver_offset_estimator_.reset( |
| + new media::cast::ReceiverTimeOffsetEstimatorImpl); |
| + cast_environment_->Logging()->AddRawEventSubscriber( |
| + receiver_offset_estimator_.get()); |
| + } |
| if (is_audio) { |
| if (!audio_event_subscriber_.get()) { |
| audio_event_subscriber_.reset(new media::cast::EncodingEventSubscriber( |
| @@ -154,8 +164,10 @@ void CastSessionDelegate::ToggleLogging(bool is_audio, bool enable) { |
| audio_event_subscriber_.get()); |
| } |
| if (!audio_stats_subscriber_.get()) { |
| - audio_stats_subscriber_.reset( |
| - new media::cast::StatsEventSubscriber(media::cast::AUDIO_EVENT)); |
| + audio_stats_subscriber_.reset(new media::cast::StatsEventSubscriber( |
| + media::cast::AUDIO_EVENT, |
| + cast_environment_->Clock(), |
| + receiver_offset_estimator_.get())); |
| cast_environment_->Logging()->AddRawEventSubscriber( |
| audio_stats_subscriber_.get()); |
| } |
| @@ -167,13 +179,21 @@ void CastSessionDelegate::ToggleLogging(bool is_audio, bool enable) { |
| video_event_subscriber_.get()); |
| } |
| if (!video_stats_subscriber_.get()) { |
| - video_stats_subscriber_.reset( |
| - new media::cast::StatsEventSubscriber(media::cast::VIDEO_EVENT)); |
| + video_stats_subscriber_.reset(new media::cast::StatsEventSubscriber( |
| + media::cast::VIDEO_EVENT, |
| + cast_environment_->Clock(), |
| + receiver_offset_estimator_.get())); |
| cast_environment_->Logging()->AddRawEventSubscriber( |
| video_stats_subscriber_.get()); |
| } |
| } |
| } else { |
| + if (receiver_offset_estimator_.get()) { |
| + cast_environment_->Logging()->RemoveRawEventSubscriber( |
| + receiver_offset_estimator_.get()); |
| + receiver_offset_estimator_.reset(); |
| + } |
| + |
| if (is_audio) { |
| if (audio_event_subscriber_.get()) { |
| cast_environment_->Logging()->RemoveRawEventSubscriber( |
| @@ -250,15 +270,9 @@ void CastSessionDelegate::GetStatsAndReset(bool is_audio, |
| return; |
| } |
| - media::cast::FrameStatsMap frame_stats; |
| - subscriber->GetFrameStats(&frame_stats); |
| - media::cast::PacketStatsMap packet_stats; |
| - subscriber->GetPacketStats(&packet_stats); |
| + scoped_ptr<base::DictionaryValue> stats = subscriber->GetStats(); |
| subscriber->Reset(); |
| - scoped_ptr<base::DictionaryValue> stats = media::cast::ConvertStats( |
| - frame_stats, packet_stats); |
| - |
| callback.Run(stats.Pass()); |
| } |