| Index: chromecast/media/cma/backend/audio_decoder_default.cc
|
| diff --git a/chromecast/media/cma/backend/audio_decoder_default.cc b/chromecast/media/cma/backend/audio_decoder_default.cc
|
| index 58504df265e83bcad108fe4c44ac263a0f3754f1..84388d7c5da36b8e1935b550f7b4fb0c8125a3c0 100644
|
| --- a/chromecast/media/cma/backend/audio_decoder_default.cc
|
| +++ b/chromecast/media/cma/backend/audio_decoder_default.cc
|
| @@ -4,42 +4,45 @@
|
|
|
| #include "chromecast/media/cma/backend/audio_decoder_default.h"
|
|
|
| -#include <limits>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/location.h"
|
| -#include "base/logging.h"
|
| -#include "base/threading/thread_task_runner_handle.h"
|
| -#include "chromecast/public/media/cast_decoder_buffer.h"
|
| +#include "base/memory/ptr_util.h"
|
| +#include "chromecast/media/cma/backend/media_sink_default.h"
|
|
|
| namespace chromecast {
|
| namespace media {
|
|
|
| -AudioDecoderDefault::AudioDecoderDefault()
|
| - : delegate_(nullptr),
|
| - last_push_pts_(std::numeric_limits<int64_t>::min()),
|
| - weak_factory_(this) {}
|
| +AudioDecoderDefault::AudioDecoderDefault() : delegate_(nullptr) {}
|
|
|
| AudioDecoderDefault::~AudioDecoderDefault() {}
|
|
|
| +void AudioDecoderDefault::Start(base::TimeDelta start_pts) {
|
| + DCHECK(!sink_);
|
| + sink_ = base::MakeUnique<MediaSinkDefault>(delegate_, start_pts);
|
| +}
|
| +
|
| +void AudioDecoderDefault::Stop() {
|
| + DCHECK(sink_);
|
| + sink_.reset();
|
| +}
|
| +
|
| +void AudioDecoderDefault::SetPlaybackRate(float rate) {
|
| + DCHECK(sink_);
|
| + sink_->SetPlaybackRate(rate);
|
| +}
|
| +
|
| +base::TimeDelta AudioDecoderDefault::GetCurrentPts() {
|
| + DCHECK(sink_);
|
| + return sink_->GetCurrentPts();
|
| +}
|
| +
|
| void AudioDecoderDefault::SetDelegate(Delegate* delegate) {
|
| - DCHECK(delegate);
|
| + DCHECK(!sink_);
|
| delegate_ = delegate;
|
| }
|
|
|
| MediaPipelineBackend::BufferStatus AudioDecoderDefault::PushBuffer(
|
| CastDecoderBuffer* buffer) {
|
| - DCHECK(delegate_);
|
| - DCHECK(buffer);
|
| -
|
| - if (buffer->end_of_stream()) {
|
| - base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| - FROM_HERE, base::Bind(&AudioDecoderDefault::OnEndOfStream,
|
| - weak_factory_.GetWeakPtr()));
|
| - } else {
|
| - last_push_pts_ = buffer->timestamp();
|
| - }
|
| - return MediaPipelineBackend::kBufferSuccess;
|
| + DCHECK(sink_);
|
| + return sink_->PushBuffer(buffer);
|
| }
|
|
|
| void AudioDecoderDefault::GetStatistics(Statistics* statistics) {
|
| @@ -57,9 +60,5 @@ AudioDecoderDefault::RenderingDelay AudioDecoderDefault::GetRenderingDelay() {
|
| return RenderingDelay();
|
| }
|
|
|
| -void AudioDecoderDefault::OnEndOfStream() {
|
| - delegate_->OnEndOfStream();
|
| -}
|
| -
|
| } // namespace media
|
| } // namespace chromecast
|
|
|