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

Side by Side Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 1358883003: Use GpuMemoryBufferVideoFramePool for WebMediaPlayerMS and MediaStreamVideoRendererSink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@send-gmbs
Patch Set: Created 5 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/webmediaplayer_ms.h" 5 #include "content/renderer/media/webmediaplayer_ms.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 } 89 }
90 90
91 } // anonymous namespace 91 } // anonymous namespace
92 92
93 WebMediaPlayerMS::WebMediaPlayerMS( 93 WebMediaPlayerMS::WebMediaPlayerMS(
94 blink::WebFrame* frame, 94 blink::WebFrame* frame,
95 blink::WebMediaPlayerClient* client, 95 blink::WebMediaPlayerClient* client,
96 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, 96 base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
97 media::MediaLog* media_log, 97 media::MediaLog* media_log,
98 scoped_ptr<MediaStreamRendererFactory> factory, 98 scoped_ptr<MediaStreamRendererFactory> factory,
99 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner) 99 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
100 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
101 const scoped_refptr<base::TaskRunner>& worker_task_runner,
102 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories)
100 : frame_(frame), 103 : frame_(frame),
101 network_state_(WebMediaPlayer::NetworkStateEmpty), 104 network_state_(WebMediaPlayer::NetworkStateEmpty),
102 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 105 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
103 buffered_(static_cast<size_t>(0)), 106 buffered_(static_cast<size_t>(0)),
104 volume_(1.0f), 107 volume_(1.0f),
105 client_(client), 108 client_(client),
106 delegate_(delegate), 109 delegate_(delegate),
107 paused_(true), 110 paused_(true),
108 received_first_frame_(false), 111 received_first_frame_(false),
109 media_log_(media_log), 112 media_log_(media_log),
110 renderer_factory_(factory.Pass()), 113 renderer_factory_(factory.Pass()),
114 media_task_runner_(media_task_runner),
115 worker_task_runner_(worker_task_runner),
116 gpu_factories_(gpu_factories),
111 compositor_(new Compositor(compositor_task_runner)), 117 compositor_(new Compositor(compositor_task_runner)),
112 compositor_task_runner_(compositor_task_runner) { 118 compositor_task_runner_(compositor_task_runner) {
113 DVLOG(1) << "WebMediaPlayerMS::ctor"; 119 DVLOG(1) << "WebMediaPlayerMS::ctor";
114 media_log_->AddEvent( 120 media_log_->AddEvent(
115 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); 121 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED));
116 } 122 }
117 123
118 WebMediaPlayerMS::~WebMediaPlayerMS() { 124 WebMediaPlayerMS::~WebMediaPlayerMS() {
119 DVLOG(1) << "WebMediaPlayerMS::dtor"; 125 DVLOG(1) << "WebMediaPlayerMS::dtor";
120 DCHECK(thread_checker_.CalledOnValidThread()); 126 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 27 matching lines...) Expand all
148 154
149 GURL gurl(url); 155 GURL gurl(url);
150 156
151 SetNetworkState(WebMediaPlayer::NetworkStateLoading); 157 SetNetworkState(WebMediaPlayer::NetworkStateLoading);
152 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); 158 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
153 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); 159 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
154 160
155 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( 161 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider(
156 url, 162 url,
157 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), 163 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()),
158 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); 164 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()),
165 media_task_runner_,
166 worker_task_runner_,
167 gpu_factories_);
159 168
160 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); 169 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_);
161 audio_renderer_ = renderer_factory_->GetAudioRenderer( 170 audio_renderer_ = renderer_factory_->GetAudioRenderer(
162 url, 171 url,
163 frame->GetRoutingID()); 172 frame->GetRoutingID());
164 173
165 if (!video_frame_provider_ && !audio_renderer_) { 174 if (!video_frame_provider_ && !audio_renderer_) {
166 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); 175 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError);
167 return; 176 return;
168 } 177 }
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 } 652 }
644 653
645 unsigned WebMediaPlayerMS::Compositor::GetTotalFrameCount() { 654 unsigned WebMediaPlayerMS::Compositor::GetTotalFrameCount() {
646 return total_frame_count_; 655 return total_frame_count_;
647 } 656 }
648 657
649 unsigned WebMediaPlayerMS::Compositor::GetDroppedFrameCount() { 658 unsigned WebMediaPlayerMS::Compositor::GetDroppedFrameCount() {
650 return dropped_frame_count_; 659 return dropped_frame_count_;
651 } 660 }
652 } // namespace content 661 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698