diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-09-17 10:42:44 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-17 10:42:44 -0400 |
| commit | 474739a37920ff8e8a2f5d6f480a9116fdfba825 (patch) | |
| tree | 8331fac91e1e96ddd379917ad51167cef48868f3 /src/audio_core/opus/decoder_manager.h | |
| parent | 4d28e60694d5f065e81e50657a7d8472f6f3da20 (diff) | |
| parent | 67e2d5c28b8423c4f3f1d5b00f87325684158a6f (diff) | |
Merge pull request #11460 from Kelebek1/hw_opus
Reimplement HardwareOpus
Diffstat (limited to 'src/audio_core/opus/decoder_manager.h')
| -rw-r--r-- | src/audio_core/opus/decoder_manager.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/audio_core/opus/decoder_manager.h b/src/audio_core/opus/decoder_manager.h new file mode 100644 index 000000000..466e1967b --- /dev/null +++ b/src/audio_core/opus/decoder_manager.h @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "audio_core/opus/hardware_opus.h"
+#include "audio_core/opus/parameters.h"
+#include "common/common_types.h"
+#include "core/hle/service/audio/errors.h"
+
+namespace Core {
+class System;
+}
+
+namespace AudioCore::OpusDecoder {
+
+class OpusDecoderManager {
+public:
+ OpusDecoderManager(Core::System& system);
+
+ HardwareOpus& GetHardwareOpus() {
+ return hardware_opus;
+ }
+
+ Result GetWorkBufferSize(OpusParameters& params, u64& out_size);
+ Result GetWorkBufferSizeEx(OpusParametersEx& params, u64& out_size);
+ Result GetWorkBufferSizeExEx(OpusParametersEx& params, u64& out_size);
+ Result GetWorkBufferSizeForMultiStream(OpusMultiStreamParameters& params, u64& out_size);
+ Result GetWorkBufferSizeForMultiStreamEx(OpusMultiStreamParametersEx& params, u64& out_size);
+ Result GetWorkBufferSizeForMultiStreamExEx(OpusMultiStreamParametersEx& params, u64& out_size);
+
+private:
+ Core::System& system;
+ HardwareOpus hardware_opus;
+ std::array<u64, MaxChannels> required_workbuffer_sizes{};
+};
+
+} // namespace AudioCore::OpusDecoder
|
