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

Unified Diff: chrome/renderer/media/cast_session_delegate.cc

Issue 210303003: Cast: Remove LoggingStats in favor of event subscribers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile Created 6 years, 9 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
« no previous file with comments | « chrome/renderer/media/cast_session_delegate.h ('k') | chrome/renderer/media/cast_transport_sender_ipc.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9c943f811e24fc8defbef02435090bd590ae583a..9c9996514c34c49d8ad6eaabbd764125797f6fe6 100644
--- a/chrome/renderer/media/cast_session_delegate.cc
+++ b/chrome/renderer/media/cast_session_delegate.cc
@@ -16,6 +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/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"
@@ -117,18 +119,13 @@ void CastSessionDelegate::StartVideo(
void CastSessionDelegate::StartUDP(const net::IPEndPoint& remote_endpoint) {
DCHECK(io_message_loop_proxy_->BelongsToCurrentThread());
- // Logging: enable raw events and stats collection.
- media::cast::CastLoggingConfig logging_config =
- media::cast::GetLoggingConfigWithRawEventsAndStatsEnabled();
-
// CastSender uses the renderer's IO thread as the main thread. This reduces
// thread hopping for incoming video frames and outgoing network packets.
cast_environment_ = new CastEnvironment(
scoped_ptr<base::TickClock>(new base::DefaultTickClock()).Pass(),
base::MessageLoopProxy::current(),
g_cast_threads.Get().GetAudioEncodeMessageLoopProxy(),
- g_cast_threads.Get().GetVideoEncodeMessageLoopProxy(),
- logging_config);
+ g_cast_threads.Get().GetVideoEncodeMessageLoopProxy());
// Rationale for using unretained: The callback cannot be called after the
// destruction of CastTransportSenderIPC, and they both share the same thread.
@@ -136,7 +133,6 @@ void CastSessionDelegate::StartUDP(const net::IPEndPoint& remote_endpoint) {
remote_endpoint,
base::Bind(&CastSessionDelegate::StatusNotificationCB,
base::Unretained(this)),
- logging_config,
base::Bind(&CastSessionDelegate::LogRawEvents, base::Unretained(this))));
cast_sender_ = CastSender::Create(cast_environment_, cast_transport_.get());
@@ -147,33 +143,55 @@ void CastSessionDelegate::ToggleLogging(bool is_audio, bool enable) {
DCHECK(io_message_loop_proxy_->BelongsToCurrentThread());
if (enable) {
if (is_audio) {
- if (audio_event_subscriber_.get())
- return;
- audio_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
- media::cast::AUDIO_EVENT, kMaxAudioEventEntries));
- cast_environment_->Logging()->AddRawEventSubscriber(
- audio_event_subscriber_.get());
+ if (!audio_event_subscriber_.get()) {
+ audio_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
+ media::cast::AUDIO_EVENT, kMaxAudioEventEntries));
+ cast_environment_->Logging()->AddRawEventSubscriber(
+ audio_event_subscriber_.get());
+ }
+ if (!audio_stats_subscriber_.get()) {
+ audio_stats_subscriber_.reset(
+ new media::cast::StatsEventSubscriber(media::cast::AUDIO_EVENT));
+ cast_environment_->Logging()->AddRawEventSubscriber(
+ audio_stats_subscriber_.get());
+ }
} else {
- if (video_event_subscriber_.get())
- return;
- video_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
- media::cast::VIDEO_EVENT, kMaxVideoEventEntries));
- cast_environment_->Logging()->AddRawEventSubscriber(
- video_event_subscriber_.get());
+ if (!video_event_subscriber_.get()) {
+ video_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
+ media::cast::VIDEO_EVENT, kMaxVideoEventEntries));
+ cast_environment_->Logging()->AddRawEventSubscriber(
+ video_event_subscriber_.get());
+ }
+ if (!video_stats_subscriber_.get()) {
+ video_stats_subscriber_.reset(
+ new media::cast::StatsEventSubscriber(media::cast::VIDEO_EVENT));
+ cast_environment_->Logging()->AddRawEventSubscriber(
+ video_stats_subscriber_.get());
+ }
}
} else {
if (is_audio) {
- if (!audio_event_subscriber_.get())
- return;
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- audio_event_subscriber_.get());
- audio_event_subscriber_.reset();
+ if (audio_event_subscriber_.get()) {
+ cast_environment_->Logging()->RemoveRawEventSubscriber(
+ audio_event_subscriber_.get());
+ audio_event_subscriber_.reset();
+ }
+ if (audio_stats_subscriber_.get()) {
+ cast_environment_->Logging()->RemoveRawEventSubscriber(
+ audio_stats_subscriber_.get());
+ audio_stats_subscriber_.reset();
+ }
} else {
- if (!video_event_subscriber_.get())
- return;
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- video_event_subscriber_.get());
- video_event_subscriber_.reset();
+ if (video_event_subscriber_.get()) {
+ cast_environment_->Logging()->RemoveRawEventSubscriber(
+ video_event_subscriber_.get());
+ video_event_subscriber_.reset();
+ }
+ if (video_stats_subscriber_.get()) {
+ cast_environment_->Logging()->RemoveRawEventSubscriber(
+ video_stats_subscriber_.get());
+ video_stats_subscriber_.reset();
+ }
}
}
}
@@ -221,12 +239,18 @@ void CastSessionDelegate::GetEventLogsAndReset(
void CastSessionDelegate::GetStatsAndReset(bool is_audio,
const StatsCallback& callback) {
- media::cast::FrameStatsMap frame_stats =
- cast_environment_->Logging()->GetFrameStatsData(
- is_audio ? media::cast::AUDIO_EVENT : media::cast::VIDEO_EVENT);
- media::cast::PacketStatsMap packet_stats =
- cast_environment_->Logging()->GetPacketStatsData(
- is_audio ? media::cast::AUDIO_EVENT : media::cast::VIDEO_EVENT);
+ media::cast::StatsEventSubscriber* subscriber =
+ is_audio ? audio_stats_subscriber_.get() : video_stats_subscriber_.get();
+ if (!subscriber) {
+ callback.Run(make_scoped_ptr(new base::DictionaryValue).Pass());
+ return;
+ }
+
+ media::cast::FrameStatsMap frame_stats;
+ subscriber->GetFrameStats(&frame_stats);
+ media::cast::PacketStatsMap packet_stats;
+ subscriber->GetPacketStats(&packet_stats);
+ subscriber->Reset();
scoped_ptr<base::DictionaryValue> stats = media::cast::ConvertStats(
frame_stats, packet_stats);
« no previous file with comments | « chrome/renderer/media/cast_session_delegate.h ('k') | chrome/renderer/media/cast_transport_sender_ipc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698