From 7de84cbf30804ecbdea8bb7c676af8086473e3fe Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Mon, 11 May 2026 09:21:12 +0200 Subject: [PATCH] final linux version --- ao-play-async/ao_playasync.c | 281 +++++++++++++++++------------------ ao-play-async/ao_playasync.h | 4 +- lib/linux-x86_64.zip | Bin 689382 -> 689771 bytes 3 files changed, 134 insertions(+), 151 deletions(-) diff --git a/ao-play-async/ao_playasync.c b/ao-play-async/ao_playasync.c index 76845a5..c2f7770 100644 --- a/ao-play-async/ao_playasync.c +++ b/ao-play-async/ao_playasync.c @@ -128,12 +128,21 @@ #include #include +#ifdef AO_ASYNC_WINDOWS +#else +#include +#endif + + +/************************************************************************** + * Internal data structures + **************************************************************************/ + typedef enum { PLAY = 1, STOP = 2 } Command_t; - typedef struct _queue_ { Command_t command; void *buf; @@ -189,6 +198,16 @@ typedef struct { int volume_in_10000; // volume in 10000 steps, i.e. 10000 equals 100% } AO_Handle; +/************************************************************************** + * Forward function declarations + **************************************************************************/ + +static void del_elem(Queue_t *q); + +/************************************************************************** + * Support functions, for internal state, elements and queuing + **************************************************************************/ + static inline int stopped(AO_Handle *h, int lock_mutex) { if (lock_mutex) MUTEX_LOCK(h->mutex); @@ -197,8 +216,6 @@ static inline int stopped(AO_Handle *h, int lock_mutex) return stopped; } -static void del_elem(Queue_t *q); - static Queue_t *get(AO_Handle *h, int ms_wait) { Queue_t *q = NULL; @@ -328,57 +345,26 @@ static void clear(AO_Handle *h, int do_stop) MUTEX_UNLOCK(h->clear_mutex); } +/************************************************************************** + * Calculations on samples + **************************************************************************/ + static int inline littleEndian() { int n = 1; return (*(char *)&n) == 1; } -/* -static void inline adjustVolume(AO_Handle *handle, char *_buf, int buf_size, int volume_in_10000) +static inline int ao_format_little_endian(int endianess) { - int bytes_per_sample = (handle->dev_bits_per_sample >> 3); - register int endianess = handle->dev_endianess; - register unsigned char *buf = (unsigned char *) _buf; + if (endianess == AO_FMT_LITTLE) return TRUE; + if (endianess == AO_FMT_BIG) return FALSE; - register int i; - register long long sample; - register int k; - - int little_endian = (endianess == AO_FMT_LITTLE); - if (!little_endian && endianess == AO_FMT_NATIVE) little_endian = littleEndian(); - - for(i = 0; i < buf_size; i += bytes_per_sample) { - if (little_endian) { - sample = buf[bytes_per_sample + i - 1] > 127 ? -1 : 0; - for(k = bytes_per_sample + i - 1; k >= i; k--) { - sample <<= 8; - sample |= buf[k]; - } - } else { - sample = (buf[i] > 127) ? -1 : 0; - for(k = i; k < (i + bytes_per_sample); k++) { - sample <<= 8; - sample += buf[k]; - } - } - sample *= volume_in_10000; - sample /= 10000; - if (little_endian) { - for(k = i; k < (i + bytes_per_sample); k++) { - buf[k] = sample&0xff; - sample >>= 8; - } - } else { - for(k = i + bytes_per_sample - 1; k >= i; k--) { - buf[k] = sample&0xff; - sample >>= 8; - } - } - } + /* + AO_FMT_NATIVE, or anything treated as native. + */ + return littleEndian(); } -*/ - static inline int32_t read_sample(unsigned char *mem, int req_bytes, int little_endian) { @@ -408,6 +394,17 @@ static inline void store_sample(unsigned char *dst, int32_t in_sample, int out_b } } +/**** Volume adjustment */ + +static inline int32_t limit_sample(int64_t sample, int bits) +{ + int64_t min = -((int64_t)1 << (bits - 1)); + int64_t max = ((int64_t)1 << (bits - 1)) - 1; + + if (sample < min) return (int32_t) min; + if (sample > max) return (int32_t) max; + return (int32_t) sample; +} static inline void adjustVolume(AO_Handle *handle, char *_buf, @@ -427,10 +424,80 @@ static inline void adjustVolume(AO_Handle *handle, for (int i = 0; i + bytes_per_sample <= buf_size; i += bytes_per_sample) { int32_t sample = read_sample(buf + i, bytes_per_sample, little_endian); int64_t scaled = ((int64_t) sample * volume_in_10000) / 10000; - store_sample(buf + i, (int32_t) scaled, bytes_per_sample, little_endian); + int32_t clipped = limit_sample(scaled, handle->dev_bits_per_sample); + store_sample(buf + i, clipped, bytes_per_sample, little_endian); } } +/**** Bit conversion from input samples to device bits */ + +static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) +{ + if (req_bits == out_bits) return sample; + + int shift = req_bits > out_bits + ? req_bits - out_bits + : out_bits - req_bits; + + if (req_bits > out_bits) { + return sample / (1 << shift); + } else { + return (int32_t)((int64_t)sample * ((int64_t)1 << shift)); + } +} + +static void *convert_req_to_real(AO_Handle *h, void *mem, int mem_size, BufferInfo_t *info, int *out_size) +{ + if (mem_size <= 0) { + *out_size = 0; + return NULL; + } + + int output_little_endian = ao_format_little_endian(h->dev_endianess); + int input_little_endian = ao_format_little_endian(info->endiannes); + + int requested_bits = info->sample_bits; + int output_bits = h->dev_bits_per_sample; + + int req_bytes = (requested_bits / 8); + int out_bytes = (output_bits / 8); + + int samples = (mem_size / req_bytes); + + unsigned char *buf_out = (unsigned char *) malloc((samples + 1) * out_bytes); + if (buf_out == NULL) { + fprintf(stderr, "Allocation of output buffer of %d samples of %d bits gives NULL", samples, output_bits); + *out_size = 0; + return NULL; + } + + if (requested_bits == output_bits && input_little_endian == output_little_endian) { + *out_size = mem_size; + memcpy(buf_out, mem, mem_size); + } else { + // convert samples. + + int sample; + unsigned char *p_in = (unsigned char *) mem; + unsigned char *p_out = buf_out; + + for(sample = 0; sample < samples; sample++, p_in += req_bytes, p_out += out_bytes) { + register int32_t smpl; + smpl = read_sample(p_in, req_bytes, input_little_endian); + int32_t out_smpl = convert_bits(smpl, requested_bits, output_bits); + store_sample(p_out, out_smpl, out_bytes, output_little_endian); + } + + *out_size = samples * out_bytes; + } + + return buf_out; +} + +/************************************************************************** + * Play thread of queues samples + **************************************************************************/ + #if defined(USE_PTHREADS) || defined(USE_DISPATCH) static void *run(void *arg) #endif @@ -488,15 +555,18 @@ static DWORD run(LPVOID arg) #endif } +/************************************************************************** + * External API + **************************************************************************/ + +/**** ffi version for ao_play_async and ffmpeg_audio */ + int ao_async_version() { return ffi_version(); } -#ifdef AO_ASYNC_WINDOWS -#else -#include -#endif +/**** ao initialization and shutdown */ #ifdef AO_ASYNC_WINDOWS static void at_exit_shutdown_ao(void) @@ -517,6 +587,7 @@ static void init_ao() } } +/**** Opening ao_devices */ static ao_device *try_open_device(int bits, int rate, int channels, int byte_format, const char *wav_file_output, @@ -556,84 +627,6 @@ static ao_device *try_open_device(int bits, int rate, int channels, int byte_for return NULL; } - -/* -static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) -{ - if (req_bits > out_bits) { - sample >>= (req_bits - out_bits); - } else if (req_bits < out_bits) { - sample <<= (out_bits - req_bits); - } - return sample; -} -*/ - -static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) -{ - if (req_bits == out_bits) return sample; - - int shift = req_bits > out_bits - ? req_bits - out_bits - : out_bits - req_bits; - - if (req_bits > out_bits) { - return sample / (1 << shift); - } else { - return (int32_t)((int64_t)sample * ((int64_t)1 << shift)); - } -} - - -static void *convert_req_to_real(AO_Handle *h, void *mem, int mem_size, BufferInfo_t *info, int *out_size) -{ - if (mem_size <= 0) { - *out_size = 0; - return NULL; - } - - int endianess = h->dev_endianess; - int little_endian = (endianess == AO_FMT_LITTLE); - if (!little_endian && endianess == AO_FMT_NATIVE) little_endian = littleEndian(); - - int requested_bits = info->sample_bits; // h->requested_bits_per_sample; - int output_bits = h->dev_bits_per_sample; - - int req_bytes = (requested_bits / 8); - int out_bytes = (output_bits / 8); - - int samples = (mem_size / req_bytes); - - unsigned char *buf_out = (unsigned char *) malloc((samples + 1) * out_bytes); - if (buf_out == NULL) { - fprintf(stderr, "Allocation of output buffer of %d samples of %d bits gives NULL", samples, output_bits); - *out_size = 0; - return NULL; - } - - if (requested_bits == output_bits) { - *out_size = mem_size; - memcpy(buf_out, mem, mem_size); - } else { - // convert samples. - - int sample; - unsigned char *p_in = (unsigned char *) mem; - unsigned char *p_out = buf_out; - - for(sample = 0; sample < samples; sample++, p_in += req_bytes, p_out += out_bytes) { - register int32_t smpl; - smpl = read_sample(p_in, req_bytes, little_endian); - int32_t out_smpl = convert_bits(smpl, requested_bits, output_bits); - store_sample(p_out, out_smpl, out_bytes, little_endian); - } - - *out_size = samples * out_bytes; - } - - return buf_out; -} - void *ao_create_async(int bits, int rate, int channels, int byte_format, const char *wav_file_output) { init_ao(); @@ -758,27 +751,8 @@ void ao_stop_async(void *ao_handle) fprintf(stderr, "async handle freed\n"); } -/* -static inline void make_sample_bytes(int32_t sample, int bytes_per_sample, int big_endian, unsigned char b[4]) -{ - int i; - - for (i = 0; i < bytes_per_sample; i++) { - b[i] = sample&0xff; - sample >>= 8; - } - if (big_endian) { - unsigned char b1[4] = { 0, 0, 0, 0 }; - for(i = 0; i < bytes_per_sample; i++) { - b1[bytes_per_sample - i - 1] = b[i]; - } - for(i = 0; i < bytes_per_sample; i++) { - b[i] = b1[i]; - } - } -} -*/ +/**** play a sample */ void ao_play_async(void *ao_handle, int music_id, double at_second, double music_duration, int buf_size, void *mem, BufferInfo_t info) { @@ -804,6 +778,8 @@ void ao_play_async(void *ao_handle, int music_id, double at_second, double music } } +/**** clear the sample queue */ + void ao_clear_async(void *ao_handle) { AO_Handle *h = (AO_Handle *) ao_handle; @@ -811,6 +787,8 @@ void ao_clear_async(void *ao_handle) clear(h, FALSE); } +/**** Information on the current samples being played by the player thread */ + double ao_is_at_second_async(void *ao_handle) { AO_Handle *h = (AO_Handle *) ao_handle; @@ -847,6 +825,8 @@ int ao_bufsize_async(void *ao_handle) return s; } +/**** Volume related functions */ + void ao_set_volume_async(void *ao_handle, double percentage) { AO_Handle *h = (AO_Handle *) ao_handle; @@ -869,6 +849,8 @@ double ao_volume_async(void *ao_handle) return volume; } +/**** Pausing playback */ + void ao_pause_async(void *ao_handle, int paused) { AO_Handle *h = (AO_Handle *) ao_handle; @@ -889,6 +871,8 @@ void ao_pause_async(void *ao_handle, int paused) MUTEX_UNLOCK(h->mutex); } +/**** Information about the output device */ + int ao_real_output_bits_async(void *handle) { AO_Handle *h = (AO_Handle *) handle; @@ -896,3 +880,4 @@ int ao_real_output_bits_async(void *handle) } + diff --git a/ao-play-async/ao_playasync.h b/ao-play-async/ao_playasync.h index 6ecf29c..c92ea08 100644 --- a/ao-play-async/ao_playasync.h +++ b/ao-play-async/ao_playasync.h @@ -11,9 +11,7 @@ #define AOPLAYASYNC_EXPORT extern #endif -#define VERSION_MAJOR 1 -#define VERSION_MINOR 0 -#define VERSION_PATCH 0 +#include "../ffi_version.h" typedef enum { ao = 1, diff --git a/lib/linux-x86_64.zip b/lib/linux-x86_64.zip index e9a1064d88c14f5f6d1f77ab2d5ffbebde6adcb0..b449254310e2c043110178daf7806c79e2f49ddc 100644 GIT binary patch delta 27878 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�f)XBsq_4Q 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 jI6lY!kdX@x$A6CL$_s&n!DKimEno;DMb delta 27486 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