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

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, 2 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 96 }
97 97
98 } // anonymous namespace 98 } // anonymous namespace
99 99
100 WebMediaPlayerMS::WebMediaPlayerMS( 100 WebMediaPlayerMS::WebMediaPlayerMS(
101 blink::WebFrame* frame, 101 blink::WebFrame* frame,
102 blink::WebMediaPlayerClient* client, 102 blink::WebMediaPlayerClient* client,
103 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, 103 base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
104 media::MediaLog* media_log, 104 media::MediaLog* media_log,
105 scoped_ptr<MediaStreamRendererFactory> factory, 105 scoped_ptr<MediaStreamRendererFactory> factory,
106 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner) 106 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
107 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
108 const scoped_refptr<base::TaskRunner>& worker_task_runner,
109 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories)
107 : frame_(frame), 110 : frame_(frame),
108 network_state_(WebMediaPlayer::NetworkStateEmpty), 111 network_state_(WebMediaPlayer::NetworkStateEmpty),
109 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 112 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
110 buffered_(static_cast<size_t>(0)), 113 buffered_(static_cast<size_t>(0)),
111 volume_(1.0f), 114 volume_(1.0f),
112 client_(client), 115 client_(client),
113 delegate_(delegate), 116 delegate_(delegate),
114 paused_(true), 117 paused_(true),
115 received_first_frame_(false), 118 received_first_frame_(false),
116 media_log_(media_log), 119 media_log_(media_log),
117 renderer_factory_(factory.Pass()), 120 renderer_factory_(factory.Pass()),
121 media_task_runner_(media_task_runner),
122 worker_task_runner_(worker_task_runner),
123 gpu_factories_(gpu_factories),
118 compositor_(new Compositor(compositor_task_runner)), 124 compositor_(new Compositor(compositor_task_runner)),
119 compositor_task_runner_(compositor_task_runner) { 125 compositor_task_runner_(compositor_task_runner) {
120 DVLOG(1) << "WebMediaPlayerMS::ctor"; 126 DVLOG(1) << "WebMediaPlayerMS::ctor";
121 media_log_->AddEvent( 127 media_log_->AddEvent(
122 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); 128 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED));
123 } 129 }
124 130
125 WebMediaPlayerMS::~WebMediaPlayerMS() { 131 WebMediaPlayerMS::~WebMediaPlayerMS() {
126 DVLOG(1) << "WebMediaPlayerMS::dtor"; 132 DVLOG(1) << "WebMediaPlayerMS::dtor";
127 DCHECK(thread_checker_.CalledOnValidThread()); 133 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 uint32 hash_value = base::Hash(url.string().utf8()); 175 uint32 hash_value = base::Hash(url.string().utf8());
170 compositor_->SetSerial(((hash_value & 0x7FFFFFFF) << 1) | (remote ? 1 : 0)); 176 compositor_->SetSerial(((hash_value & 0x7FFFFFFF) << 1) | (remote ? 1 : 0));
171 177
172 SetNetworkState(WebMediaPlayer::NetworkStateLoading); 178 SetNetworkState(WebMediaPlayer::NetworkStateLoading);
173 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); 179 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
174 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); 180 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
175 181
176 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( 182 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider(
177 url, 183 url,
178 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), 184 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()),
179 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); 185 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()),
186 media_task_runner_,
187 worker_task_runner_,
188 gpu_factories_);
180 189
181 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); 190 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_);
182 audio_renderer_ = renderer_factory_->GetAudioRenderer( 191 audio_renderer_ = renderer_factory_->GetAudioRenderer(
183 url, 192 url,
184 frame->GetRoutingID()); 193 frame->GetRoutingID());
185 194
186 if (!video_frame_provider_ && !audio_renderer_) { 195 if (!video_frame_provider_ && !audio_renderer_) {
187 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); 196 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError);
188 return; 197 return;
189 } 198 }
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() { 772 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() {
764 DCHECK(thread_checker_.CalledOnValidThread()); 773 DCHECK(thread_checker_.CalledOnValidThread());
765 return !!frame_pool_; 774 return !!frame_pool_;
766 } 775 }
767 776
768 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) { 777 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) {
769 DCHECK(thread_checker_.CalledOnValidThread()); 778 DCHECK(thread_checker_.CalledOnValidThread());
770 serial_ = serial; 779 serial_ = serial;
771 } 780 }
772 } // namespace content 781 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698