From 588b6d8bfa1b2efdebf8c424c86f6069cceafa41 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Sun, 17 Nov 2024 15:26:17 -0500 Subject: Rough subtitles implementation, improve buffers Signed-off-by: Andrew Opalach --- src/mixer/audio_miniaudio.c | 15 +++++++++++++++ src/mixer/audio_null.c | 2 ++ 2 files changed, 17 insertions(+) (limited to 'src/mixer') diff --git a/src/mixer/audio_miniaudio.c b/src/mixer/audio_miniaudio.c index 4cb67de..beda5f1 100644 --- a/src/mixer/audio_miniaudio.c +++ b/src/mixer/audio_miniaudio.c @@ -75,10 +75,16 @@ static bool audio_miniaudio_init(struct camu_audio *audio, str *name) ma_log_register_callback(&ma->log, ma_log_callback_init(miniaudio_log_callback, NULL)); ma->context_config = ma_context_config_init(); ma->context_config.pLog = &ma->log; +#ifdef MA_ENABLE_ALSA ma->context_config.alsa.useVerboseDeviceEnumeration = MA_TRUE; +#endif +#ifdef MA_ENABLE_PULSEAUDIO char *c_str = al_str_to_c_str(name); ma->context_config.pulse.pApplicationName = c_str; ma->context_config.pulse.tryAutoSpawn = MA_TRUE; +#else + (void)name; +#endif s32 ret = ma_context_init(backends, AL_ARRAY_SIZE(backends), &ma->context_config, &ma->context); if (ret != MA_SUCCESS) { al_log_error("audio_miniaudio", "Failed to initialize context (%d).", ret); @@ -171,8 +177,15 @@ static bool audio_miniaudio_configure_stream(struct camu_audio *audio, void *opa ma->config.noPreSilencedOutputBuffer = MA_TRUE; ma->config.noFixedSizedCallback = MA_TRUE; ma->config.noClip = MA_TRUE; +#ifdef MA_ENABLE_WASAPI ma->config.wasapi.noAutoConvertSRC = MA_FALSE; ma->config.wasapi.noDefaultQualitySRC = MA_FALSE; +#endif +#ifdef MA_ENABLE_AAUDIO + ma->config.aaudio.usage = ma_aaudio_usage_media; + ma->config.aaudio.contentType = ma_aaudio_content_type_music; + ma->config.aaudio.allowedCapturePolicy = ma_aaudio_allow_capture_by_all; +#endif s32 ret = ma_device_init(&ma->context, &ma->config, &ma->device); if (ret != MA_SUCCESS) { al_log_error("audio_miniaudio", "Failed to initialize device (%d).", ret); @@ -214,7 +227,9 @@ static void audio_miniaudio_free(struct camu_audio **audio) struct camu_audio_miniaudio *ma = (struct camu_audio_miniaudio *)*audio; ma_device_uninit(&ma->device); ma_context_uninit(&ma->context); +#ifdef MA_ENABLE_PULSEAUDIO al_free((void *)ma->context_config.pulse.pApplicationName); +#endif al_free(ma); *audio = NULL; } diff --git a/src/mixer/audio_null.c b/src/mixer/audio_null.c index ac2846a..a6eeea3 100644 --- a/src/mixer/audio_null.c +++ b/src/mixer/audio_null.c @@ -14,7 +14,9 @@ static void audio_null_pick_format(struct camu_audio *audio, struct camu_resampl (void)na; fmt->req.format = fmt->in.format; fmt->req.channel_count = fmt->in.channel_count; +#ifdef CAMU_HAVE_FFMPEG av_channel_layout_default(&fmt->req.channel_layout, fmt->in.channel_count); +#endif fmt->req.sample_rate = fmt->in.sample_rate; } -- cgit v1.2.3-101-g0448