21 #include "../util/c99defs.h" 22 #include "../util/util_uint128.h" 28 #define MAX_AUDIO_MIXES 6 29 #define MAX_AUDIO_CHANNELS 2 30 #define AUDIO_OUTPUT_FRAMES 1024 118 static inline size_t get_audio_bytes_per_channel(
enum audio_format format)
142 static inline bool is_audio_planar(
enum audio_format format)
164 static inline size_t get_audio_planes(
enum audio_format format,
167 return (is_audio_planar(format) ? get_audio_channels(speakers) : 1);
170 static inline size_t get_audio_size(
enum audio_format format,
173 bool planar = is_audio_planar(format);
175 return (planar ? 1 : get_audio_channels(speakers)) *
176 get_audio_bytes_per_channel(format) *
180 static inline uint64_t audio_frames_to_ns(
size_t sample_rate,
184 val = util_mul64_64(frames, 1000000000ULL);
185 val = util_div128_32(val, (
uint32_t)sample_rate);
189 static inline uint64_t ns_to_audio_frames(
size_t sample_rate,
193 val = util_mul64_64(frames, sample_rate);
194 val = util_div128_32(val, 1000000000);
198 #define AUDIO_OUTPUT_SUCCESS 0 199 #define AUDIO_OUTPUT_INVALIDPARAM -1 200 #define AUDIO_OUTPUT_FAIL -2 Definition: util_uint128.h:19
speaker_layout
Definition: audio-io.h:54
EXPORT bool audio_output_active(const audio_t *audio)
Definition: audio-io.h:82
unsigned uint32_t
Definition: vc_stdint.h:31
#define MAX_AUDIO_CHANNELS
Definition: audio-io.h:29
audio_format
Definition: audio-io.h:40
Definition: audio-io.h:65
Definition: audio-io.h:45
audio_input_callback_t input_callback
Definition: audio-io.h:89
Definition: audio-io.h:50
Definition: audio-io.h:57
Definition: audio-io.h:74
unsigned __int64 uint64_t
Definition: vc_stdint.h:33
EXPORT size_t audio_output_get_planes(const audio_t *audio)
Definition: audio-io.h:93
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:51
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:78
Definition: audio-io.h:49
Definition: audio-io.h:63
#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:70
EXPORT uint32_t audio_output_get_sample_rate(const audio_t *audio)
uint32_t samples_per_sec
Definition: audio-io.h:85
Definition: audio-io.h:61
Definition: audio-io.h:64
uint32_t samples_per_sec
Definition: audio-io.h:94
Definition: audio-io.h:60
Definition: audio-io.h:44
Definition: audio-io.h:68
Definition: audio-io.h:55
Definition: audio-io.h:43
Definition: audio-io.h:46
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:48
uint64_t timestamp
Definition: audio-io.h:71
void(* audio_output_callback_t)(void *param, size_t mix_idx, struct audio_data *data)
Definition: audio-io.h:205
Definition: audio-io.h:59
void * input_param
Definition: audio-io.h:90
EXPORT size_t audio_output_get_channels(const audio_t *audio)
uint64_t low
Definition: util_uint128.h:23
Definition: audio-io.h:56
Definition: audio-io.h:41
Definition: audio-io.h:62
EXPORT int audio_output_open(audio_t **audio, struct audio_output_info *info)
#define bool
Definition: vc_stdbool.h:5
const char * name
Definition: audio-io.h:83
struct audio_output audio_t
Definition: audio-io.h:38
Definition: audio-io.h:58
uint8_t * data[MAX_AV_PLANES]
Definition: audio-io.h:69