summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--chromecast/browser/media/cma_message_filter_host.cc2
-rw-r--r--chromecast/browser/media/cma_message_filter_host.h2
-rw-r--r--chromecast/browser/media/media_pipeline_host.cc2
-rw-r--r--chromecast/browser/media/media_pipeline_host.h2
-rw-r--r--chromecast/common/media/cma_messages.h2
-rw-r--r--chromecast/media/base/switching_media_renderer.cc2
-rw-r--r--chromecast/media/base/switching_media_renderer.h2
-rw-r--r--chromecast/media/cma/filters/cma_renderer.cc4
-rw-r--r--chromecast/media/cma/filters/cma_renderer.h4
-rw-r--r--chromecast/media/cma/pipeline/media_pipeline.h2
-rw-r--r--chromecast/media/cma/pipeline/media_pipeline_impl.cc2
-rw-r--r--chromecast/media/cma/pipeline/media_pipeline_impl.h2
-rw-r--r--chromecast/renderer/media/media_pipeline_proxy.cc6
-rw-r--r--chromecast/renderer/media/media_pipeline_proxy.h2
-rw-r--r--media/base/mock_filters.h6
-rw-r--r--media/base/pipeline.cc10
-rw-r--r--media/base/pipeline.h20
-rw-r--r--media/base/pipeline_unittest.cc12
-rw-r--r--media/base/renderer.h2
-rw-r--r--media/base/time_delta_interpolator.cc4
-rw-r--r--media/base/time_delta_interpolator.h4
-rw-r--r--media/base/time_delta_interpolator_unittest.cc14
-rw-r--r--media/base/time_source.h2
-rw-r--r--media/base/wall_clock_time_source.cc4
-rw-r--r--media/base/wall_clock_time_source.h2
-rw-r--r--media/blink/buffered_data_source.cc4
-rw-r--r--media/blink/buffered_data_source.h4
-rw-r--r--media/blink/buffered_data_source_unittest.cc14
-rw-r--r--media/blink/buffered_resource_loader.cc14
-rw-r--r--media/blink/buffered_resource_loader.h6
-rw-r--r--media/blink/buffered_resource_loader_unittest.cc2
-rw-r--r--media/blink/webmediaplayer_impl.cc4
-rw-r--r--media/filters/audio_clock_unittest.cc2
-rw-r--r--media/filters/audio_renderer_algorithm.cc12
-rw-r--r--media/filters/audio_renderer_algorithm.h8
-rw-r--r--media/filters/audio_renderer_algorithm_unittest.cc6
-rw-r--r--media/mojo/interfaces/media_renderer.mojom2
-rw-r--r--media/mojo/services/mojo_renderer_impl.cc2
-rw-r--r--media/mojo/services/mojo_renderer_impl.h2
-rw-r--r--media/mojo/services/mojo_renderer_service.cc2
-rw-r--r--media/mojo/services/mojo_renderer_service.h2
-rw-r--r--media/renderers/audio_renderer_impl.cc8
-rw-r--r--media/renderers/audio_renderer_impl.h2
-rw-r--r--media/renderers/audio_renderer_impl_unittest.cc14
-rw-r--r--media/renderers/renderer_impl.cc6
-rw-r--r--media/renderers/renderer_impl.h4
-rw-r--r--media/renderers/renderer_impl_unittest.cc10
48 files changed, 124 insertions, 123 deletions
diff --git a/AUTHORS b/AUTHORS
index 85609f3..7391295 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -19,6 +19,7 @@ Addanki Gandhi Kishor <kishor.ag@samsung.com>
Adenilson Cavalcanti <a.cavalcanti@samsung.com>
Aditya Bhargava <heuristicist@gmail.com>
Ajay Berwal <ajay.berwal@samsung.com>
+Ajay Berwal <a.berwal@samsung.com>
Ajith Kumar V <ajith.v@samsung.com>
Aku Kotkavuo <a.kotkavuo@partner.samsung.com>
Alex Gabriel <minilogo@gmail.com>
diff --git a/chromecast/browser/media/cma_message_filter_host.cc b/chromecast/browser/media/cma_message_filter_host.cc
index 899b9ef..d3664c9 100644
--- a/chromecast/browser/media/cma_message_filter_host.cc
+++ b/chromecast/browser/media/cma_message_filter_host.cc
@@ -442,7 +442,7 @@ void CmaMessageFilterHost::Stop(int media_id) {
}
void CmaMessageFilterHost::SetPlaybackRate(
- int media_id, float playback_rate) {
+ int media_id, double playback_rate) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
MediaPipelineHost* media_pipeline = LookupById(media_id);
if (!media_pipeline)
diff --git a/chromecast/browser/media/cma_message_filter_host.h b/chromecast/browser/media/cma_message_filter_host.h
index 763727c..e000574 100644
--- a/chromecast/browser/media/cma_message_filter_host.h
+++ b/chromecast/browser/media/cma_message_filter_host.h
@@ -77,7 +77,7 @@ class CmaMessageFilterHost
void StartPlayingFrom(int media_id, base::TimeDelta time);
void Flush(int media_id);
void Stop(int media_id);
- void SetPlaybackRate(int media_id, float playback_rate);
+ void SetPlaybackRate(int media_id, double playback_rate);
void SetVolume(int media_id, TrackId track_id, float volume);
void NotifyPipeWrite(int media_id, TrackId track_id);
void NotifyExternalSurface(int surface_id,
diff --git a/chromecast/browser/media/media_pipeline_host.cc b/chromecast/browser/media/media_pipeline_host.cc
index ff97612..ff3eb69 100644
--- a/chromecast/browser/media/media_pipeline_host.cc
+++ b/chromecast/browser/media/media_pipeline_host.cc
@@ -142,7 +142,7 @@ void MediaPipelineHost::Stop() {
media_pipeline_->Stop();
}
-void MediaPipelineHost::SetPlaybackRate(float playback_rate) {
+void MediaPipelineHost::SetPlaybackRate(double playback_rate) {
DCHECK(thread_checker_.CalledOnValidThread());
media_pipeline_->SetPlaybackRate(playback_rate);
}
diff --git a/chromecast/browser/media/media_pipeline_host.h b/chromecast/browser/media/media_pipeline_host.h
index 1dea01e..dc15db9 100644
--- a/chromecast/browser/media/media_pipeline_host.h
+++ b/chromecast/browser/media/media_pipeline_host.h
@@ -59,7 +59,7 @@ class MediaPipelineHost {
void Flush(const ::media::PipelineStatusCB& status_cb);
void Stop();
- void SetPlaybackRate(float playback_rate);
+ void SetPlaybackRate(double playback_rate);
void SetVolume(TrackId track_id, float playback_rate);
void SetCdm(BrowserCdmCast* cdm);
diff --git a/chromecast/common/media/cma_messages.h b/chromecast/common/media/cma_messages.h
index 414913b..3fbed3d 100644
--- a/chromecast/common/media/cma_messages.h
+++ b/chromecast/common/media/cma_messages.h
@@ -41,7 +41,7 @@ IPC_MESSAGE_CONTROL1(CmaHostMsg_Stop,
int /* Media pipeline ID */)
IPC_MESSAGE_CONTROL2(CmaHostMsg_SetPlaybackRate,
int /* Media pipeline ID */,
- float /* Playback rate */)
+ double /* Playback rate */)
IPC_MESSAGE_CONTROL3(CmaHostMsg_CreateAvPipe,
int /* Media pipeline ID */,
diff --git a/chromecast/media/base/switching_media_renderer.cc b/chromecast/media/base/switching_media_renderer.cc
index 79b7d1ef..b0a12c3 100644
--- a/chromecast/media/base/switching_media_renderer.cc
+++ b/chromecast/media/base/switching_media_renderer.cc
@@ -78,7 +78,7 @@ void SwitchingMediaRenderer::StartPlayingFrom(base::TimeDelta time) {
GetRenderer()->StartPlayingFrom(time);
}
-void SwitchingMediaRenderer::SetPlaybackRate(float playback_rate) {
+void SwitchingMediaRenderer::SetPlaybackRate(double playback_rate) {
GetRenderer()->SetPlaybackRate(playback_rate);
}
diff --git a/chromecast/media/base/switching_media_renderer.h b/chromecast/media/base/switching_media_renderer.h
index 2739f40..c32b1d4 100644
--- a/chromecast/media/base/switching_media_renderer.h
+++ b/chromecast/media/base/switching_media_renderer.h
@@ -43,7 +43,7 @@ class SwitchingMediaRenderer : public ::media::Renderer {
const ::media::CdmAttachedCB& cdm_attached_cb) override;
void Flush(const base::Closure& flush_cb) override;
void StartPlayingFrom(base::TimeDelta time) override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
void SetVolume(float volume) override;
base::TimeDelta GetMediaTime() override;
bool HasAudio() override;
diff --git a/chromecast/media/cma/filters/cma_renderer.cc b/chromecast/media/cma/filters/cma_renderer.cc
index bc29b4f..0de0634 100644
--- a/chromecast/media/cma/filters/cma_renderer.cc
+++ b/chromecast/media/cma/filters/cma_renderer.cc
@@ -55,7 +55,7 @@ CmaRenderer::CmaRenderer(scoped_ptr<MediaPipeline> media_pipeline,
initial_video_hole_created_(false),
time_interpolator_(
new ::media::TimeDeltaInterpolator(&default_tick_clock_)),
- playback_rate_(1.0f),
+ playback_rate_(1.0),
weak_factory_(this) {
weak_this_ = weak_factory_.GetWeakPtr();
thread_checker_.DetachFromThread();
@@ -185,7 +185,7 @@ void CmaRenderer::StartPlayingFrom(base::TimeDelta time) {
CompleteStateTransition(kPlaying);
}
-void CmaRenderer::SetPlaybackRate(float playback_rate) {
+void CmaRenderer::SetPlaybackRate(double playback_rate) {
CMALOG(kLogControl) << __FUNCTION__ << ": " << playback_rate;
DCHECK(thread_checker_.CalledOnValidThread());
media_pipeline_->SetPlaybackRate(playback_rate);
diff --git a/chromecast/media/cma/filters/cma_renderer.h b/chromecast/media/cma/filters/cma_renderer.h
index 25fec41..d33699e 100644
--- a/chromecast/media/cma/filters/cma_renderer.h
+++ b/chromecast/media/cma/filters/cma_renderer.h
@@ -50,7 +50,7 @@ class CmaRenderer : public ::media::Renderer {
const base::Closure& waiting_for_decryption_key_cb) override;
void Flush(const base::Closure& flush_cb) override;
void StartPlayingFrom(base::TimeDelta time) override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
void SetVolume(float volume) override;
base::TimeDelta GetMediaTime() override;
bool HasAudio() override;
@@ -137,7 +137,7 @@ class CmaRenderer : public ::media::Renderer {
// as playback progresses.
scoped_ptr< ::media::TimeDeltaInterpolator> time_interpolator_;
- float playback_rate_;
+ double playback_rate_;
base::WeakPtr<CmaRenderer> weak_this_;
base::WeakPtrFactory<CmaRenderer> weak_factory_;
diff --git a/chromecast/media/cma/pipeline/media_pipeline.h b/chromecast/media/cma/pipeline/media_pipeline.h
index 2b82c4f..6b127cb 100644
--- a/chromecast/media/cma/pipeline/media_pipeline.h
+++ b/chromecast/media/cma/pipeline/media_pipeline.h
@@ -57,7 +57,7 @@ class MediaPipeline {
virtual void Stop() = 0;
// Set the playback rate.
- virtual void SetPlaybackRate(float playback_rate) = 0;
+ virtual void SetPlaybackRate(double playback_rate) = 0;
private:
DISALLOW_COPY_AND_ASSIGN(MediaPipeline);
diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.cc b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
index c713f9a..ced7df14 100644
--- a/chromecast/media/cma/pipeline/media_pipeline_impl.cc
+++ b/chromecast/media/cma/pipeline/media_pipeline_impl.cc
@@ -263,7 +263,7 @@ void MediaPipelineImpl::Stop() {
video_pipeline_->Stop();
}
-void MediaPipelineImpl::SetPlaybackRate(float rate) {
+void MediaPipelineImpl::SetPlaybackRate(double rate) {
CMALOG(kLogControl) << __FUNCTION__ << " rate=" << rate;
DCHECK(thread_checker_.CalledOnValidThread());
target_playback_rate_ = rate;
diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.h b/chromecast/media/cma/pipeline/media_pipeline_impl.h
index 166b8f9..eb14a55 100644
--- a/chromecast/media/cma/pipeline/media_pipeline_impl.h
+++ b/chromecast/media/cma/pipeline/media_pipeline_impl.h
@@ -51,7 +51,7 @@ class MediaPipelineImpl : public MediaPipeline {
void StartPlayingFrom(base::TimeDelta time) override;
void Flush(const ::media::PipelineStatusCB& status_cb) override;
void Stop() override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
AudioPipelineImpl* GetAudioPipelineImpl() const;
VideoPipelineImpl* GetVideoPipelineImpl() const;
diff --git a/chromecast/renderer/media/media_pipeline_proxy.cc b/chromecast/renderer/media/media_pipeline_proxy.cc
index 7a454b1..830ac0f 100644
--- a/chromecast/renderer/media/media_pipeline_proxy.cc
+++ b/chromecast/renderer/media/media_pipeline_proxy.cc
@@ -34,7 +34,7 @@ class MediaPipelineProxyInternal {
void StartPlayingFrom(const base::TimeDelta& time);
void Flush(const ::media::PipelineStatusCB& status_cb);
void Stop();
- void SetPlaybackRate(float playback_rate);
+ void SetPlaybackRate(double playback_rate);
private:
void Shutdown();
@@ -135,7 +135,7 @@ void MediaPipelineProxyInternal::StartPlayingFrom(const base::TimeDelta& time) {
client_.error_cb.Run(::media::PIPELINE_ERROR_ABORT);
}
-void MediaPipelineProxyInternal::SetPlaybackRate(float playback_rate) {
+void MediaPipelineProxyInternal::SetPlaybackRate(double playback_rate) {
DCHECK(thread_checker_.CalledOnValidThread());
media_channel_proxy_->Send(scoped_ptr<IPC::Message>(
new CmaHostMsg_SetPlaybackRate(
@@ -274,7 +274,7 @@ void MediaPipelineProxy::Stop() {
FORWARD_ON_IO_THREAD(Stop);
}
-void MediaPipelineProxy::SetPlaybackRate(float playback_rate) {
+void MediaPipelineProxy::SetPlaybackRate(double playback_rate) {
DCHECK(thread_checker_.CalledOnValidThread());
FORWARD_ON_IO_THREAD(SetPlaybackRate, playback_rate);
}
diff --git a/chromecast/renderer/media/media_pipeline_proxy.h b/chromecast/renderer/media/media_pipeline_proxy.h
index 0d22795..decec65 100644
--- a/chromecast/renderer/media/media_pipeline_proxy.h
+++ b/chromecast/renderer/media/media_pipeline_proxy.h
@@ -50,7 +50,7 @@ class MediaPipelineProxy : public MediaPipeline {
void StartPlayingFrom(base::TimeDelta time) override;
void Flush(const ::media::PipelineStatusCB& status_cb) override;
void Stop() override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
private:
void OnProxyFlushDone(const ::media::PipelineStatusCB& status_cb,
diff --git a/media/base/mock_filters.h b/media/base/mock_filters.h
index 37940e6..26700f6 100644
--- a/media/base/mock_filters.h
+++ b/media/base/mock_filters.h
@@ -34,7 +34,7 @@ class MockDemuxer : public Demuxer {
// Demuxer implementation.
MOCK_METHOD3(Initialize,
void(DemuxerHost* host, const PipelineStatusCB& cb, bool));
- MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
+ MOCK_METHOD1(SetPlaybackRate, void(double playback_rate));
MOCK_METHOD2(Seek, void(base::TimeDelta time, const PipelineStatusCB& cb));
MOCK_METHOD0(Stop, void());
MOCK_METHOD0(OnAudioRendererDisabled, void());
@@ -179,7 +179,7 @@ class MockRenderer : public Renderer {
const base::Closure& waiting_for_decryption_key_cb));
MOCK_METHOD1(Flush, void(const base::Closure& flush_cb));
MOCK_METHOD1(StartPlayingFrom, void(base::TimeDelta timestamp));
- MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
+ MOCK_METHOD1(SetPlaybackRate, void(double playback_rate));
MOCK_METHOD1(SetVolume, void(float volume));
MOCK_METHOD0(GetMediaTime, base::TimeDelta());
MOCK_METHOD0(HasAudio, bool());
@@ -200,7 +200,7 @@ class MockTimeSource : public TimeSource {
// TimeSource implementation.
MOCK_METHOD0(StartTicking, void());
MOCK_METHOD0(StopTicking, void());
- MOCK_METHOD1(SetPlaybackRate, void(float));
+ MOCK_METHOD1(SetPlaybackRate, void(double));
MOCK_METHOD1(SetMediaTime, void(base::TimeDelta));
MOCK_METHOD0(CurrentMediaTime, base::TimeDelta());
MOCK_METHOD1(GetWallClockTime, base::TimeTicks(base::TimeDelta));
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index c39ddcd..4a39704 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -37,7 +37,7 @@ Pipeline::Pipeline(
running_(false),
did_loading_progress_(false),
volume_(1.0f),
- playback_rate_(0.0f),
+ playback_rate_(0.0),
status_(PIPELINE_OK),
state_(kCreated),
renderer_ended_(false),
@@ -121,13 +121,13 @@ bool Pipeline::IsRunning() const {
return running_;
}
-float Pipeline::GetPlaybackRate() const {
+double Pipeline::GetPlaybackRate() const {
base::AutoLock auto_lock(lock_);
return playback_rate_;
}
-void Pipeline::SetPlaybackRate(float playback_rate) {
- if (playback_rate < 0.0f)
+void Pipeline::SetPlaybackRate(double playback_rate) {
+ if (playback_rate < 0.0)
return;
base::AutoLock auto_lock(lock_);
@@ -552,7 +552,7 @@ void Pipeline::ErrorChangedTask(PipelineStatus error) {
DoStop(base::Bind(&Pipeline::OnStopCompleted, weak_factory_.GetWeakPtr()));
}
-void Pipeline::PlaybackRateChangedTask(float playback_rate) {
+void Pipeline::PlaybackRateChangedTask(double playback_rate) {
DCHECK(task_runner_->BelongsToCurrentThread());
// Playback rate changes are only carried out while playing.
diff --git a/media/base/pipeline.h b/media/base/pipeline.h
index f10bc39..b63be00 100644
--- a/media/base/pipeline.h
+++ b/media/base/pipeline.h
@@ -141,17 +141,17 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
bool IsRunning() const;
// Gets the current playback rate of the pipeline. When the pipeline is
- // started, the playback rate will be 0.0f. A rate of 1.0f indicates
+ // started, the playback rate will be 0.0. A rate of 1.0 indicates
// that the pipeline is rendering the media at the standard rate. Valid
- // values for playback rate are >= 0.0f.
- float GetPlaybackRate() const;
+ // values for playback rate are >= 0.0.
+ double GetPlaybackRate() const;
- // Attempt to adjust the playback rate. Setting a playback rate of 0.0f pauses
- // all rendering of the media. A rate of 1.0f indicates a normal playback
- // rate. Values for the playback rate must be greater than or equal to 0.0f.
+ // Attempt to adjust the playback rate. Setting a playback rate of 0.0 pauses
+ // all rendering of the media. A rate of 1.0 indicates a normal playback
+ // rate. Values for the playback rate must be greater than or equal to 0.0.
//
// TODO(scherkus): What about maximum rate? Does HTML5 specify a max?
- void SetPlaybackRate(float playback_rate);
+ void SetPlaybackRate(double playback_rate);
// Gets the current volume setting being used by the audio renderer. When
// the pipeline is started, this value will be 1.0f. Valid values range
@@ -242,7 +242,7 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
void ErrorChangedTask(PipelineStatus error);
// Carries out notifying filters that the playback rate has changed.
- void PlaybackRateChangedTask(float playback_rate);
+ void PlaybackRateChangedTask(double playback_rate);
// Carries out notifying filters that the volume has changed.
void VolumeChangedTask(float volume);
@@ -319,10 +319,10 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
// filters.
float volume_;
- // Current playback rate (>= 0.0f). This value is set immediately via
+ // Current playback rate (>= 0.0). This value is set immediately via
// SetPlaybackRate() and a task is dispatched on the task runner to notify
// the filters.
- float playback_rate_;
+ double playback_rate_;
// Current duration as reported by |demuxer_|.
base::TimeDelta duration_;
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
index 09d9fdd..d4f9fa0 100644
--- a/media/base/pipeline_unittest.cc
+++ b/media/base/pipeline_unittest.cc
@@ -209,7 +209,7 @@ class PipelineTest : public ::testing::Test {
if (start_status == PIPELINE_OK) {
EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_));
- EXPECT_CALL(*renderer_, SetPlaybackRate(0.0f));
+ EXPECT_CALL(*renderer_, SetPlaybackRate(0.0));
EXPECT_CALL(*renderer_, SetVolume(1.0f));
EXPECT_CALL(*renderer_, StartPlayingFrom(start_time_))
.WillOnce(SetBufferingState(&buffering_state_cb_,
@@ -337,9 +337,9 @@ TEST_F(PipelineTest, NotStarted) {
// Setting should still work.
EXPECT_EQ(0.0f, pipeline_->GetPlaybackRate());
- pipeline_->SetPlaybackRate(-1.0f);
+ pipeline_->SetPlaybackRate(-1.0);
EXPECT_EQ(0.0f, pipeline_->GetPlaybackRate());
- pipeline_->SetPlaybackRate(1.0f);
+ pipeline_->SetPlaybackRate(1.0);
EXPECT_EQ(1.0f, pipeline_->GetPlaybackRate());
// Setting should still work.
@@ -640,7 +640,7 @@ TEST_F(PipelineTest, ErrorDuringSeek) {
SetRendererExpectations();
StartPipelineAndExpect(PIPELINE_OK);
- float playback_rate = 1.0f;
+ double playback_rate = 1.0;
EXPECT_CALL(*renderer_, SetPlaybackRate(playback_rate));
pipeline_->SetPlaybackRate(playback_rate);
message_loop_.RunUntilIdle();
@@ -675,7 +675,7 @@ static void TestNoCallsAfterError(
EXPECT_TRUE(message_loop->IsIdleForTesting());
// Make calls on pipeline after error has occurred.
- pipeline->SetPlaybackRate(0.5f);
+ pipeline->SetPlaybackRate(0.5);
pipeline->SetVolume(0.5f);
// No additional tasks should be queued as a result of these calls.
@@ -877,7 +877,7 @@ class PipelineTeardownTest : public PipelineTest {
EXPECT_CALL(callbacks_, OnMetadata(_));
// If we get here it's a successful initialization.
- EXPECT_CALL(*renderer_, SetPlaybackRate(0.0f));
+ EXPECT_CALL(*renderer_, SetPlaybackRate(0.0));
EXPECT_CALL(*renderer_, SetVolume(1.0f));
EXPECT_CALL(*renderer_, StartPlayingFrom(base::TimeDelta()))
.WillOnce(SetBufferingState(&buffering_state_cb_,
diff --git a/media/base/renderer.h b/media/base/renderer.h
index 31661c4..75372fb 100644
--- a/media/base/renderer.h
+++ b/media/base/renderer.h
@@ -65,7 +65,7 @@ class MEDIA_EXPORT Renderer {
virtual void StartPlayingFrom(base::TimeDelta time) = 0;
// Updates the current playback rate. The default playback rate should be 1.
- virtual void SetPlaybackRate(float playback_rate) = 0;
+ virtual void SetPlaybackRate(double playback_rate) = 0;
// Sets the output volume. The default volume should be 1.
virtual void SetVolume(float volume) = 0;
diff --git a/media/base/time_delta_interpolator.cc b/media/base/time_delta_interpolator.cc
index 11ba1cd..acff37e 100644
--- a/media/base/time_delta_interpolator.cc
+++ b/media/base/time_delta_interpolator.cc
@@ -16,7 +16,7 @@ TimeDeltaInterpolator::TimeDeltaInterpolator(base::TickClock* tick_clock)
: tick_clock_(tick_clock),
interpolating_(false),
upper_bound_(kNoTimestamp()),
- playback_rate_(1.0f) {
+ playback_rate_(1.0) {
DCHECK(tick_clock_);
}
@@ -37,7 +37,7 @@ base::TimeDelta TimeDeltaInterpolator::StopInterpolating() {
return lower_bound_;
}
-void TimeDeltaInterpolator::SetPlaybackRate(float playback_rate) {
+void TimeDeltaInterpolator::SetPlaybackRate(double playback_rate) {
lower_bound_ = GetInterpolatedTime();
reference_ = tick_clock_->NowTicks();
playback_rate_ = playback_rate;
diff --git a/media/base/time_delta_interpolator.h b/media/base/time_delta_interpolator.h
index af7535d..7dbda69 100644
--- a/media/base/time_delta_interpolator.h
+++ b/media/base/time_delta_interpolator.h
@@ -42,7 +42,7 @@ class MEDIA_EXPORT TimeDeltaInterpolator {
// Sets a new rate at which to interpolate.
//
// |tick_clock| will be queried for a new reference time value.
- void SetPlaybackRate(float playback_rate);
+ void SetPlaybackRate(double playback_rate);
// Sets the two timestamps to interpolate between at |playback_rate_|.
// |upper_bound| must be greater or equal to |lower_bound|.
@@ -72,7 +72,7 @@ class MEDIA_EXPORT TimeDeltaInterpolator {
// |lower_bound_| and |upper_bound_|.
base::TimeTicks reference_;
- float playback_rate_;
+ double playback_rate_;
DISALLOW_COPY_AND_ASSIGN(TimeDeltaInterpolator);
};
diff --git a/media/base/time_delta_interpolator_unittest.cc b/media/base/time_delta_interpolator_unittest.cc
index 04242f1..04ee8f7 100644
--- a/media/base/time_delta_interpolator_unittest.cc
+++ b/media/base/time_delta_interpolator_unittest.cc
@@ -40,7 +40,7 @@ TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_DoubleSpeed) {
const base::TimeDelta kZero;
const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(5);
- interpolator_.SetPlaybackRate(2.0f);
+ interpolator_.SetPlaybackRate(2.0);
EXPECT_EQ(kZero, interpolator_.StartInterpolating());
AdvanceSystemTime(kTimeToAdvance);
EXPECT_EQ(2 * kTimeToAdvance, interpolator_.GetInterpolatedTime());
@@ -50,7 +50,7 @@ TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_HalfSpeed) {
const base::TimeDelta kZero;
const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(4);
- interpolator_.SetPlaybackRate(0.5f);
+ interpolator_.SetPlaybackRate(0.5);
EXPECT_EQ(kZero, interpolator_.StartInterpolating());
AdvanceSystemTime(kTimeToAdvance);
EXPECT_EQ(kTimeToAdvance / 2, interpolator_.GetInterpolatedTime());
@@ -68,9 +68,9 @@ TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_ZeroSpeed) {
EXPECT_EQ(kZero, interpolator_.StartInterpolating());
AdvanceSystemTime(kPlayDuration1);
- interpolator_.SetPlaybackRate(0.0f);
+ interpolator_.SetPlaybackRate(0.0);
AdvanceSystemTime(kPlayDuration2);
- interpolator_.SetPlaybackRate(1.0f);
+ interpolator_.SetPlaybackRate(1.0);
AdvanceSystemTime(kPlayDuration3);
EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
@@ -86,14 +86,14 @@ TEST_F(TimeDeltaInterpolatorTest, StartInterpolating_MultiSpeed) {
const base::TimeDelta kExpected =
kPlayDuration1 / 2 + kPlayDuration2 + 2 * kPlayDuration3;
- interpolator_.SetPlaybackRate(0.5f);
+ interpolator_.SetPlaybackRate(0.5);
EXPECT_EQ(kZero, interpolator_.StartInterpolating());
AdvanceSystemTime(kPlayDuration1);
- interpolator_.SetPlaybackRate(1.0f);
+ interpolator_.SetPlaybackRate(1.0);
AdvanceSystemTime(kPlayDuration2);
- interpolator_.SetPlaybackRate(2.0f);
+ interpolator_.SetPlaybackRate(2.0);
AdvanceSystemTime(kPlayDuration3);
EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
}
diff --git a/media/base/time_source.h b/media/base/time_source.h
index 71fe858..d025de2 100644
--- a/media/base/time_source.h
+++ b/media/base/time_source.h
@@ -27,7 +27,7 @@ class MEDIA_EXPORT TimeSource {
// Updates the current playback rate. It is expected that values from
// CurrentMediaTime() will eventually reflect the new playback rate (e.g., the
// media time will advance at half speed if the rate was set to 0.5f).
- virtual void SetPlaybackRate(float playback_rate) = 0;
+ virtual void SetPlaybackRate(double playback_rate) = 0;
// Sets the media time to start ticking from. Only valid to call while the
// time source is not ticking.
diff --git a/media/base/wall_clock_time_source.cc b/media/base/wall_clock_time_source.cc
index e58162e..0369306 100644
--- a/media/base/wall_clock_time_source.cc
+++ b/media/base/wall_clock_time_source.cc
@@ -12,7 +12,7 @@ namespace media {
WallClockTimeSource::WallClockTimeSource()
: tick_clock_(new base::DefaultTickClock()),
ticking_(false),
- playback_rate_(1.0f) {
+ playback_rate_(1.0) {
}
WallClockTimeSource::~WallClockTimeSource() {
@@ -35,7 +35,7 @@ void WallClockTimeSource::StopTicking() {
reference_wall_ticks_ = tick_clock_->NowTicks();
}
-void WallClockTimeSource::SetPlaybackRate(float playback_rate) {
+void WallClockTimeSource::SetPlaybackRate(double playback_rate) {
DVLOG(1) << __FUNCTION__ << "(" << playback_rate << ")";
base::AutoLock auto_lock(lock_);
// Estimate current media time using old rate to use as a new base time for
diff --git a/media/base/wall_clock_time_source.h b/media/base/wall_clock_time_source.h
index d3d210e..1de6518 100644
--- a/media/base/wall_clock_time_source.h
+++ b/media/base/wall_clock_time_source.h
@@ -25,7 +25,7 @@ class MEDIA_EXPORT WallClockTimeSource : public TimeSource {
// TimeSource implementation.
void StartTicking() override;
void StopTicking() override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
void SetMediaTime(base::TimeDelta time) override;
base::TimeDelta CurrentMediaTime() override;
base::TimeTicks GetWallClockTime(base::TimeDelta time) override;
diff --git a/media/blink/buffered_data_source.cc b/media/blink/buffered_data_source.cc
index ed93848..d5f32b1 100644
--- a/media/blink/buffered_data_source.cc
+++ b/media/blink/buffered_data_source.cc
@@ -189,11 +189,11 @@ void BufferedDataSource::Abort() {
frame_ = NULL;
}
-void BufferedDataSource::MediaPlaybackRateChanged(float playback_rate) {
+void BufferedDataSource::MediaPlaybackRateChanged(double playback_rate) {
DCHECK(render_task_runner_->BelongsToCurrentThread());
DCHECK(loader_.get());
- if (playback_rate < 0.0f)
+ if (playback_rate < 0.0)
return;
playback_rate_ = playback_rate;
diff --git a/media/blink/buffered_data_source.h b/media/blink/buffered_data_source.h
index e149bb0..32f1481 100644
--- a/media/blink/buffered_data_source.h
+++ b/media/blink/buffered_data_source.h
@@ -100,7 +100,7 @@ class MEDIA_EXPORT BufferedDataSource : public DataSource {
// Notifies changes in playback state for controlling media buffering
// behavior.
- void MediaPlaybackRateChanged(float playback_rate);
+ void MediaPlaybackRateChanged(double playback_rate);
void MediaIsPlaying();
void MediaIsPaused();
bool media_has_played() const { return media_has_played_; }
@@ -229,7 +229,7 @@ class MEDIA_EXPORT BufferedDataSource : public DataSource {
int bitrate_;
// Current playback rate.
- float playback_rate_;
+ double playback_rate_;
scoped_refptr<MediaLog> media_log_;
diff --git a/media/blink/buffered_data_source_unittest.cc b/media/blink/buffered_data_source_unittest.cc
index eed8674..3776fd6 100644
--- a/media/blink/buffered_data_source_unittest.cc
+++ b/media/blink/buffered_data_source_unittest.cc
@@ -234,9 +234,9 @@ class BufferedDataSourceTest : public testing::Test {
return loader()->defer_strategy_;
}
int data_source_bitrate() { return data_source_->bitrate_; }
- int data_source_playback_rate() { return data_source_->playback_rate_; }
+ double data_source_playback_rate() { return data_source_->playback_rate_; }
int loader_bitrate() { return loader()->bitrate_; }
- int loader_playback_rate() { return loader()->playback_rate_; }
+ double loader_playback_rate() { return loader()->playback_rate_; }
bool is_local_source() { return data_source_->assume_fully_buffered(); }
void set_might_be_reused_from_cache_in_future(bool value) {
loader()->might_be_reused_from_cache_in_future_ = value;
@@ -560,9 +560,9 @@ TEST_F(BufferedDataSourceTest, DefaultValues) {
EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
EXPECT_EQ(0, data_source_bitrate());
- EXPECT_EQ(0.0f, data_source_playback_rate());
+ EXPECT_EQ(0.0, data_source_playback_rate());
EXPECT_EQ(0, loader_bitrate());
- EXPECT_EQ(0.0f, loader_playback_rate());
+ EXPECT_EQ(0.0, loader_playback_rate());
EXPECT_TRUE(data_source_->loading());
Stop();
@@ -594,10 +594,10 @@ TEST_F(BufferedDataSourceTest, SetBitrate) {
TEST_F(BufferedDataSourceTest, MediaPlaybackRateChanged) {
InitializeWith206Response();
- data_source_->MediaPlaybackRateChanged(2.0f);
+ data_source_->MediaPlaybackRateChanged(2.0);
message_loop_.RunUntilIdle();
- EXPECT_EQ(2.0f, data_source_playback_rate());
- EXPECT_EQ(2.0f, loader_playback_rate());
+ EXPECT_EQ(2.0, data_source_playback_rate());
+ EXPECT_EQ(2.0, loader_playback_rate());
// Read so far ahead to cause the loader to get recreated.
BufferedResourceLoader* old_loader = loader();
diff --git a/media/blink/buffered_resource_loader.cc b/media/blink/buffered_resource_loader.cc
index b2598ea..51ec8fe 100644
--- a/media/blink/buffered_resource_loader.cc
+++ b/media/blink/buffered_resource_loader.cc
@@ -54,12 +54,12 @@ static const int kForwardWaitThreshold = 2 * kMegabyte;
// Computes the suggested backward and forward capacity for the buffer
// if one wants to play at |playback_rate| * the natural playback speed.
// Use a value of 0 for |bitrate| if it is unknown.
-static void ComputeTargetBufferWindow(float playback_rate, int bitrate,
+static void ComputeTargetBufferWindow(double playback_rate, int bitrate,
int* out_backward_capacity,
int* out_forward_capacity) {
static const int kDefaultBitrate = 200 * 1024 * 8; // 200 Kbps.
static const int kMaxBitrate = 20 * kMegabyte * 8; // 20 Mbps.
- static const float kMaxPlaybackRate = 25.0;
+ static const double kMaxPlaybackRate = 25.0;
static const int kTargetSecondsBufferedAhead = 10;
static const int kTargetSecondsBufferedBehind = 2;
@@ -71,12 +71,12 @@ static void ComputeTargetBufferWindow(float playback_rate, int bitrate,
// Only scale the buffer window for playback rates greater than 1.0 in
// magnitude and clamp to prevent overflow.
bool backward_playback = false;
- if (playback_rate < 0.0f) {
+ if (playback_rate < 0.0) {
backward_playback = true;
- playback_rate *= -1.0f;
+ playback_rate *= -1.0;
}
- playback_rate = std::max(playback_rate, 1.0f);
+ playback_rate = std::max(playback_rate, 1.0);
playback_rate = std::min(playback_rate, kMaxPlaybackRate);
int bytes_per_second = (bitrate / 8.0) * playback_rate;
@@ -101,7 +101,7 @@ BufferedResourceLoader::BufferedResourceLoader(
int64 last_byte_position,
DeferStrategy strategy,
int bitrate,
- float playback_rate,
+ double playback_rate,
MediaLog* media_log)
: buffer_(kMinBufferCapacity, kMinBufferCapacity),
loader_failed_(false),
@@ -571,7 +571,7 @@ void BufferedResourceLoader::UpdateDeferStrategy(DeferStrategy strategy) {
UpdateDeferBehavior();
}
-void BufferedResourceLoader::SetPlaybackRate(float playback_rate) {
+void BufferedResourceLoader::SetPlaybackRate(double playback_rate) {
playback_rate_ = playback_rate;
// This is a pause so don't bother updating the buffer window as we'll likely
diff --git a/media/blink/buffered_resource_loader.h b/media/blink/buffered_resource_loader.h
index 2b9cf57..cb02720 100644
--- a/media/blink/buffered_resource_loader.h
+++ b/media/blink/buffered_resource_loader.h
@@ -85,7 +85,7 @@ class MEDIA_EXPORT BufferedResourceLoader
int64 last_byte_position,
DeferStrategy strategy,
int bitrate,
- float playback_rate,
+ double playback_rate,
MediaLog* media_log);
virtual ~BufferedResourceLoader();
@@ -179,7 +179,7 @@ class MEDIA_EXPORT BufferedResourceLoader
// Sets the playback rate to the given value and updates buffer window
// accordingly.
- void SetPlaybackRate(float playback_rate);
+ void SetPlaybackRate(double playback_rate);
// Sets the bitrate to the given value and updates buffer window
// accordingly.
@@ -314,7 +314,7 @@ class MEDIA_EXPORT BufferedResourceLoader
int bitrate_;
// Playback rate of the media.
- float playback_rate_;
+ double playback_rate_;
scoped_refptr<MediaLog> media_log_;
diff --git a/media/blink/buffered_resource_loader_unittest.cc b/media/blink/buffered_resource_loader_unittest.cc
index f046d60..1fdd6d8 100644
--- a/media/blink/buffered_resource_loader_unittest.cc
+++ b/media/blink/buffered_resource_loader_unittest.cc
@@ -1068,7 +1068,7 @@ TEST_F(BufferedResourceLoaderTest, BufferWindow_PlaybackRate_Zero) {
TEST_F(BufferedResourceLoaderTest, BufferWindow_PlaybackRate_BelowLowerBound) {
Initialize(kHttpUrl, -1, -1);
Start();
- loader_->SetPlaybackRate(0.1f);
+ loader_->SetPlaybackRate(0.1);
CheckBufferWindowBounds();
StopWhenLoad();
}
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 8fa7a7f..ac67b21 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -122,7 +122,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
opaque_(false),
paused_(true),
seeking_(false),
- playback_rate_(0.0f),
+ playback_rate_(0.0),
ended_(false),
pending_seek_(false),
pending_seek_seconds_(0.0f),
@@ -269,7 +269,7 @@ void WebMediaPlayerImpl::pause() {
const bool was_already_paused = paused_ || playback_rate_ == 0;
paused_ = true;
- pipeline_.SetPlaybackRate(0.0f);
+ pipeline_.SetPlaybackRate(0.0);
if (data_source_)
data_source_->MediaIsPaused();
UpdatePausedTime();
diff --git a/media/filters/audio_clock_unittest.cc b/media/filters/audio_clock_unittest.cc
index 7b4d85fd..3fe437e 100644
--- a/media/filters/audio_clock_unittest.cc
+++ b/media/filters/audio_clock_unittest.cc
@@ -19,7 +19,7 @@ class AudioClockTest : public testing::Test {
void WroteAudio(int frames_written,
int frames_requested,
int delay_frames,
- float playback_rate) {
+ double playback_rate) {
clock_.WroteAudio(
frames_written, frames_requested, delay_frames, playback_rate);
}
diff --git a/media/filters/audio_renderer_algorithm.cc b/media/filters/audio_renderer_algorithm.cc
index 16e903c..0d59d39 100644
--- a/media/filters/audio_renderer_algorithm.cc
+++ b/media/filters/audio_renderer_algorithm.cc
@@ -49,8 +49,8 @@ namespace media {
// Max/min supported playback rates for fast/slow audio. Audio outside of these
// ranges are muted.
// Audio at these speeds would sound better under a frequency domain algorithm.
-static const float kMinPlaybackRate = 0.5f;
-static const float kMaxPlaybackRate = 4.0f;
+static const double kMinPlaybackRate = 0.5;
+static const double kMaxPlaybackRate = 4.0;
// Overlap-and-add window size in milliseconds.
static const int kOlaWindowSizeMs = 20;
@@ -144,7 +144,7 @@ void AudioRendererAlgorithm::Initialize(const AudioParameters& params) {
int AudioRendererAlgorithm::FillBuffer(AudioBus* dest,
int dest_offset,
int requested_frames,
- float playback_rate) {
+ double playback_rate) {
if (playback_rate == 0)
return 0;
@@ -237,7 +237,7 @@ bool AudioRendererAlgorithm::CanPerformWsola() const {
search_block_index_ + search_block_size <= frames;
}
-bool AudioRendererAlgorithm::RunOneWsolaIteration(float playback_rate) {
+bool AudioRendererAlgorithm::RunOneWsolaIteration(double playback_rate) {
if (!CanPerformWsola())
return false;
@@ -263,7 +263,7 @@ bool AudioRendererAlgorithm::RunOneWsolaIteration(float playback_rate) {
return true;
}
-void AudioRendererAlgorithm::UpdateOutputTime(float playback_rate,
+void AudioRendererAlgorithm::UpdateOutputTime(double playback_rate,
double time_change) {
output_time_ += time_change;
// Center of the search region, in frames.
@@ -272,7 +272,7 @@ void AudioRendererAlgorithm::UpdateOutputTime(float playback_rate,
search_block_index_ = search_block_center_index - search_block_center_offset_;
}
-void AudioRendererAlgorithm::RemoveOldInputFrames(float playback_rate) {
+void AudioRendererAlgorithm::RemoveOldInputFrames(double playback_rate) {
const int earliest_used_index = std::min(target_block_index_,
search_block_index_);
if (earliest_used_index <= 0)
diff --git a/media/filters/audio_renderer_algorithm.h b/media/filters/audio_renderer_algorithm.h
index 25ac811..2005bfe 100644
--- a/media/filters/audio_renderer_algorithm.h
+++ b/media/filters/audio_renderer_algorithm.h
@@ -51,7 +51,7 @@ class MEDIA_EXPORT AudioRendererAlgorithm {
int FillBuffer(AudioBus* dest,
int dest_offset,
int requested_frames,
- float playback_rate);
+ double playback_rate);
// Clears |audio_buffer_|.
void FlushBuffers();
@@ -101,15 +101,15 @@ class MEDIA_EXPORT AudioRendererAlgorithm {
// Run one iteration of WSOLA, if there are sufficient frames. This will
// overlap-and-add one block to |wsola_output_|, hence, |num_complete_frames_|
// is incremented by |ola_hop_size_|.
- bool RunOneWsolaIteration(float playback_rate);
+ bool RunOneWsolaIteration(double playback_rate);
// Seek |audio_buffer_| forward to remove frames from input that are not used
// any more. State of the WSOLA will be updated accordingly.
- void RemoveOldInputFrames(float playback_rate);
+ void RemoveOldInputFrames(double playback_rate);
// Update |output_time_| by |time_change|. In turn |search_block_index_| is
// updated.
- void UpdateOutputTime(float playback_rate, double time_change);
+ void UpdateOutputTime(double playback_rate, double time_change);
// Is |target_block_| fully within |search_block_|? If so, we don't need to
// perform the search.
diff --git a/media/filters/audio_renderer_algorithm_unittest.cc b/media/filters/audio_renderer_algorithm_unittest.cc
index 47ce30e..003cd51 100644
--- a/media/filters/audio_renderer_algorithm_unittest.cc
+++ b/media/filters/audio_renderer_algorithm_unittest.cc
@@ -239,7 +239,7 @@ class AudioRendererAlgorithmTest : public testing::Test {
EXPECT_NEAR(playback_rate, actual_playback_rate, playback_rate / 100.0);
}
- void WsolaTest(float playback_rate) {
+ void WsolaTest(double playback_rate) {
const int kSampleRateHz = 48000;
const ChannelLayout kChannelLayout = CHANNEL_LAYOUT_STEREO;
const int kBytesPerSample = 2;
@@ -640,11 +640,11 @@ TEST_F(AudioRendererAlgorithmTest, QuadraticInterpolation_Colinear) {
}
TEST_F(AudioRendererAlgorithmTest, WsolaSlowdown) {
- WsolaTest(0.6f);
+ WsolaTest(0.6);
}
TEST_F(AudioRendererAlgorithmTest, WsolaSpeedup) {
- WsolaTest(1.6f);
+ WsolaTest(1.6);
}
TEST_F(AudioRendererAlgorithmTest, FillBufferOffset) {
diff --git a/media/mojo/interfaces/media_renderer.mojom b/media/mojo/interfaces/media_renderer.mojom
index 9165a33..616e677 100644
--- a/media/mojo/interfaces/media_renderer.mojom
+++ b/media/mojo/interfaces/media_renderer.mojom
@@ -25,7 +25,7 @@ interface MediaRenderer {
StartPlayingFrom(int64 time_usec);
// Updates the current playback rate. The default playback rate should be 1.
- SetPlaybackRate(float playback_rate);
+ SetPlaybackRate(double playback_rate);
// Sets the output volume. The default volume should be 1.
SetVolume(float volume);
diff --git a/media/mojo/services/mojo_renderer_impl.cc b/media/mojo/services/mojo_renderer_impl.cc
index d1b41a6..73e677d 100644
--- a/media/mojo/services/mojo_renderer_impl.cc
+++ b/media/mojo/services/mojo_renderer_impl.cc
@@ -103,7 +103,7 @@ void MojoRendererImpl::StartPlayingFrom(base::TimeDelta time) {
remote_media_renderer_->StartPlayingFrom(time.InMicroseconds());
}
-void MojoRendererImpl::SetPlaybackRate(float playback_rate) {
+void MojoRendererImpl::SetPlaybackRate(double playback_rate) {
DVLOG(2) << __FUNCTION__;
DCHECK(task_runner_->BelongsToCurrentThread());
remote_media_renderer_->SetPlaybackRate(playback_rate);
diff --git a/media/mojo/services/mojo_renderer_impl.h b/media/mojo/services/mojo_renderer_impl.h
index cea3284..7b955a2 100644
--- a/media/mojo/services/mojo_renderer_impl.h
+++ b/media/mojo/services/mojo_renderer_impl.h
@@ -44,7 +44,7 @@ class MojoRendererImpl : public Renderer, public mojo::MediaRendererClient {
const CdmAttachedCB& cdm_attached_cb) override;
void Flush(const base::Closure& flush_cb) override;
void StartPlayingFrom(base::TimeDelta time) override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
void SetVolume(float volume) override;
base::TimeDelta GetMediaTime() override;
bool HasAudio() override;
diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc
index 0601c2c..ba81a21 100644
--- a/media/mojo/services/mojo_renderer_service.cc
+++ b/media/mojo/services/mojo_renderer_service.cc
@@ -93,7 +93,7 @@ void MojoRendererService::StartPlayingFrom(int64_t time_delta_usec) {
SchedulePeriodicMediaTimeUpdates();
}
-void MojoRendererService::SetPlaybackRate(float playback_rate) {
+void MojoRendererService::SetPlaybackRate(double playback_rate) {
DVLOG(2) << __FUNCTION__ << ": " << playback_rate;
DCHECK_EQ(state_, STATE_PLAYING);
renderer_->SetPlaybackRate(playback_rate);
diff --git a/media/mojo/services/mojo_renderer_service.h b/media/mojo/services/mojo_renderer_service.h
index 6003515..1b81168 100644
--- a/media/mojo/services/mojo_renderer_service.h
+++ b/media/mojo/services/mojo_renderer_service.h
@@ -44,7 +44,7 @@ class MEDIA_EXPORT MojoRendererService
const mojo::Closure& callback) override;
void Flush(const mojo::Closure& callback) override;
void StartPlayingFrom(int64_t time_delta_usec) override;
- void SetPlaybackRate(float playback_rate) override;
+ void SetPlaybackRate(double playback_rate) override;
void SetVolume(float volume) override;
private:
diff --git a/media/renderers/audio_renderer_impl.cc b/media/renderers/audio_renderer_impl.cc
index 6f839db..dbc1b8e 100644
--- a/media/renderers/audio_renderer_impl.cc
+++ b/media/renderers/audio_renderer_impl.cc
@@ -52,7 +52,7 @@ AudioRendererImpl::AudioRendererImpl(
audio_buffer_stream_(
new AudioBufferStream(task_runner, decoders.Pass(), media_log)),
hardware_config_(hardware_config),
- playback_rate_(0),
+ playback_rate_(0.0),
state_(kUninitialized),
buffering_state_(BUFFERING_HAVE_NOTHING),
rendering_(false),
@@ -100,7 +100,7 @@ void AudioRendererImpl::StartRendering_Locked() {
DCHECK(task_runner_->BelongsToCurrentThread());
DCHECK_EQ(state_, kPlaying);
DCHECK(!sink_playing_);
- DCHECK_NE(playback_rate_, 0);
+ DCHECK_NE(playback_rate_, 0.0);
lock_.AssertAcquired();
sink_playing_ = true;
@@ -535,7 +535,7 @@ bool AudioRendererImpl::CanRead_Locked() {
!algorithm_->IsQueueFull();
}
-void AudioRendererImpl::SetPlaybackRate(float playback_rate) {
+void AudioRendererImpl::SetPlaybackRate(double playback_rate) {
DVLOG(1) << __FUNCTION__ << "(" << playback_rate << ")";
DCHECK(task_runner_->BelongsToCurrentThread());
DCHECK_GE(playback_rate, 0);
@@ -546,7 +546,7 @@ void AudioRendererImpl::SetPlaybackRate(float playback_rate) {
// We have two cases here:
// Play: current_playback_rate == 0 && playback_rate != 0
// Pause: current_playback_rate != 0 && playback_rate == 0
- float current_playback_rate = playback_rate_;
+ double current_playback_rate = playback_rate_;
playback_rate_ = playback_rate;
if (!rendering_)
diff --git a/media/renderers/audio_renderer_impl.h b/media/renderers/audio_renderer_impl.h
index 366b492..bd11f40 100644
--- a/media/renderers/audio_renderer_impl.h
+++ b/media/renderers/audio_renderer_impl.h
@@ -68,7 +68,7 @@ class MEDIA_EXPORT AudioRendererImpl
// TimeSource implementation.
void StartTicking() override;
void StopTicking() override;
- void SetPlaybackRate(float rate) override;
+ void SetPlaybackRate(double rate) override;
void SetMediaTime(base::TimeDelta time) override;
base::TimeDelta CurrentMediaTime() override;
base::TimeTicks GetWallClockTime(base::TimeDelta time) override;
diff --git a/media/renderers/audio_renderer_impl_unittest.cc b/media/renderers/audio_renderer_impl_unittest.cc
index 98782c9..1fe5bdd 100644
--- a/media/renderers/audio_renderer_impl_unittest.cc
+++ b/media/renderers/audio_renderer_impl_unittest.cc
@@ -212,7 +212,7 @@ class AudioRendererImplTest : public ::testing::Test {
void StartTicking() {
renderer_->StartTicking();
- renderer_->SetPlaybackRate(1.0f);
+ renderer_->SetPlaybackRate(1.0);
}
void StopTicking() { renderer_->StopTicking(); }
@@ -721,18 +721,18 @@ TEST_F(AudioRendererImplTest, SetPlaybackRate) {
// Rendering hasn't started. Sink should always be paused.
EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state());
- renderer_->SetPlaybackRate(0.0f);
+ renderer_->SetPlaybackRate(0.0);
EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state());
- renderer_->SetPlaybackRate(1.0f);
+ renderer_->SetPlaybackRate(1.0);
EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state());
// Rendering has started with non-zero rate. Rate changes will affect sink
// state.
renderer_->StartTicking();
EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state());
- renderer_->SetPlaybackRate(0.0f);
+ renderer_->SetPlaybackRate(0.0);
EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state());
- renderer_->SetPlaybackRate(1.0f);
+ renderer_->SetPlaybackRate(1.0);
EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state());
// Rendering has stopped. Sink should be paused.
@@ -741,10 +741,10 @@ TEST_F(AudioRendererImplTest, SetPlaybackRate) {
// Start rendering with zero playback rate. Sink should be paused until
// non-zero rate is set.
- renderer_->SetPlaybackRate(0.0f);
+ renderer_->SetPlaybackRate(0.0);
renderer_->StartTicking();
EXPECT_EQ(FakeAudioRendererSink::kPaused, sink_->state());
- renderer_->SetPlaybackRate(1.0f);
+ renderer_->SetPlaybackRate(1.0);
EXPECT_EQ(FakeAudioRendererSink::kPlaying, sink_->state());
}
diff --git a/media/renderers/renderer_impl.cc b/media/renderers/renderer_impl.cc
index 62caf9d..30eeb4f 100644
--- a/media/renderers/renderer_impl.cc
+++ b/media/renderers/renderer_impl.cc
@@ -35,7 +35,7 @@ RendererImpl::RendererImpl(
video_renderer_(video_renderer.Pass()),
time_source_(NULL),
time_ticking_(false),
- playback_rate_(0),
+ playback_rate_(0.0),
audio_buffering_state_(BUFFERING_HAVE_NOTHING),
video_buffering_state_(BUFFERING_HAVE_NOTHING),
audio_ended_(false),
@@ -166,7 +166,7 @@ void RendererImpl::StartPlayingFrom(base::TimeDelta time) {
video_renderer_->StartPlayingFrom(time);
}
-void RendererImpl::SetPlaybackRate(float playback_rate) {
+void RendererImpl::SetPlaybackRate(double playback_rate) {
DVLOG(1) << __FUNCTION__ << "(" << playback_rate << ")";
DCHECK(task_runner_->BelongsToCurrentThread());
@@ -176,7 +176,7 @@ void RendererImpl::SetPlaybackRate(float playback_rate) {
time_source_->SetPlaybackRate(playback_rate);
- const float old_rate = playback_rate_;
+ const double old_rate = playback_rate_;
playback_rate_ = playback_rate;
if (!time_ticking_ || !video_renderer_)
return;
diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h
index 3f90271..7911848 100644
--- a/media/renderers/renderer_impl.h
+++ b/media/renderers/renderer_impl.h
@@ -55,7 +55,7 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
const CdmAttachedCB& cdm_attached_cb) final;
void Flush(const base::Closure& flush_cb) final;
void StartPlayingFrom(base::TimeDelta time) final;
- void SetPlaybackRate(float playback_rate) final;
+ void SetPlaybackRate(double playback_rate) final;
void SetVolume(float volume) final;
base::TimeDelta GetMediaTime() final;
bool HasAudio() final;
@@ -152,7 +152,7 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
TimeSource* time_source_;
scoped_ptr<WallClockTimeSource> wall_clock_time_source_;
bool time_ticking_;
- float playback_rate_;
+ double playback_rate_;
// The time to start playback from after starting/seeking has completed.
base::TimeDelta start_time_;
diff --git a/media/renderers/renderer_impl_unittest.cc b/media/renderers/renderer_impl_unittest.cc
index 9fcefe4..df4c8cc 100644
--- a/media/renderers/renderer_impl_unittest.cc
+++ b/media/renderers/renderer_impl_unittest.cc
@@ -217,7 +217,7 @@ class RendererImplTest : public ::testing::Test {
base::RunLoop().RunUntilIdle();
}
- void SetPlaybackRate(float playback_rate) {
+ void SetPlaybackRate(double playback_rate) {
EXPECT_CALL(time_source_, SetPlaybackRate(playback_rate));
renderer_impl_->SetPlaybackRate(playback_rate);
base::RunLoop().RunUntilIdle();
@@ -227,7 +227,7 @@ class RendererImplTest : public ::testing::Test {
return renderer_impl_->GetMediaTime().InMilliseconds();
}
- bool IsMediaTimeAdvancing(float playback_rate) {
+ bool IsMediaTimeAdvancing(double playback_rate) {
int64 start_time_ms = GetMediaTimeMs();
const int64 time_to_advance_ms = 100;
@@ -242,7 +242,7 @@ class RendererImplTest : public ::testing::Test {
}
bool IsMediaTimeAdvancing() {
- return IsMediaTimeAdvancing(1.0f);
+ return IsMediaTimeAdvancing(1.0);
}
// Fixture members.
@@ -377,8 +377,8 @@ TEST_F(RendererImplTest, FlushAfterUnderflow) {
TEST_F(RendererImplTest, SetPlaybackRate) {
InitializeWithAudioAndVideo();
- SetPlaybackRate(1.0f);
- SetPlaybackRate(2.0f);
+ SetPlaybackRate(1.0);
+ SetPlaybackRate(2.0);
}
TEST_F(RendererImplTest, SetVolume) {