summaryrefslogtreecommitdiffstats
path: root/chromecast/media/cma/backend/audio_decoder_wrapper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromecast/media/cma/backend/audio_decoder_wrapper.cc')
-rw-r--r--chromecast/media/cma/backend/audio_decoder_wrapper.cc55
1 files changed, 55 insertions, 0 deletions
diff --git a/chromecast/media/cma/backend/audio_decoder_wrapper.cc b/chromecast/media/cma/backend/audio_decoder_wrapper.cc
new file mode 100644
index 0000000..eff40d3
--- /dev/null
+++ b/chromecast/media/cma/backend/audio_decoder_wrapper.cc
@@ -0,0 +1,55 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromecast/media/cma/backend/audio_decoder_wrapper.h"
+
+#include "base/logging.h"
+
+namespace chromecast {
+namespace media {
+
+AudioDecoderWrapper::AudioDecoderWrapper(
+ MediaPipelineBackend::AudioDecoder* audio_decoder)
+ : audio_decoder_(audio_decoder),
+ stream_type_volume_(1.0),
+ stream_volume_(1.0) {
+ DCHECK(audio_decoder_);
+}
+
+AudioDecoderWrapper::~AudioDecoderWrapper() {
+}
+
+void AudioDecoderWrapper::SetDelegate(Delegate* delegate) {
+ audio_decoder_->SetDelegate(delegate);
+}
+
+MediaPipelineBackend::BufferStatus AudioDecoderWrapper::PushBuffer(
+ CastDecoderBuffer* buffer) {
+ return audio_decoder_->PushBuffer(buffer);
+}
+
+void AudioDecoderWrapper::GetStatistics(Statistics* statistics) {
+ audio_decoder_->GetStatistics(statistics);
+}
+
+bool AudioDecoderWrapper::SetConfig(const AudioConfig& config) {
+ return audio_decoder_->SetConfig(config);
+}
+
+bool AudioDecoderWrapper::SetVolume(float multiplier) {
+ stream_volume_ = multiplier;
+ return audio_decoder_->SetVolume(stream_volume_ * stream_type_volume_);
+}
+
+AudioDecoderWrapper::RenderingDelay AudioDecoderWrapper::GetRenderingDelay() {
+ return audio_decoder_->GetRenderingDelay();
+}
+
+bool AudioDecoderWrapper::SetStreamTypeVolume(float stream_type_volume) {
+ stream_type_volume_ = stream_type_volume;
+ return audio_decoder_->SetVolume(stream_volume_ * stream_type_volume_);
+}
+
+} // namespace media
+} // namespace chromecast