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

Side by Side Diff: Source/web/WebMediaPlayerClientImpl.cpp

Issue 304353005: Eliminate MediaPlayer & MediaPlayerClient abstractions(rate, setRate and other APIs) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase with latest code Created 6 years, 6 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 (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "config.h" 5 #include "config.h"
6 #include "web/WebMediaPlayerClientImpl.h" 6 #include "web/WebMediaPlayerClientImpl.h"
7 7
8 #include "core/frame/LocalFrame.h" 8 #include "core/frame/LocalFrame.h"
9 #include "core/html/HTMLMediaElement.h" 9 #include "core/html/HTMLMediaElement.h"
10 #include "core/html/TimeRanges.h" 10 #include "core/html/TimeRanges.h"
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 189
190 #if ENABLE(WEB_AUDIO) 190 #if ENABLE(WEB_AUDIO)
191 // Make sure if we create/re-create the WebMediaPlayer that we update our wr apper. 191 // Make sure if we create/re-create the WebMediaPlayer that we update our wr apper.
192 m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); 192 m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider());
193 #endif 193 #endif
194 194
195 m_webMediaPlayer->setVolume(mediaElement().playerVolume()); 195 m_webMediaPlayer->setVolume(mediaElement().playerVolume());
196 196
197 m_webMediaPlayer->setPoster(poster); 197 m_webMediaPlayer->setPoster(poster);
198 198
199 m_webMediaPlayer->setRate(mediaElement().playbackRate());
200
199 #if OS(ANDROID) 201 #if OS(ANDROID)
200 m_usePaintOnAndroid = (loadType != WebMediaPlayer::LoadTypeMediaStream); 202 m_usePaintOnAndroid = (loadType != WebMediaPlayer::LoadTypeMediaStream);
201 #endif 203 #endif
202 204
203 // Tell WebMediaPlayer about any connected CDM (may be null). 205 // Tell WebMediaPlayer about any connected CDM (may be null).
204 m_webMediaPlayer->setContentDecryptionModule(HTMLMediaElementEncryptedMedia: :contentDecryptionModule(mediaElement())); 206 m_webMediaPlayer->setContentDecryptionModule(HTMLMediaElementEncryptedMedia: :contentDecryptionModule(mediaElement()));
205 m_webMediaPlayer->load(loadType, kurl, corsMode); 207 m_webMediaPlayer->load(loadType, kurl, corsMode);
206 } 208 }
207 209
208 double WebMediaPlayerClientImpl::rate() const
209 {
210 return m_rate;
211 }
212
213 void WebMediaPlayerClientImpl::setRate(double rate)
214 {
215 m_rate = rate;
216 if (m_webMediaPlayer)
217 m_webMediaPlayer->setRate(rate);
218 }
219
220 MediaPlayer::NetworkState WebMediaPlayerClientImpl::networkState() const 210 MediaPlayer::NetworkState WebMediaPlayerClientImpl::networkState() const
221 { 211 {
222 if (m_webMediaPlayer) 212 if (m_webMediaPlayer)
223 return static_cast<MediaPlayer::NetworkState>(m_webMediaPlayer->networkS tate()); 213 return static_cast<MediaPlayer::NetworkState>(m_webMediaPlayer->networkS tate());
224 return MediaPlayer::Empty; 214 return MediaPlayer::Empty;
225 } 215 }
226 216
227 MediaPlayer::ReadyState WebMediaPlayerClientImpl::readyState() const 217 MediaPlayer::ReadyState WebMediaPlayerClientImpl::readyState() const
228 { 218 {
229 if (m_webMediaPlayer) 219 if (m_webMediaPlayer)
230 return static_cast<MediaPlayer::ReadyState>(m_webMediaPlayer->readyState ()); 220 return static_cast<MediaPlayer::ReadyState>(m_webMediaPlayer->readyState ());
231 return MediaPlayer::HaveNothing; 221 return MediaPlayer::HaveNothing;
232 } 222 }
233 223
234 double WebMediaPlayerClientImpl::maxTimeSeekable() const
235 {
236 if (m_webMediaPlayer)
237 return m_webMediaPlayer->maxTimeSeekable();
238 return 0.0;
239 }
240
241 PassRefPtr<TimeRanges> WebMediaPlayerClientImpl::buffered() const
242 {
243 if (m_webMediaPlayer)
244 return TimeRanges::create(m_webMediaPlayer->buffered());
245 return TimeRanges::create();
246 }
247
248 bool WebMediaPlayerClientImpl::didLoadingProgress() const
249 {
250 return m_webMediaPlayer && m_webMediaPlayer->didLoadingProgress();
251 }
252
253 void WebMediaPlayerClientImpl::paint(GraphicsContext* context, const IntRect& re ct) 224 void WebMediaPlayerClientImpl::paint(GraphicsContext* context, const IntRect& re ct)
254 { 225 {
255 // Normally GraphicsContext operations do nothing when painting is disabled. 226 // Normally GraphicsContext operations do nothing when painting is disabled.
256 // Since we're accessing platformContext() directly we have to manually 227 // Since we're accessing platformContext() directly we have to manually
257 // check. 228 // check.
258 if (m_webMediaPlayer && !context->paintingDisabled()) { 229 if (m_webMediaPlayer && !context->paintingDisabled()) {
259 // On Android, video frame is emitted as GL_TEXTURE_EXTERNAL_OES texture . We use a different path to 230 // On Android, video frame is emitted as GL_TEXTURE_EXTERNAL_OES texture . We use a different path to
260 // paint the video frame into the context. 231 // paint the video frame into the context.
261 #if OS(ANDROID) 232 #if OS(ANDROID)
262 if (m_usePaintOnAndroid) { 233 if (m_usePaintOnAndroid) {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 SkPaint paint; 303 SkPaint paint;
333 paint.setAlpha(alpha); 304 paint.setAlpha(alpha);
334 // It is not necessary to pass the dest into the drawBitmap call since all t he context have been set up before calling paintCurrentFrameInContext. 305 // It is not necessary to pass the dest into the drawBitmap call since all t he context have been set up before calling paintCurrentFrameInContext.
335 canvas->drawBitmapRect(m_bitmap, NULL, dest, &paint); 306 canvas->drawBitmapRect(m_bitmap, NULL, dest, &paint);
336 } 307 }
337 #endif 308 #endif
338 309
339 WebMediaPlayerClientImpl::WebMediaPlayerClientImpl(MediaPlayerClient* client) 310 WebMediaPlayerClientImpl::WebMediaPlayerClientImpl(MediaPlayerClient* client)
340 : m_client(client) 311 : m_client(client)
341 , m_preload(MediaPlayer::Auto) 312 , m_preload(MediaPlayer::Auto)
342 , m_rate(1.0)
343 #if OS(ANDROID) 313 #if OS(ANDROID)
344 , m_usePaintOnAndroid(false) 314 , m_usePaintOnAndroid(false)
345 #endif 315 #endif
346 { 316 {
347 ASSERT(m_client); 317 ASSERT(m_client);
348 } 318 }
349 319
350 WebCore::HTMLMediaElement& WebMediaPlayerClientImpl::mediaElement() const 320 WebCore::HTMLMediaElement& WebMediaPlayerClientImpl::mediaElement() const
351 { 321 {
352 return *static_cast<HTMLMediaElement*>(m_client); 322 return *static_cast<HTMLMediaElement*>(m_client);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 371
402 void WebMediaPlayerClientImpl::AudioClientImpl::setFormat(size_t numberOfChannel s, float sampleRate) 372 void WebMediaPlayerClientImpl::AudioClientImpl::setFormat(size_t numberOfChannel s, float sampleRate)
403 { 373 {
404 if (m_client) 374 if (m_client)
405 m_client->setFormat(numberOfChannels, sampleRate); 375 m_client->setFormat(numberOfChannels, sampleRate);
406 } 376 }
407 377
408 #endif 378 #endif
409 379
410 } // namespace blink 380 } // namespace blink
OLDNEW
« Source/core/html/HTMLMediaElement.cpp ('K') | « Source/web/WebMediaPlayerClientImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698