| 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() {
|
|
|