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

Unified Diff: webkit/glue/webmediaplayer_impl.cc

Issue 155404: Fixed bug where playbackRate wasn't being respected. (Closed)
Patch Set: Uploaded too much Created 11 years, 5 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
« no previous file with comments | « webkit/glue/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/webmediaplayer_impl.cc
diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc
index 9f5702f5c36f2bbe913f1e8dd288bcab3dcd918b..3bd5138cb1d35bf48ae8dd790efd2b97e4d883be 100644
--- a/webkit/glue/webmediaplayer_impl.cc
+++ b/webkit/glue/webmediaplayer_impl.cc
@@ -167,6 +167,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(WebKit::WebMediaPlayerClient* client,
main_loop_(NULL),
filter_factory_(factory),
pipeline_thread_("PipelineThread"),
+ paused_(true),
+ playback_rate_(0.0f),
client_(client) {
// Saves the current message loop.
DCHECK(!main_loop_);
@@ -224,14 +226,14 @@ void WebMediaPlayerImpl::cancelLoad() {
void WebMediaPlayerImpl::play() {
DCHECK(MessageLoop::current() == main_loop_);
- // TODO(hclam): We should restore the previous playback rate rather than
- // having it at 1.0.
- pipeline_->SetPlaybackRate(1.0f);
+ paused_ = false;
+ pipeline_->SetPlaybackRate(playback_rate_);
}
void WebMediaPlayerImpl::pause() {
DCHECK(MessageLoop::current() == main_loop_);
+ paused_ = true;
pipeline_->SetPlaybackRate(0.0f);
}
@@ -257,7 +259,10 @@ void WebMediaPlayerImpl::setEndTime(float seconds) {
void WebMediaPlayerImpl::setRate(float rate) {
DCHECK(MessageLoop::current() == main_loop_);
- pipeline_->SetPlaybackRate(rate);
+ playback_rate_ = rate;
+ if (!paused_) {
+ pipeline_->SetPlaybackRate(rate);
+ }
}
void WebMediaPlayerImpl::setVolume(float volume) {
« no previous file with comments | « webkit/glue/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698