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

Side by Side Diff: content/renderer/media/webrtc/media_stream_track_metrics.cc

Issue 2867693004: Snapshot of all changes to get jumbo in blink and content.
Patch Set: Exclude certain files from jumbo because of a Windows problem Created 3 years, 3 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/media_stream_track_metrics.h" 5 #include "content/renderer/media/webrtc/media_stream_track_metrics.h"
6 6
7 #include <inttypes.h> 7 #include <inttypes.h>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 17 matching lines...) Expand all
28 IdSet GetTrackIds(const std::vector<rtc::scoped_refptr<T>>& tracks) { 28 IdSet GetTrackIds(const std::vector<rtc::scoped_refptr<T>>& tracks) {
29 IdSet track_ids; 29 IdSet track_ids;
30 for (const auto& track : tracks) 30 for (const auto& track : tracks)
31 track_ids.insert(track->id()); 31 track_ids.insert(track->id());
32 return track_ids; 32 return track_ids;
33 } 33 }
34 34
35 // TODO(tommi): Consolidate this and TrackObserver since these implementations 35 // TODO(tommi): Consolidate this and TrackObserver since these implementations
36 // are fundamentally achieving the same thing (aside from specific logic inside 36 // are fundamentally achieving the same thing (aside from specific logic inside
37 // the OnChanged callbacks). 37 // the OnChanged callbacks).
38 class MediaStreamObserver 38 class MediaStreamTrackObserver
39 : public base::RefCountedThreadSafe<MediaStreamObserver>, 39 : public base::RefCountedThreadSafe<MediaStreamTrackObserver>,
40 public webrtc::ObserverInterface { 40 public webrtc::ObserverInterface {
41 public: 41 public:
42 typedef base::Callback< 42 typedef base::Callback<
43 void(const IdSet& audio_track_ids, const IdSet& video_track_ids)> 43 void(const IdSet& audio_track_ids, const IdSet& video_track_ids)>
44 OnChangedCallback; 44 OnChangedCallback;
45 45
46 MediaStreamObserver( 46 MediaStreamTrackObserver(
47 const OnChangedCallback& callback, 47 const OnChangedCallback& callback,
48 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread, 48 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread,
49 webrtc::MediaStreamInterface* stream) 49 webrtc::MediaStreamInterface* stream)
50 : main_thread_(main_thread), stream_(stream), callback_(callback) { 50 : main_thread_(main_thread), stream_(stream), callback_(callback) {
51 signaling_thread_.DetachFromThread(); 51 signaling_thread_.DetachFromThread();
52 stream_->RegisterObserver(this); 52 stream_->RegisterObserver(this);
53 } 53 }
54 54
55 const scoped_refptr<webrtc::MediaStreamInterface>& stream() const { 55 const scoped_refptr<webrtc::MediaStreamInterface>& stream() const {
56 DCHECK(main_thread_->BelongsToCurrentThread()); 56 DCHECK(main_thread_->BelongsToCurrentThread());
57 return stream_; 57 return stream_;
58 } 58 }
59 59
60 void Unregister() { 60 void Unregister() {
61 DCHECK(main_thread_->BelongsToCurrentThread()); 61 DCHECK(main_thread_->BelongsToCurrentThread());
62 callback_.Reset(); 62 callback_.Reset();
63 stream_->UnregisterObserver(this); 63 stream_->UnregisterObserver(this);
64 stream_ = nullptr; 64 stream_ = nullptr;
65 } 65 }
66 66
67 private: 67 private:
68 friend class base::RefCountedThreadSafe<MediaStreamObserver>; 68 friend class base::RefCountedThreadSafe<MediaStreamTrackObserver>;
69 ~MediaStreamObserver() override { 69 ~MediaStreamTrackObserver() override {
70 DCHECK(!stream_.get()) << "must have been unregistered before deleting"; 70 DCHECK(!stream_.get()) << "must have been unregistered before deleting";
71 } 71 }
72 72
73 // webrtc::ObserverInterface implementation. 73 // webrtc::ObserverInterface implementation.
74 void OnChanged() override { 74 void OnChanged() override {
75 DCHECK(signaling_thread_.CalledOnValidThread()); 75 DCHECK(signaling_thread_.CalledOnValidThread());
76 main_thread_->PostTask( 76 main_thread_->PostTask(
77 FROM_HERE, base::BindOnce(&MediaStreamObserver::OnChangedOnMainThread, 77 FROM_HERE, base::BindOnce(&MediaStreamTrackObserver::OnChangedOnMainThre ad,
78 this, GetTrackIds(stream_->GetAudioTracks()), 78 this, GetTrackIds(stream_->GetAudioTracks()),
79 GetTrackIds(stream_->GetVideoTracks()))); 79 GetTrackIds(stream_->GetVideoTracks())));
80 } 80 }
81 81
82 void OnChangedOnMainThread(const IdSet& audio_track_ids, 82 void OnChangedOnMainThread(const IdSet& audio_track_ids,
83 const IdSet& video_track_ids) { 83 const IdSet& video_track_ids) {
84 DCHECK(main_thread_->BelongsToCurrentThread()); 84 DCHECK(main_thread_->BelongsToCurrentThread());
85 if (!callback_.is_null()) 85 if (!callback_.is_null())
86 callback_.Run(audio_track_ids, video_track_ids); 86 callback_.Run(audio_track_ids, video_track_ids);
87 } 87 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 131
132 // False until start/end of lifetime messages have been sent. 132 // False until start/end of lifetime messages have been sent.
133 bool has_reported_start_; 133 bool has_reported_start_;
134 bool has_reported_end_; 134 bool has_reported_end_;
135 135
136 // IDs of audio and video tracks in the stream being observed. 136 // IDs of audio and video tracks in the stream being observed.
137 IdSet audio_track_ids_; 137 IdSet audio_track_ids_;
138 IdSet video_track_ids_; 138 IdSet video_track_ids_;
139 139
140 MediaStreamTrackMetrics::StreamType stream_type_; 140 MediaStreamTrackMetrics::StreamType stream_type_;
141 scoped_refptr<MediaStreamObserver> observer_; 141 scoped_refptr<MediaStreamTrackObserver> observer_;
142 142
143 // Non-owning. 143 // Non-owning.
144 MediaStreamTrackMetrics* owner_; 144 MediaStreamTrackMetrics* owner_;
145 base::ThreadChecker thread_checker_; 145 base::ThreadChecker thread_checker_;
146 }; 146 };
147 147
148 namespace { 148 namespace {
149 149
150 // Used with std::find_if. 150 // Used with std::find_if.
151 struct ObserverFinder { 151 struct ObserverFinder {
(...skipping 13 matching lines...) Expand all
165 165
166 MediaStreamTrackMetricsObserver::MediaStreamTrackMetricsObserver( 166 MediaStreamTrackMetricsObserver::MediaStreamTrackMetricsObserver(
167 MediaStreamTrackMetrics::StreamType stream_type, 167 MediaStreamTrackMetrics::StreamType stream_type,
168 MediaStreamInterface* stream, 168 MediaStreamInterface* stream,
169 MediaStreamTrackMetrics* owner) 169 MediaStreamTrackMetrics* owner)
170 : has_reported_start_(false), 170 : has_reported_start_(false),
171 has_reported_end_(false), 171 has_reported_end_(false),
172 audio_track_ids_(GetTrackIds(stream->GetAudioTracks())), 172 audio_track_ids_(GetTrackIds(stream->GetAudioTracks())),
173 video_track_ids_(GetTrackIds(stream->GetVideoTracks())), 173 video_track_ids_(GetTrackIds(stream->GetVideoTracks())),
174 stream_type_(stream_type), 174 stream_type_(stream_type),
175 observer_(new MediaStreamObserver( 175 observer_(new MediaStreamTrackObserver(
176 base::Bind(&MediaStreamTrackMetricsObserver::OnChanged, 176 base::Bind(&MediaStreamTrackMetricsObserver::OnChanged,
177 base::Unretained(this)), 177 base::Unretained(this)),
178 base::ThreadTaskRunnerHandle::Get(), 178 base::ThreadTaskRunnerHandle::Get(),
179 stream)), 179 stream)),
180 owner_(owner) { 180 owner_(owner) {
181 } 181 }
182 182
183 MediaStreamTrackMetricsObserver::~MediaStreamTrackMetricsObserver() { 183 MediaStreamTrackMetricsObserver::~MediaStreamTrackMetricsObserver() {
184 DCHECK(thread_checker_.CalledOnValidThread()); 184 DCHECK(thread_checker_.CalledOnValidThread());
185 observer_->Unregister(); 185 observer_->Unregister();
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 } 393 }
394 394
395 uint64_t MediaStreamTrackMetrics::MakeUniqueId(const std::string& track_id, 395 uint64_t MediaStreamTrackMetrics::MakeUniqueId(const std::string& track_id,
396 StreamType stream_type) { 396 StreamType stream_type) {
397 return MakeUniqueIdImpl( 397 return MakeUniqueIdImpl(
398 reinterpret_cast<uint64_t>(reinterpret_cast<void*>(this)), track_id, 398 reinterpret_cast<uint64_t>(reinterpret_cast<void*>(this)), track_id,
399 stream_type); 399 stream_type);
400 } 400 }
401 401
402 } // namespace content 402 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698