Sunshine/sunshine/audio.h

40 lines
824 B
C
Raw Normal View History

#ifndef SUNSHINE_AUDIO_H
#define SUNSHINE_AUDIO_H
2019-12-11 18:06:52 +00:00
#include "thread_safe.h"
2021-05-17 19:21:57 +00:00
#include "utility.h"
namespace audio {
2021-05-19 16:11:06 +00:00
enum stream_config_e : int {
STEREO,
SURROUND51,
HIGH_SURROUND51,
SURROUND71,
HIGH_SURROUND71,
MAX_STREAM_CONFIG
};
struct opus_stream_config_t {
std::int32_t sampleRate;
int channelCount;
int streams;
int coupledStreams;
const std::uint8_t *mapping;
};
extern opus_stream_config_t stream_configs[MAX_STREAM_CONFIG];
struct config_t {
int packetDuration;
int channels;
int mask;
2021-05-19 16:11:06 +00:00
bool high_quality;
};
2021-05-17 19:21:57 +00:00
using packet_t = util::buffer_t<std::uint8_t>;
using packet_queue_t = std::shared_ptr<safe::queue_t<std::pair<void *, packet_t>>>;
2020-02-09 23:33:12 +00:00
void capture(safe::signal_t *shutdown_event, packet_queue_t packets, config_t config, void *channel_data);
2021-05-17 19:21:57 +00:00
} // namespace audio
#endif