diff options
| author | 2024-11-17 15:26:17 -0500 | |
|---|---|---|
| committer | 2024-11-17 15:26:17 -0500 | |
| commit | 588b6d8bfa1b2efdebf8c424c86f6069cceafa41 (patch) | |
| tree | 545308813e9ae19d3293b78c7cb39555a64c0abe /src/mixer | |
| parent | 58d38d767442c83e31ae6dbaea7b1fc8ccb00633 (diff) | |
| download | camu-588b6d8bfa1b2efdebf8c424c86f6069cceafa41.tar.gz camu-588b6d8bfa1b2efdebf8c424c86f6069cceafa41.tar.bz2 camu-588b6d8bfa1b2efdebf8c424c86f6069cceafa41.zip | |
Rough subtitles implementation, improve buffers
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/mixer')
| -rw-r--r-- | src/mixer/audio_miniaudio.c | 15 | ||||
| -rw-r--r-- | src/mixer/audio_null.c | 2 |
2 files changed, 17 insertions, 0 deletions
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; } |