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

Side by Side Diff: media/cast/logging/raw_event_subscriber_bundle.cc

Issue 236123003: Cast: Provide more meaningful stats. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed miu's comments Created 6 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "media/cast/logging/raw_event_subscriber_bundle.h"
6
7 #include "media/cast/cast_environment.h"
8 #include "media/cast/logging/receiver_time_offset_estimator_impl.h"
9
10 namespace media {
11 namespace cast {
12
13 RawEventSubscriberBundleForStream::RawEventSubscriberBundleForStream(
14 const scoped_refptr<CastEnvironment>& cast_environment,
15 bool is_audio,
16 ReceiverTimeOffsetEstimator* offset_estimator)
17 : cast_environment_(cast_environment),
18 event_subscriber_(
19 is_audio ? AUDIO_EVENT : VIDEO_EVENT,
20 is_audio ? kMaxAudioEventEntries : kMaxVideoEventEntries),
21 stats_subscriber_(
22 is_audio ? AUDIO_EVENT : VIDEO_EVENT,
23 cast_environment->Clock(), offset_estimator) {
24 cast_environment_->Logging()->AddRawEventSubscriber(&event_subscriber_);
25 cast_environment_->Logging()->AddRawEventSubscriber(&stats_subscriber_);
26 }
27
28 RawEventSubscriberBundleForStream::~RawEventSubscriberBundleForStream() {
29 cast_environment_->Logging()->RemoveRawEventSubscriber(&event_subscriber_);
30 cast_environment_->Logging()->RemoveRawEventSubscriber(&stats_subscriber_);
31 }
32
33 EncodingEventSubscriber*
34 RawEventSubscriberBundleForStream::GetEncodingEventSubscriber() {
35 return &event_subscriber_;
36 }
37
38 StatsEventSubscriber*
39 RawEventSubscriberBundleForStream::GetStatsEventSubscriber() {
40 return &stats_subscriber_;
41 }
42
43 RawEventSubscriberBundle::RawEventSubscriberBundle(
44 const scoped_refptr<CastEnvironment>& cast_environment)
45 : cast_environment_(cast_environment) {}
46
47 RawEventSubscriberBundle::~RawEventSubscriberBundle() {
48 if (receiver_offset_estimator_.get()) {
49 cast_environment_->Logging()->RemoveRawEventSubscriber(
50 receiver_offset_estimator_.get());
51 }
52 }
53
54 void RawEventSubscriberBundle::AddEventSubscribers(bool is_audio) {
55 if (!receiver_offset_estimator_.get()) {
56 receiver_offset_estimator_.reset(
57 new ReceiverTimeOffsetEstimatorImpl);
58 cast_environment_->Logging()->AddRawEventSubscriber(
59 receiver_offset_estimator_.get());
60 }
61 SubscribersMapByStream::iterator it = subscribers_.find(is_audio);
62 if (it != subscribers_.end())
63 return;
64
65 subscribers_.insert(std::make_pair(
66 is_audio,
67 new RawEventSubscriberBundleForStream(
68 cast_environment_, is_audio, receiver_offset_estimator_.get())));
69 }
70
71 void RawEventSubscriberBundle::RemoveEventSubscribers(bool is_audio) {
72 SubscribersMapByStream::iterator it = subscribers_.find(is_audio);
73 if (it == subscribers_.end())
74 return;
75
76 subscribers_.erase(it);
77 if (subscribers_.empty()) {
78 cast_environment_->Logging()->RemoveRawEventSubscriber(
79 receiver_offset_estimator_.get());
80 receiver_offset_estimator_.reset();
81 }
82 }
83
84 EncodingEventSubscriber*
85 RawEventSubscriberBundle::GetEncodingEventSubscriber(bool is_audio) {
86 SubscribersMapByStream::iterator it = subscribers_.find(is_audio);
87 return it == subscribers_.end() ?
88 NULL : it->second->GetEncodingEventSubscriber();
89 }
90
91 StatsEventSubscriber*
92 RawEventSubscriberBundle::GetStatsEventSubscriber(bool is_audio) {
93 SubscribersMapByStream::iterator it = subscribers_.find(is_audio);
94 return it == subscribers_.end() ?
95 NULL : it->second->GetStatsEventSubscriber();
96 }
97
98 } // namespace cast
99 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698