Commit 98d57445 authored by Ryan Keane's avatar Ryan Keane Committed by Commit Bot

[Cast] Add MultizoneAudioDecoderProxy Skeleton

This CL adds a new class skeleton, to be implemented in a future CL and used in
AudioPipelineImpl and CastAudioOutputStream.

Bug: b/167424911

Change-Id: I3dd799f29808a5046b983195120df393b1514510
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2401305Reviewed-by: default avatarKenneth MacKay <kmackay@chromium.org>
Commit-Queue: Ryan Keane <rwkeane@google.com>
Cr-Commit-Position: refs/heads/master@{#805861}
parent f007456b
......@@ -47,6 +47,9 @@ group("libcast_media") {
deps = [ "//chromecast/media/cma/backend:libcast_media_1.0" ]
}
# TODO(rwkeane): Condition on build flag.
deps += [ "//chromecast/media/cma/backend/proxy" ]
if (cast_volume_control_in_avsettings) {
deps += [ "//chromecast/media/avsettings:libcast_avsettings_1.0" ]
}
......
# Copyright 2020 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.
import("//chromecast/chromecast.gni")
cast_source_set("proxy") {
sources = [
"multizone_audio_decoder_proxy.cc",
"multizone_audio_decoder_proxy.h",
]
deps = [
"//base",
"//chromecast/base",
"//chromecast/media/api",
"//chromecast/public/media",
]
}
// Copyright 2020 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/proxy/multizone_audio_decoder_proxy.h"
#include "base/notreached.h"
#include "chromecast/public/media/decoder_config.h"
namespace chromecast {
namespace media {
void MultizoneAudioDecoderProxy::SetDelegate(Delegate* delegate) {
NOTREACHED();
}
MultizoneAudioDecoderProxy::BufferStatus MultizoneAudioDecoderProxy::PushBuffer(
scoped_refptr<DecoderBufferBase> buffer) {
NOTREACHED();
return BufferStatus::kBufferSuccess;
}
bool MultizoneAudioDecoderProxy::SetConfig(const AudioConfig& config) {
NOTREACHED();
return true;
}
bool MultizoneAudioDecoderProxy::SetVolume(float multiplier) {
NOTREACHED();
return true;
}
MultizoneAudioDecoderProxy::RenderingDelay
MultizoneAudioDecoderProxy::GetRenderingDelay() {
NOTREACHED();
return RenderingDelay{};
}
void MultizoneAudioDecoderProxy::GetStatistics(Statistics* statistics) {
NOTREACHED();
}
bool MultizoneAudioDecoderProxy::RequiresDecryption() {
NOTREACHED();
return true;
}
void MultizoneAudioDecoderProxy::SetObserver(Observer* observer) {
NOTREACHED();
}
} // namespace media
} // namespace chromecast
// Copyright 2020 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.
#ifndef CHROMECAST_MEDIA_CMA_BACKEND_PROXY_MULTIZONE_AUDIO_DECODER_PROXY_H_
#define CHROMECAST_MEDIA_CMA_BACKEND_PROXY_MULTIZONE_AUDIO_DECODER_PROXY_H_
#include "base/memory/ref_counted.h"
#include "chromecast/media/api/cma_backend.h"
#include "chromecast/media/api/decoder_buffer_base.h"
namespace chromecast {
namespace media {
struct AudioConfig;
// This class is used to decrypt then proxy audio data to an external
// CmaBackend::AudioDecoder over gRPC.
class MultizoneAudioDecoderProxy : public CmaBackend::AudioDecoder {
public:
using BufferStatus = CmaBackend::Decoder::BufferStatus;
using Delegate = CmaBackend::Decoder::Delegate;
using Observer = CmaBackend::AudioDecoder::Observer;
using RenderingDelay = CmaBackend::AudioDecoder::RenderingDelay;
using Statistics = CmaBackend::AudioDecoder::Statistics;
~MultizoneAudioDecoderProxy() override;
// CmaBackend::AudioDecoder implementation:
void SetDelegate(Delegate* delegate) override;
BufferStatus PushBuffer(scoped_refptr<DecoderBufferBase> buffer) override;
bool SetConfig(const AudioConfig& config) override;
bool SetVolume(float multiplier) override;
RenderingDelay GetRenderingDelay() override;
void GetStatistics(Statistics* statistics) override;
bool RequiresDecryption() override;
void SetObserver(Observer* observer) override;
};
} // namespace media
} // namespace chromecast
#endif // CHROMECAST_MEDIA_CMA_BACKEND_PROXY_MULTIZONE_AUDIO_DECODER_PROXY_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment