 |
Open Broadcaster Software
Free, open source software for live streaming and recording
|
Go to the documentation of this file.
21 #include "../util/c99defs.h"
22 #include "../util/util_uint128.h"
28 #define MAX_AUDIO_MIXES 6
29 #define MAX_AUDIO_CHANNELS 8
30 #define AUDIO_OUTPUT_FRAMES 1024
32 #define TOTAL_AUDIO_SIZE \
33 (MAX_AUDIO_MIXES * MAX_AUDIO_CHANNELS * AUDIO_OUTPUT_FRAMES * \
89 uint64_t end_ts, uint64_t *new_ts,
90 uint32_t active_mixers,
110 static inline uint32_t get_audio_channels(
enum speaker_layout speakers)
134 static inline size_t get_audio_bytes_per_channel(
enum audio_format format)
158 static inline bool is_audio_planar(
enum audio_format format)
180 static inline size_t get_audio_planes(
enum audio_format format,
183 return (is_audio_planar(format) ? get_audio_channels(speakers) : 1);
186 static inline size_t get_audio_size(
enum audio_format format,
190 bool planar = is_audio_planar(format);
192 return (planar ? 1 : get_audio_channels(speakers)) *
193 get_audio_bytes_per_channel(format) * frames;
196 static inline uint64_t audio_frames_to_ns(
size_t sample_rate, uint64_t frames)
199 val = util_mul64_64(frames, 1000000000ULL);
200 val = util_div128_32(val, (uint32_t)sample_rate);
204 static inline uint64_t ns_to_audio_frames(
size_t sample_rate, uint64_t frames)
207 val = util_mul64_64(frames, sample_rate);
208 val = util_div128_32(val, 1000000000);
212 #define AUDIO_OUTPUT_SUCCESS 0
213 #define AUDIO_OUTPUT_INVALIDPARAM -1
214 #define AUDIO_OUTPUT_FAIL -2
@ AUDIO_FORMAT_32BIT_PLANAR
Definition: audio-io.h:54
@ SPEAKERS_4POINT0
Definition: audio-io.h:72
EXPORT void audio_output_close(audio_t *audio)
EXPORT size_t audio_output_get_planes(const audio_t *audio)
@ SPEAKERS_STEREO
Definition: audio-io.h:70
uint32_t frames
Definition: audio-io.h:80
EXPORT size_t audio_output_get_channels(const audio_t *audio)
bool(* audio_input_callback_t)(void *param, uint64_t start_ts, uint64_t end_ts, uint64_t *new_ts, uint32_t active_mixers, struct audio_output_data *mixes)
Definition: audio-io.h:88
@ AUDIO_FORMAT_FLOAT
Definition: audio-io.h:50
@ SPEAKERS_UNKNOWN
Definition: audio-io.h:68
Definition: audio-io.h:104
enum audio_format format
Definition: audio-io.h:97
Definition: audio-io.h:84
enum audio_format format
Definition: audio-io.h:106
EXPORT uint32_t audio_output_get_sample_rate(const audio_t *audio)
EXPORT bool audio_output_connect(audio_t *video, size_t mix_idx, const struct audio_convert_info *conversion, audio_output_callback_t callback, void *param)
#define EXPORT
Definition: c99defs.h:37
uint8_t * data[MAX_AV_PLANES]
Definition: audio-io.h:79
enum speaker_layout speakers
Definition: audio-io.h:98
const char * name
Definition: audio-io.h:94
@ AUDIO_FORMAT_FLOAT_PLANAR
Definition: audio-io.h:55
@ AUDIO_FORMAT_U8BIT
Definition: audio-io.h:47
@ SPEAKERS_7POINT1
Definition: audio-io.h:75
Definition: audio-io.h:78
@ AUDIO_FORMAT_UNKNOWN
Definition: audio-io.h:45
@ AUDIO_FORMAT_U8BIT_PLANAR
Definition: audio-io.h:52
Definition: audio-io.h:93
enum speaker_layout speakers
Definition: audio-io.h:107
speaker_layout
Definition: audio-io.h:67
uint32_t samples_per_sec
Definition: audio-io.h:105
float * data[MAX_AUDIO_CHANNELS]
Definition: audio-io.h:85
@ AUDIO_FORMAT_16BIT
Definition: audio-io.h:48
void(* audio_output_callback_t)(void *param, size_t mix_idx, struct audio_data *data)
Definition: audio-io.h:219
uint32_t samples_per_sec
Definition: audio-io.h:96
uint64_t timestamp
Definition: audio-io.h:81
@ SPEAKERS_4POINT1
Definition: audio-io.h:73
EXPORT bool audio_output_active(const audio_t *audio)
EXPORT const struct audio_output_info * audio_output_get_info(const audio_t *audio)
EXPORT size_t audio_output_get_block_size(const audio_t *audio)
@ SPEAKERS_MONO
Definition: audio-io.h:69
@ SPEAKERS_5POINT1
Definition: audio-io.h:74
@ AUDIO_FORMAT_32BIT
Definition: audio-io.h:49
audio_format
Definition: audio-io.h:44
Definition: util_uint128.h:19
struct audio_output audio_t
Definition: audio-io.h:42
#define MAX_AUDIO_CHANNELS
Definition: audio-io.h:29
EXPORT int audio_output_open(audio_t **audio, struct audio_output_info *info)
uint64_t low
Definition: util_uint128.h:23
audio_input_callback_t input_callback
Definition: audio-io.h:100
@ AUDIO_FORMAT_16BIT_PLANAR
Definition: audio-io.h:53
EXPORT void audio_output_disconnect(audio_t *video, size_t mix_idx, audio_output_callback_t callback, void *param)
@ SPEAKERS_2POINT1
Definition: audio-io.h:71
void * input_param
Definition: audio-io.h:101