mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-23 00:34:03 +02:00
PulseAudio: Try fixing an error when initializing a device.
Public issue https://github.com/mackron/miniaudio/issues/412
This commit is contained in:
+19
@@ -28923,16 +28923,26 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi
|
||||
goto on_error2;
|
||||
}
|
||||
|
||||
|
||||
/* Internal format. */
|
||||
pActualSS = ((ma_pa_stream_get_sample_spec_proc)pDevice->pContext->pulse.pa_stream_get_sample_spec)((ma_pa_stream*)pDevice->pulse.pStreamCapture);
|
||||
if (pActualSS != NULL) {
|
||||
ss = *pActualSS;
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] Capture sample spec: format=%s, channels=%d, rate=%d\n", ma_get_format_name(ma_format_from_pulse(ss.format)), ss.channels, ss.rate);
|
||||
} else {
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] Failed to retrieve capture sample spec.\n");
|
||||
}
|
||||
|
||||
pDescriptorCapture->format = ma_format_from_pulse(ss.format);
|
||||
pDescriptorCapture->channels = ss.channels;
|
||||
pDescriptorCapture->sampleRate = ss.rate;
|
||||
|
||||
if (pDescriptorCapture->format == ma_format_unknown || pDescriptorCapture->channels == 0 || pDescriptorCapture->sampleRate == 0) {
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[PulseAudio] Capture sample spec is invalid. Device unusable by miniaudio. format=%s, channels=%d, sampleRate=%d.\n", ma_get_format_name(pDescriptorCapture->format), pDescriptorCapture->channels, pDescriptorCapture->sampleRate);
|
||||
result = MA_ERROR;
|
||||
goto on_error4;
|
||||
}
|
||||
|
||||
/* Internal channel map. */
|
||||
pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamCapture);
|
||||
if (pActualCMap != NULL) {
|
||||
@@ -29038,12 +29048,21 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi
|
||||
pActualSS = ((ma_pa_stream_get_sample_spec_proc)pDevice->pContext->pulse.pa_stream_get_sample_spec)((ma_pa_stream*)pDevice->pulse.pStreamPlayback);
|
||||
if (pActualSS != NULL) {
|
||||
ss = *pActualSS;
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] Playback sample spec: format=%s, channels=%d, rate=%d\n", ma_get_format_name(ma_format_from_pulse(ss.format)), ss.channels, ss.rate);
|
||||
} else {
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] Failed to retrieve playback sample spec.\n");
|
||||
}
|
||||
|
||||
pDescriptorPlayback->format = ma_format_from_pulse(ss.format);
|
||||
pDescriptorPlayback->channels = ss.channels;
|
||||
pDescriptorPlayback->sampleRate = ss.rate;
|
||||
|
||||
if (pDescriptorPlayback->format == ma_format_unknown || pDescriptorPlayback->channels == 0 || pDescriptorPlayback->sampleRate == 0) {
|
||||
ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[PulseAudio] Playback sample spec is invalid. Device unusable by miniaudio. format=%s, channels=%d, sampleRate=%d.\n", ma_get_format_name(pDescriptorPlayback->format), pDescriptorPlayback->channels, pDescriptorPlayback->sampleRate);
|
||||
result = MA_ERROR;
|
||||
goto on_error4;
|
||||
}
|
||||
|
||||
/* Internal channel map. */
|
||||
pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamPlayback);
|
||||
if (pActualCMap != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user