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

Unified Diff: remoting/client/software_video_renderer.cc

Issue 2113523007: More cleanups in FrameStats (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix android Created 4 years, 5 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 | « remoting/client/software_video_renderer.h ('k') | remoting/protocol/fake_video_renderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/software_video_renderer.cc
diff --git a/remoting/client/software_video_renderer.cc b/remoting/client/software_video_renderer.cc
index 4329920ab44fe4ea33233934c01e0a029b17f039..930087dcf9f985ec84d4a7f1a4da3110f5452ab3 100644
--- a/remoting/client/software_video_renderer.cc
+++ b/remoting/client/software_video_renderer.cc
@@ -46,18 +46,17 @@ std::unique_ptr<webrtc::DesktopFrame> DoDecodeFrame(
} // namespace
SoftwareVideoRenderer::SoftwareVideoRenderer(protocol::FrameConsumer* consumer)
- : consumer_(consumer),
- weak_factory_(this) {
+ : consumer_(consumer), weak_factory_(this) {
thread_checker_.DetachFromThread();
}
SoftwareVideoRenderer::SoftwareVideoRenderer(
scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner,
protocol::FrameConsumer* consumer,
- protocol::PerformanceTracker* perf_tracker)
+ protocol::FrameStatsConsumer* stats_consumer)
: decode_task_runner_(decode_task_runner),
consumer_(consumer),
- perf_tracker_(perf_tracker),
+ stats_consumer_(stats_consumer),
weak_factory_(this) {}
SoftwareVideoRenderer::~SoftwareVideoRenderer() {
@@ -67,10 +66,10 @@ SoftwareVideoRenderer::~SoftwareVideoRenderer() {
bool SoftwareVideoRenderer::Initialize(
const ClientContext& client_context,
- protocol::PerformanceTracker* perf_tracker) {
+ protocol::FrameStatsConsumer* stats_consumer) {
DCHECK(thread_checker_.CalledOnValidThread());
decode_task_runner_ = client_context.decode_task_runner();
- perf_tracker_ = perf_tracker;
+ stats_consumer_ = stats_consumer;
return true;
}
@@ -105,6 +104,10 @@ protocol::FrameConsumer* SoftwareVideoRenderer::GetFrameConsumer() {
return consumer_;
}
+protocol::FrameStatsConsumer* SoftwareVideoRenderer::GetFrameStatsConsumer() {
+ return stats_consumer_;
+}
+
void SoftwareVideoRenderer::ProcessVideoPacket(
std::unique_ptr<VideoPacket> packet,
const base::Closure& done) {
@@ -112,15 +115,17 @@ void SoftwareVideoRenderer::ProcessVideoPacket(
base::ScopedClosureRunner done_runner(done);
- std::unique_ptr<protocol::FrameStats> frame_stats(new protocol::FrameStats(
- protocol::FrameStats::GetForVideoPacket(*packet)));
+ std::unique_ptr<protocol::FrameStats> frame_stats(new protocol::FrameStats());
+ frame_stats->host_stats =
+ protocol::HostFrameStats::GetForVideoPacket(*packet);
+ frame_stats->client_stats.time_received = base::TimeTicks::Now();
// If the video packet is empty then there is nothing to decode. Empty packets
// are used to maintain activity on the network. Stats for such packets still
// need to be reported.
if (!packet->has_data() || packet->data().size() == 0) {
- if (perf_tracker_)
- perf_tracker_->RecordVideoFrameStats(*frame_stats);
+ if (stats_consumer_)
+ stats_consumer_->OnVideoFrameStats(*frame_stats);
return;
}
@@ -162,8 +167,7 @@ void SoftwareVideoRenderer::RenderFrame(
std::unique_ptr<webrtc::DesktopFrame> frame) {
DCHECK(thread_checker_.CalledOnValidThread());
- stats->time_decoded = base::TimeTicks::Now();
-
+ stats->client_stats.time_decoded = base::TimeTicks::Now();
if (!frame) {
if (!done.is_null())
done.Run();
@@ -181,9 +185,9 @@ void SoftwareVideoRenderer::OnFrameRendered(
const base::Closure& done) {
DCHECK(thread_checker_.CalledOnValidThread());
- stats->time_rendered = base::TimeTicks::Now();
- if (perf_tracker_)
- perf_tracker_->RecordVideoFrameStats(*stats);
+ stats->client_stats.time_rendered = base::TimeTicks::Now();
+ if (stats_consumer_)
+ stats_consumer_->OnVideoFrameStats(*stats);
if (!done.is_null())
done.Run();
« no previous file with comments | « remoting/client/software_video_renderer.h ('k') | remoting/protocol/fake_video_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698