Sunshine latest
Self-hosted game stream host for Moonlight.
audio.h
Go to the documentation of this file.
1
5#pragma once
6
7// local includes
8#include "platform/common.h"
9#include "thread_safe.h"
10#include "utility.h"
11
12#include <bitset>
13
14namespace audio {
24
26 std::int32_t sampleRate;
27 int channelCount;
28 int streams;
29 int coupledStreams;
30 const std::uint8_t *mapping;
31 int bitrate;
32 };
33
35 int channelCount;
36 int streams;
37 int coupledStreams;
38 std::uint8_t mapping[8];
39 };
40
41 extern opus_stream_config_t stream_configs[MAX_STREAM_CONFIG];
42
43 struct config_t {
50
51 int packetDuration;
52 int channels;
53 int mask;
54
55 stream_params_t customStreamParams;
56
57 std::bitset<MAX_FLAGS> flags;
58 };
59
60 struct audio_ctx_t {
61 // We want to change the sink for the first stream only
62 std::unique_ptr<std::atomic_bool> sink_flag;
63
64 std::unique_ptr<platf::audio_control_t> control;
65
66 bool restore_sink;
67 platf::sink_t sink;
68 };
69
71 using packet_t = std::pair<void *, buffer_t>;
73
74 void capture(safe::mail_t mail, config_t config, void *channel_data);
75
87
103} // namespace audio
bool is_audio_ctx_sink_available(const audio_ctx_t &ctx)
Check if the audio sink held by audio context is available.
Definition audio.cpp:248
audio_ctx_ref_t get_audio_ctx_ref()
Get the reference to the audio context.
Definition audio.cpp:243
stream_config_e
Definition audio.h:15
@ HIGH_STEREO
High stereo.
Definition audio.h:17
@ SURROUND51
Surround 5.1.
Definition audio.h:18
@ STEREO
Stereo.
Definition audio.h:16
@ HIGH_SURROUND71
High surround 7.1.
Definition audio.h:21
@ HIGH_SURROUND51
High surround 5.1.
Definition audio.h:19
@ SURROUND71
Surround 7.1.
Definition audio.h:20
@ MAX_STREAM_CONFIG
Maximum audio stream configuration.
Definition audio.h:22
Declarations for common platform specific utilities.
Handles process-wide communication.
Definition globals.h:34
Definition audio.h:60
Definition audio.h:43
flags_e
Definition audio.h:44
@ HIGH_QUALITY
High quality audio.
Definition audio.h:45
@ MAX_FLAGS
Maximum number of flags.
Definition audio.h:48
@ CUSTOM_SURROUND_PARAMS
Custom surround parameters.
Definition audio.h:47
@ HOST_AUDIO
Host audio.
Definition audio.h:46
Definition audio.h:25
Definition audio.h:34
Definition common.h:367
Definition thread_safe.h:357
Declarations for thread-safe data structures.
Declarations for utility functions.