mirror of https://github.com/jetkvm/kvm.git
Cleanup, Optimizations: Small aaudio optimizations
This commit is contained in:
parent
2f7bf55f22
commit
26e71806cb
|
@ -45,8 +45,8 @@ static int max_packet_size = 1500; // Maximum Opus packet size
|
||||||
|
|
||||||
// Error handling and retry configuration
|
// Error handling and retry configuration
|
||||||
static int sleep_microseconds = 1000; // Base sleep time for retries
|
static int sleep_microseconds = 1000; // Base sleep time for retries
|
||||||
static int max_attempts_global = 5; // Maximum retry attempts
|
static const int max_attempts_global = 5; // Maximum retry attempts
|
||||||
static int max_backoff_us_global = 500000; // Maximum backoff time
|
static const int max_backoff_us_global = 500000; // Maximum backoff time
|
||||||
|
|
||||||
// Performance optimization flags
|
// Performance optimization flags
|
||||||
static const int optimized_buffer_size = 1; // Use optimized buffer sizing
|
static const int optimized_buffer_size = 1; // Use optimized buffer sizing
|
||||||
|
@ -182,7 +182,6 @@ static int safe_alsa_open(snd_pcm_t **handle, const char *device, snd_pcm_stream
|
||||||
}
|
}
|
||||||
|
|
||||||
attempt++;
|
attempt++;
|
||||||
if (attempt >= max_attempts_global) break;
|
|
||||||
|
|
||||||
// Enhanced error handling with specific retry strategies
|
// Enhanced error handling with specific retry strategies
|
||||||
if (err == -EBUSY || err == -EAGAIN) {
|
if (err == -EBUSY || err == -EAGAIN) {
|
||||||
|
@ -363,7 +362,7 @@ int jetkvm_audio_capture_init() {
|
||||||
opus_encoder_ctl(encoder, OPUS_SET_SIGNAL(opus_signal_type));
|
opus_encoder_ctl(encoder, OPUS_SET_SIGNAL(opus_signal_type));
|
||||||
opus_encoder_ctl(encoder, OPUS_SET_BANDWIDTH(opus_bandwidth)); // WIDEBAND for compatibility
|
opus_encoder_ctl(encoder, OPUS_SET_BANDWIDTH(opus_bandwidth)); // WIDEBAND for compatibility
|
||||||
opus_encoder_ctl(encoder, OPUS_SET_DTX(opus_dtx));
|
opus_encoder_ctl(encoder, OPUS_SET_DTX(opus_dtx));
|
||||||
// Set LSB depth for improved bit allocation on constrained hardware (disabled for compatibility)
|
// Set LSB depth for improved bit allocation on constrained hardware
|
||||||
opus_encoder_ctl(encoder, OPUS_SET_LSB_DEPTH(opus_lsb_depth));
|
opus_encoder_ctl(encoder, OPUS_SET_LSB_DEPTH(opus_lsb_depth));
|
||||||
// Enable packet loss concealment for better resilience
|
// Enable packet loss concealment for better resilience
|
||||||
opus_encoder_ctl(encoder, OPUS_SET_PACKET_LOSS_PERC(5));
|
opus_encoder_ctl(encoder, OPUS_SET_PACKET_LOSS_PERC(5));
|
||||||
|
@ -395,7 +394,7 @@ int jetkvm_audio_capture_init() {
|
||||||
* 0: No audio data available (not an error)
|
* 0: No audio data available (not an error)
|
||||||
* -1: Initialization error or unrecoverable failure
|
* -1: Initialization error or unrecoverable failure
|
||||||
*/
|
*/
|
||||||
__attribute__((hot)) int jetkvm_audio_read_encode(void *opus_buf) {
|
__attribute__((hot)) int jetkvm_audio_read_encode(void * __restrict__ opus_buf) {
|
||||||
static short __attribute__((aligned(16))) pcm_buffer[1920]; // max 2ch*960, aligned for SIMD
|
static short __attribute__((aligned(16))) pcm_buffer[1920]; // max 2ch*960, aligned for SIMD
|
||||||
unsigned char * __restrict__ out = (unsigned char*)opus_buf;
|
unsigned char * __restrict__ out = (unsigned char*)opus_buf;
|
||||||
|
|
||||||
|
@ -597,7 +596,7 @@ int jetkvm_audio_playback_init() {
|
||||||
* -1: Invalid input or decode failure
|
* -1: Invalid input or decode failure
|
||||||
* -2: Unrecoverable ALSA error
|
* -2: Unrecoverable ALSA error
|
||||||
*/
|
*/
|
||||||
__attribute__((hot)) int jetkvm_audio_decode_write(void *opus_buf, int opus_size) {
|
__attribute__((hot)) int jetkvm_audio_decode_write(void * __restrict__ opus_buf, int opus_size) {
|
||||||
static short __attribute__((aligned(16))) pcm_buffer[1920]; // max 2ch*960, aligned for SIMD
|
static short __attribute__((aligned(16))) pcm_buffer[1920]; // max 2ch*960, aligned for SIMD
|
||||||
unsigned char * __restrict__ in = (unsigned char*)opus_buf;
|
unsigned char * __restrict__ in = (unsigned char*)opus_buf;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue