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

Side by Side Diff: webrtc/common_video/incoming_video_stream.cc

Issue 2729783004: Add performance tracing for PlatformThread and parts of the video code. (Closed)
Patch Set: Rebase Created 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/common_video/include/incoming_video_stream.h" 11 #include "webrtc/common_video/include/incoming_video_stream.h"
12 12
13 #include <memory> 13 #include <memory>
14 14
15 #include "webrtc/base/timeutils.h" 15 #include "webrtc/base/timeutils.h"
16 #include "webrtc/base/trace_event.h"
16 #include "webrtc/common_video/video_render_frames.h" 17 #include "webrtc/common_video/video_render_frames.h"
17 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" 18 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
18 #include "webrtc/system_wrappers/include/event_wrapper.h" 19 #include "webrtc/system_wrappers/include/event_wrapper.h"
19 20
20 namespace webrtc { 21 namespace webrtc {
21 namespace { 22 namespace {
22 const char kIncomingQueueName[] = "IncomingVideoStream"; 23 const char kIncomingQueueName[] = "IncomingVideoStream";
23 } 24 }
24 25
25 // Capture by moving (std::move) into a lambda isn't possible in C++11 26 // Capture by moving (std::move) into a lambda isn't possible in C++11
(...skipping 27 matching lines...) Expand all
53 : render_buffers_(delay_ms), 54 : render_buffers_(delay_ms),
54 callback_(callback), 55 callback_(callback),
55 incoming_render_queue_(kIncomingQueueName, 56 incoming_render_queue_(kIncomingQueueName,
56 rtc::TaskQueue::Priority::HIGH) {} 57 rtc::TaskQueue::Priority::HIGH) {}
57 58
58 IncomingVideoStream::~IncomingVideoStream() { 59 IncomingVideoStream::~IncomingVideoStream() {
59 RTC_DCHECK(main_thread_checker_.CalledOnValidThread()); 60 RTC_DCHECK(main_thread_checker_.CalledOnValidThread());
60 } 61 }
61 62
62 void IncomingVideoStream::OnFrame(const VideoFrame& video_frame) { 63 void IncomingVideoStream::OnFrame(const VideoFrame& video_frame) {
64 TRACE_EVENT0("webrtc", "IncomingVideoStream::OnFrame");
63 RTC_CHECK_RUNS_SERIALIZED(&decoder_race_checker_); 65 RTC_CHECK_RUNS_SERIALIZED(&decoder_race_checker_);
64 RTC_DCHECK(!incoming_render_queue_.IsCurrent()); 66 RTC_DCHECK(!incoming_render_queue_.IsCurrent());
65 incoming_render_queue_.PostTask( 67 incoming_render_queue_.PostTask(
66 std::unique_ptr<rtc::QueuedTask>(new NewFrameTask(this, video_frame))); 68 std::unique_ptr<rtc::QueuedTask>(new NewFrameTask(this, video_frame)));
67 } 69 }
68 70
69 void IncomingVideoStream::Dequeue() { 71 void IncomingVideoStream::Dequeue() {
72 TRACE_EVENT0("webrtc", "IncomingVideoStream::Dequeue");
70 RTC_DCHECK(incoming_render_queue_.IsCurrent()); 73 RTC_DCHECK(incoming_render_queue_.IsCurrent());
71 rtc::Optional<VideoFrame> frame_to_render = render_buffers_.FrameToRender(); 74 rtc::Optional<VideoFrame> frame_to_render = render_buffers_.FrameToRender();
72 if (frame_to_render) 75 if (frame_to_render)
73 callback_->OnFrame(*frame_to_render); 76 callback_->OnFrame(*frame_to_render);
74 77
75 if (render_buffers_.HasPendingFrames()) { 78 if (render_buffers_.HasPendingFrames()) {
76 uint32_t wait_time = render_buffers_.TimeToNextFrameRelease(); 79 uint32_t wait_time = render_buffers_.TimeToNextFrameRelease();
77 incoming_render_queue_.PostDelayedTask([this]() { Dequeue(); }, wait_time); 80 incoming_render_queue_.PostDelayedTask([this]() { Dequeue(); }, wait_time);
78 } 81 }
79 } 82 }
80 83
81 } // namespace webrtc 84 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/base/platform_thread.cc ('k') | webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698