PulseAudio: use 16-bits PCM if FPU is missing
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 2 Sep 2009 18:48:09 +0000 (21:48 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 2 Sep 2009 18:48:35 +0000 (21:48 +0300)
modules/audio_output/pulse.c

index 70a4f2f..2fc17a4 100644 (file)
@@ -168,8 +168,16 @@ static int Open ( vlc_object_t *p_this )
     msg_Dbg(p_aout, "%d audio channels", ss.channels);
 
     ss.rate = p_aout->output.output.i_rate;
     msg_Dbg(p_aout, "%d audio channels", ss.channels);
 
     ss.rate = p_aout->output.output.i_rate;
-    ss.format = PA_SAMPLE_FLOAT32NE;
-    p_aout->output.output.i_format = VLC_CODEC_FL32;
+    if (vlc_CPU() & CPU_CAPABILITY_FPU)
+    {
+        ss.format = PA_SAMPLE_FLOAT32NE;
+        p_aout->output.output.i_format = VLC_CODEC_FL32;
+    }
+    else
+    {
+        ss.format = PA_SAMPLE_S16NE;
+        p_aout->output.output.i_format = VLC_CODEC_S16N;
+    }
 
     if (!pa_sample_spec_valid(&ss)) {
         msg_Err(p_aout,"Invalid sample spec");
 
     if (!pa_sample_spec_valid(&ss)) {
         msg_Err(p_aout,"Invalid sample spec");