Commit 09c60220 authored by philipj@opera.com's avatar philipj@opera.com

Stop using WebMediaPlayerClient::preload() and volume()

There is a "FIXME: Remove once calls on the Chromium-side have been
removed" for volume() in WebMediaPlayerClient.h. preload() is
similarly strange layering-wise, so get rid of that as well.

Simply store the values when they cannot immediately be forwarded to
the internal object.

In the case of WebMediaPlayerImpl::setVolume(), the value can always
be used immediately, so the setVolume() in DoLoad() appears to simply
have been unnecessary.

BUG=401415

Review URL: https://codereview.chromium.org/443393002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288080 0039d316-1c4b-4281-b951-d872f2087c98
parent 9746db4c
...@@ -171,6 +171,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( ...@@ -171,6 +171,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
: frame_(frame), : frame_(frame),
network_state_(WebMediaPlayer::NetworkStateEmpty), network_state_(WebMediaPlayer::NetworkStateEmpty),
ready_state_(WebMediaPlayer::ReadyStateHaveNothing), ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
preload_(AUTO),
main_loop_(base::MessageLoopProxy::current()), main_loop_(base::MessageLoopProxy::current()),
media_loop_( media_loop_(
RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy()), RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy()),
...@@ -289,10 +290,6 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type, ...@@ -289,10 +290,6 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
load_type_ = load_type; load_type_ = load_type;
// Handle any volume/preload changes that occurred before load().
setVolume(client_->volume());
setPreload(client_->preload());
SetNetworkState(WebMediaPlayer::NetworkStateLoading); SetNetworkState(WebMediaPlayer::NetworkStateLoading);
SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
...@@ -315,6 +312,7 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type, ...@@ -315,6 +312,7 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr()))); base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
data_source_->Initialize( data_source_->Initialize(
base::Bind(&WebMediaPlayerImpl::DataSourceInitialized, AsWeakPtr())); base::Bind(&WebMediaPlayerImpl::DataSourceInitialized, AsWeakPtr()));
data_source_->SetPreload(preload_);
} }
void WebMediaPlayerImpl::play() { void WebMediaPlayerImpl::play() {
...@@ -432,8 +430,9 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) { ...@@ -432,8 +430,9 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) {
DVLOG(1) << __FUNCTION__ << "(" << preload << ")"; DVLOG(1) << __FUNCTION__ << "(" << preload << ")";
DCHECK(main_loop_->BelongsToCurrentThread()); DCHECK(main_loop_->BelongsToCurrentThread());
preload_ = static_cast<content::Preload>(preload);
if (data_source_) if (data_source_)
data_source_->SetPreload(static_cast<content::Preload>(preload)); data_source_->SetPreload(preload_);
} }
bool WebMediaPlayerImpl::hasVideo() const { bool WebMediaPlayerImpl::hasVideo() const {
......
...@@ -239,6 +239,9 @@ class WebMediaPlayerImpl ...@@ -239,6 +239,9 @@ class WebMediaPlayerImpl
blink::WebMediaPlayer::NetworkState network_state_; blink::WebMediaPlayer::NetworkState network_state_;
blink::WebMediaPlayer::ReadyState ready_state_; blink::WebMediaPlayer::ReadyState ready_state_;
// Preload state for when |data_source_| is created after setPreload().
content::Preload preload_;
// Message loops for posting tasks on Chrome's main thread. Also used // Message loops for posting tasks on Chrome's main thread. Also used
// for DCHECKs so methods calls won't execute in the wrong thread. // for DCHECKs so methods calls won't execute in the wrong thread.
const scoped_refptr<base::MessageLoopProxy> main_loop_; const scoped_refptr<base::MessageLoopProxy> main_loop_;
......
...@@ -87,6 +87,7 @@ WebMediaPlayerMS::WebMediaPlayerMS( ...@@ -87,6 +87,7 @@ WebMediaPlayerMS::WebMediaPlayerMS(
network_state_(WebMediaPlayer::NetworkStateEmpty), network_state_(WebMediaPlayer::NetworkStateEmpty),
ready_state_(WebMediaPlayer::ReadyStateHaveNothing), ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
buffered_(static_cast<size_t>(1)), buffered_(static_cast<size_t>(1)),
volume_(1.0f),
client_(client), client_(client),
delegate_(delegate), delegate_(delegate),
paused_(true), paused_(true),
...@@ -135,7 +136,6 @@ void WebMediaPlayerMS::load(LoadType load_type, ...@@ -135,7 +136,6 @@ void WebMediaPlayerMS::load(LoadType load_type,
GURL gurl(url); GURL gurl(url);
setVolume(GetClient()->volume());
SetNetworkState(WebMediaPlayer::NetworkStateLoading); SetNetworkState(WebMediaPlayer::NetworkStateLoading);
SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
...@@ -152,8 +152,10 @@ void WebMediaPlayerMS::load(LoadType load_type, ...@@ -152,8 +152,10 @@ void WebMediaPlayerMS::load(LoadType load_type,
frame->GetRoutingID()); frame->GetRoutingID());
if (video_frame_provider_.get() || audio_renderer_.get()) { if (video_frame_provider_.get() || audio_renderer_.get()) {
if (audio_renderer_.get()) if (audio_renderer_.get()) {
audio_renderer_->SetVolume(volume_);
audio_renderer_->Start(); audio_renderer_->Start();
}
if (video_frame_provider_.get()) { if (video_frame_provider_.get()) {
video_frame_provider_->Start(); video_frame_provider_->Start();
...@@ -234,10 +236,10 @@ void WebMediaPlayerMS::setRate(double rate) { ...@@ -234,10 +236,10 @@ void WebMediaPlayerMS::setRate(double rate) {
void WebMediaPlayerMS::setVolume(double volume) { void WebMediaPlayerMS::setVolume(double volume) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
if (!audio_renderer_.get())
return;
DVLOG(1) << "WebMediaPlayerMS::setVolume(volume=" << volume << ")"; DVLOG(1) << "WebMediaPlayerMS::setVolume(volume=" << volume << ")";
audio_renderer_->SetVolume(volume); volume_ = volume;
if (audio_renderer_.get())
audio_renderer_->SetVolume(volume_);
} }
void WebMediaPlayerMS::setPreload(WebMediaPlayer::Preload preload) { void WebMediaPlayerMS::setPreload(WebMediaPlayer::Preload preload) {
......
...@@ -141,6 +141,8 @@ class WebMediaPlayerMS ...@@ -141,6 +141,8 @@ class WebMediaPlayerMS
blink::WebTimeRanges buffered_; blink::WebTimeRanges buffered_;
float volume_;
// Used for DCHECKs to ensure methods calls executed in the correct thread. // Used for DCHECKs to ensure methods calls executed in the correct thread.
base::ThreadChecker thread_checker_; base::ThreadChecker thread_checker_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment