Chromium Code Reviews| Index: webkit/media/webmediaplayer_ms.cc |
| diff --git a/webkit/media/webmediaplayer_ms.cc b/webkit/media/webmediaplayer_ms.cc |
| index ac7a9ca5614152ef87718a731357adfb65171b1f..b4febc8a2c4428457286056b59e843eea2e9fcfa 100644 |
| --- a/webkit/media/webmediaplayer_ms.cc |
| +++ b/webkit/media/webmediaplayer_ms.cc |
| @@ -11,6 +11,7 @@ |
| #include "base/message_loop.h" |
| #include "base/metrics/histogram.h" |
| #include "media/base/media_log.h" |
| +#include "media/base/rtc_audio_renderer.h" |
| #include "media/base/video_frame.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.h" |
| @@ -65,6 +66,10 @@ WebMediaPlayerMS::~WebMediaPlayerMS() { |
| video_frame_provider_->Stop(); |
| } |
| + if (audio_renderer_) { |
| + audio_renderer_->Stop(); |
| + } |
| + |
| media_log_->AddEvent( |
| media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_DESTROYED)); |
| @@ -88,7 +93,10 @@ void WebMediaPlayerMS::load(const WebKit::WebURL& url, CORSMode cors_mode) { |
| url, |
| base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), |
| base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); |
| - if (video_frame_provider_) { |
| + |
| + audio_renderer_ = media_stream_client_->GetAudioRenderer(url); |
| + |
| + if (video_frame_provider_ || audio_renderer_) { |
| SetNetworkState(WebMediaPlayer::NetworkStateLoaded); |
| GetClient()->sourceOpened(); |
| GetClient()->setOpaque(true); |
| @@ -106,12 +114,13 @@ void WebMediaPlayerMS::play() { |
| DVLOG(1) << "WebMediaPlayerMS::play"; |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - if (video_frame_provider_ && paused_) { |
| + if (video_frame_provider_ && paused_) |
| video_frame_provider_->Play(); |
| - } |
| - paused_ = false; |
| - // TODO(wjia): add audio. See crbug.com/142988. |
| + if (audio_renderer_ && paused_) |
| + audio_renderer_->Play(); |
| + |
| + paused_ = false; |
| media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY)); |
| @@ -125,7 +134,9 @@ void WebMediaPlayerMS::pause() { |
| if (video_frame_provider_) |
| video_frame_provider_->Pause(); |
| - // TODO(wjia): add audio. See crbug.com/142988. |
| + |
| + if (audio_renderer_) |
| + audio_renderer_->Pause(); |
|
scherkus (not reviewing)
2012/10/25 17:47:39
nit: add blank line after this (consistent w/ play
no longer working on chromium
2012/10/26 09:35:29
Done.
|
| paused_ = true; |
| media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PAUSE)); |
| @@ -158,8 +169,8 @@ void WebMediaPlayerMS::setRate(float rate) { |
| void WebMediaPlayerMS::setVolume(float volume) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - // TODO(wjia): set audio volume. See crbug.com/142988. |
| - NOTIMPLEMENTED(); |
| + if (audio_renderer_) |
| + audio_renderer_->SetVolume(volume); |
| } |
| void WebMediaPlayerMS::setVisible(bool visible) { |
| @@ -182,8 +193,7 @@ bool WebMediaPlayerMS::hasVideo() const { |
| bool WebMediaPlayerMS::hasAudio() const { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - // TODO(wjia): add audio support. See crbug.com/142988. |
| - return false; |
| + return (audio_renderer_ != NULL); |
| } |
| WebKit::WebSize WebMediaPlayerMS::naturalSize() const { |