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

Unified Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 1265433003: Preliminary change for new rtc rendering algorithm (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment Fix Created 5 years, 4 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
Index: content/renderer/media/webmediaplayer_ms.cc
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
index 80bd723099090ab737278b2bbc21ffd751554805..ba83b8bfc4a132c537e92047fda410f18b255d1b 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -451,14 +451,27 @@ void WebMediaPlayerMS::SetVideoFrameProviderClient(
if (video_frame_provider_client_)
video_frame_provider_client_->StopUsingProvider();
video_frame_provider_client_ = client;
+ if (client)
+ client->StartRendering();
}
bool WebMediaPlayerMS::UpdateCurrentFrame(base::TimeTicks deadline_min,
base::TimeTicks deadline_max) {
+ TRACE_EVENT_BEGIN2("webrtc", "WebMediaPlayerMS::UpdateCurrentFrame",
+ "Actual Render Begin", deadline_min.ToInternalValue(),
+ "Actual Render End", deadline_max.ToInternalValue());
+
// TODO(dalecurtis): This should make use of the deadline interval to ensure
// the painted frame is correct for the given interval.
- NOTREACHED();
- return false;
+
+ base::TimeTicks render_time;
+ if (!current_frame_->metadata()->GetTimeTicks(
+ media::VideoFrameMetadata::REFERENCE_TIME, &render_time)) {
+ render_time = base::TimeTicks();
+ }
+ TRACE_EVENT_END1("webrtc", "WebMediaPlayerMS::UpdateCurrentFrame",
+ "Ideal Render Instant", render_time.ToInternalValue());
+ return !current_frame_used_;
}
bool WebMediaPlayerMS::HasCurrentFrame() {
@@ -483,6 +496,15 @@ void WebMediaPlayerMS::OnFrameAvailable(
const scoped_refptr<media::VideoFrame>& frame) {
DVLOG(3) << "WebMediaPlayerMS::OnFrameAvailable";
DCHECK(thread_checker_.CalledOnValidThread());
+
+ base::TimeTicks render_time;
+ if (!frame->metadata()->GetTimeTicks(
+ media::VideoFrameMetadata::REFERENCE_TIME, &render_time)) {
+ render_time = base::TimeTicks();
+ }
+ TRACE_EVENT1("webrtc", "WebMediaPlayerMS::OnFrameAvailable",
+ "Ideal Render Instant", render_time.ToInternalValue());
+
++total_frame_count_;
if (!received_first_frame_) {
received_first_frame_ = true;
@@ -522,8 +544,6 @@ void WebMediaPlayerMS::OnFrameAvailable(
if (size_changed)
GetClient()->sizeChanged();
-
- GetClient()->repaint();
}
void WebMediaPlayerMS::RepaintInternal() {

Powered by Google App Engine
This is Rietveld 408576698