[pulseaudio-discuss] S24_3LE not support in try_auto of set_format

Raymond Yau superquad.vortex2 at gmail.com
Sun Jun 21 02:19:44 PDT 2015


>
>> Do you mean you still cannot force pulseaudio to use 24 bits for your
creative usb audio ?
>>
>> Seem try auto format did not include 24bits
>
> I have 24bit explicitly in pulseaudio config currently:
>>>
>>> default-sample-format = s24le
>
> But it still uses 16bit, didn't managed how to force it to use 24bit

static const pa_sample_format_t try_order[] = {
        PA_SAMPLE_FLOAT32NE,
        PA_SAMPLE_FLOAT32RE,
        PA_SAMPLE_S32NE,
        PA_SAMPLE_S32RE,
        PA_SAMPLE_S24_32NE,
        PA_SAMPLE_S24_32RE,
        PA_SAMPLE_S24NE,
        PA_SAMPLE_S24RE,
+      PA_SAMPLE_S24LE,
        PA_SAMPLE_S16NE,
        PA_SAMPLE_S16RE,
        PA_SAMPLE_ALAW,
        PA_SAMPLE_ULAW,
        PA_SAMPLE_U8
    };

Seem missing PA_SAMPLE_S24LE in try_order, not sure any assembley code need
to be changed

You need to call snd_pcm_hw_params_test_format first, if format is
supported call snd_pcm_hw_params_set_format

There are three calls in set_format

 -   if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams,
format_trans[*f])) >= 0)
 -       return ret;
 +   if (snd_pcm_hw_params_test_format(pcm_handle, hwparams,
format_trans[*f]) == 0)
 +      return snd_pcm_hw_params_set_format(pcm_handle, hwparams,
format_trans[*f]);
+else
-   pa_log_debug("snd_pcm_hw_params_set_format(%s) failed: %s",
                 snd_pcm_format_description(format_trans[*f]),
                 pa_alsa_strerror(ret));
    pa_log_debug("format (%s) not supported",
                 snd_pcm_format_description(format_trans[*f]));
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150621/11f1b21a/attachment.html>


More information about the pulseaudio-discuss mailing list