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

Unified Diff: chromecast/media/cma/backend/audio_decoder_default.cc

Issue 2583213003: [chromecast] Adds MediaSinkDefault. (Closed)
Patch Set: simple sink Created 3 years, 11 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
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
« no previous file with comments | « chromecast/media/cma/backend/audio_decoder_default.h ('k') | chromecast/media/cma/backend/media_pipeline_backend_default.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698