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

Unified Diff: webkit/media/webmediaplayer_ms.cc

Issue 11270012: Adding audio support to the new webmediaplyer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added a lock to protect the |renderer_| Created 8 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 side-by-side diff with in-line comments
Download patch
« media/base/rtc_audio_renderer.cc ('K') | « webkit/media/webmediaplayer_ms.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_ms.cc
diff --git a/webkit/media/webmediaplayer_ms.cc b/webkit/media/webmediaplayer_ms.cc
index b6343232fa415c8fdb34a9676fd464f042c80a6f..2ebef38cfcf7ee78a398824e999896e66a1211c3 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);
@@ -117,7 +125,9 @@ void WebMediaPlayerMS::play() {
video_frame_provider_->Start();
}
}
- // TODO(wjia): add audio. See crbug.com/142988.
+
+ if (audio_renderer_)
+ audio_renderer_->Play();
media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY));
@@ -131,7 +141,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();
paused_ = true;
media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PAUSE));
@@ -164,8 +176,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) {
@@ -189,7 +201,7 @@ bool WebMediaPlayerMS::hasVideo() const {
bool WebMediaPlayerMS::hasAudio() const {
DCHECK(thread_checker_.CalledOnValidThread());
// TODO(wjia): add audio support. See crbug.com/142988.
wjia(left Chromium) 2012/10/24 22:05:15 nit: remove this TODO.
no longer working on chromium 2012/10/25 10:19:41 Done.
- return false;
+ return (audio_renderer_);
wjia(left Chromium) 2012/10/24 22:05:15 nit: no need to have parentheses.
no longer working on chromium 2012/10/25 10:19:41 I changed it to be the same style as in hasVideo()
}
WebKit::WebSize WebMediaPlayerMS::naturalSize() const {
« media/base/rtc_audio_renderer.cc ('K') | « webkit/media/webmediaplayer_ms.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698