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 * \ 34 AUDIO_OUTPUT_FRAMES * sizeof(float)) 125 static inline size_t get_audio_bytes_per_channel(
enum audio_format format)
149 static inline bool is_audio_planar(
enum audio_format format)
171 static inline size_t get_audio_planes(
enum audio_format format,
174 return (is_audio_planar(format) ? get_audio_channels(speakers) : 1);
177 static inline size_t get_audio_size(
enum audio_format format,
180 bool planar = is_audio_planar(format);
182 return (planar ? 1 : get_audio_channels(speakers)) *
183 get_audio_bytes_per_channel(format) *
187 static inline uint64_t audio_frames_to_ns(
size_t sample_rate,
191 val = util_mul64_64(frames, 1000000000ULL);
192 val = util_div128_32(val, (
uint32_t)sample_rate);
196 static inline uint64_t ns_to_audio_frames(
size_t sample_rate,
200 val = util_mul64_64(frames, sample_rate);
201 val = util_div128_32(val, 1000000000);
205 #define AUDIO_OUTPUT_SUCCESS 0 206 #define AUDIO_OUTPUT_INVALIDPARAM -1 207 #define AUDIO_OUTPUT_FAIL -2 Definition: util_uint128.h:19
speaker_layout
Definition: audio-io.h:67
EXPORT bool audio_output_active(const audio_t *audio)
float * data[MAX_AUDIO_CHANNELS]
Definition: audio-io.h:85
Definition: audio-io.h:92
unsigned uint32_t
Definition: vc_stdint.h:31
#define MAX_AUDIO_CHANNELS
Definition: audio-io.h:29
audio_format
Definition: audio-io.h:44
Definition: audio-io.h:49
audio_input_callback_t input_callback
Definition: audio-io.h:99
enum speaker_layout speakers
Definition: audio-io.h:97
Definition: audio-io.h:54
Definition: audio-io.h:70
Definition: audio-io.h:84
unsigned __int64 uint64_t
Definition: vc_stdint.h:33
EXPORT size_t audio_output_get_planes(const audio_t *audio)
Definition: audio-io.h:103
unsigned char uint8_t
Definition: vc_stdint.h:27
EXPORT void audio_output_close(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)
Definition: audio-io.h:55
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
Definition: audio-io.h:53
Definition: audio-io.h:75
#define EXPORT
Definition: c99defs.h:49
EXPORT const struct audio_output_info * audio_output_get_info(const audio_t *audio)
uint32_t frames
Definition: audio-io.h:80
EXPORT uint32_t audio_output_get_sample_rate(const audio_t *audio)
uint32_t samples_per_sec
Definition: audio-io.h:95
Definition: audio-io.h:74
enum speaker_layout speakers
Definition: audio-io.h:106
uint32_t samples_per_sec
Definition: audio-io.h:104
Definition: audio-io.h:72
Definition: audio-io.h:73
Definition: audio-io.h:48
Definition: audio-io.h:78
Definition: audio-io.h:68
Definition: audio-io.h:47
Definition: audio-io.h:50
EXPORT size_t audio_output_get_block_size(const audio_t *audio)
EXPORT void audio_output_disconnect(audio_t *video, size_t mix_idx, audio_output_callback_t callback, void *param)
Definition: audio-io.h:52
uint64_t timestamp
Definition: audio-io.h:81
void(* audio_output_callback_t)(void *param, size_t mix_idx, struct audio_data *data)
Definition: audio-io.h:212
void * input_param
Definition: audio-io.h:100
EXPORT size_t audio_output_get_channels(const audio_t *audio)
uint64_t low
Definition: util_uint128.h:23
enum audio_format format
Definition: audio-io.h:96
Definition: audio-io.h:69
Definition: audio-io.h:45
EXPORT int audio_output_open(audio_t **audio, struct audio_output_info *info)
#define bool
Definition: vc_stdbool.h:5
enum audio_format format
Definition: audio-io.h:105
const char * name
Definition: audio-io.h:93
struct audio_output audio_t
Definition: audio-io.h:42
Definition: audio-io.h:71
uint8_t * data[MAX_AV_PLANES]
Definition: audio-io.h:79