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

Unified Diff: chromecast/media/cma/backend/video_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
« no previous file with comments | « chromecast/media/cma/backend/video_decoder_default.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromecast/media/cma/backend/video_decoder_default.cc
diff --git a/chromecast/media/cma/backend/video_decoder_default.cc b/chromecast/media/cma/backend/video_decoder_default.cc
index 552c7b557e18bece8172a439099d099472186f48..60ee8a5b14b0a007e4ed1dab7e0335de71e23ca4 100644
--- a/chromecast/media/cma/backend/video_decoder_default.cc
+++ b/chromecast/media/cma/backend/video_decoder_default.cc
@@ -4,41 +4,45 @@
#include "chromecast/media/cma/backend/video_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 {
-VideoDecoderDefault::VideoDecoderDefault()
- : delegate_(nullptr),
- last_push_pts_(std::numeric_limits<int64_t>::min()),
- weak_factory_(this) {}
+VideoDecoderDefault::VideoDecoderDefault() {}
VideoDecoderDefault::~VideoDecoderDefault() {}
+void VideoDecoderDefault::Start(base::TimeDelta start_pts) {
+ DCHECK(!sink_);
+ sink_ = base::MakeUnique<MediaSinkDefault>(delegate_, start_pts);
+}
+
+void VideoDecoderDefault::Stop() {
+ DCHECK(sink_);
+ sink_.reset();
+}
+
+void VideoDecoderDefault::SetPlaybackRate(float rate) {
+ DCHECK(sink_);
+ sink_->SetPlaybackRate(rate);
+}
+
+base::TimeDelta VideoDecoderDefault::GetCurrentPts() {
+ DCHECK(sink_);
+ return sink_->GetCurrentPts();
+}
+
void VideoDecoderDefault::SetDelegate(Delegate* delegate) {
- DCHECK(delegate);
+ DCHECK(!sink_);
delegate_ = delegate;
}
MediaPipelineBackend::BufferStatus VideoDecoderDefault::PushBuffer(
CastDecoderBuffer* buffer) {
- DCHECK(delegate_);
- DCHECK(buffer);
- if (buffer->end_of_stream()) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(&VideoDecoderDefault::OnEndOfStream,
- weak_factory_.GetWeakPtr()));
- } else {
- last_push_pts_ = buffer->timestamp();
- }
- return MediaPipelineBackend::kBufferSuccess;
+ DCHECK(sink_);
+ return sink_->PushBuffer(buffer);
}
void VideoDecoderDefault::GetStatistics(Statistics* statistics) {
@@ -48,9 +52,5 @@ bool VideoDecoderDefault::SetConfig(const VideoConfig& config) {
return true;
}
-void VideoDecoderDefault::OnEndOfStream() {
- delegate_->OnEndOfStream();
-}
-
} // namespace media
} // namespace chromecast
« no previous file with comments | « chromecast/media/cma/backend/video_decoder_default.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698