Hello [EMAIL PROTECTED]

After some success with sound on my 48KHz-only ALC861
codec with preliminary patch from deanna@ (thanks), there
was no sound with xine-lib based players.

Despite of xine's audio_sun_out.c can do resample, audio
capabilities test relies on 44KHz which is wrong nowadays.

The patch below fixes this by checking for 48KHz too. It is
backward compatible and works for me (Kaffeine player).

After you have patched, add

audio.synchronization.force_rate:48000
audio.synchronization.resample_mode:on

to ~/.xine/config. If your hardware mixer is broken, also add

gui.audio_mixer_method:Software

to have software volume control.

Amarok is the problem since it uses own xine-config. Even
with manually added resampling options and setting RO to
xine-config, Amarok uses some internal defaults and tries to
initialize audio to 44KHz.

Hope this can be fixed if someone will look into it.

Thanks.

Alexey.

--- src/audio_out/audio_sun_out.c.orig
+++ src/audio_out/audio_sun_out.c
@@ -966,11 +966,21 @@
 status = ioctl(this->audio_fd, AUDIO_SETINFO, &info);

 if (status < 0) {
-    xprintf(this->xine, XINE_VERBOSITY_LOG,
+
+    /* try 48000, 44100 may be not reasonable sometimes */
+    AUDIO_INITINFO(&info);
+    info.play.encoding = AUDIO_ENCODING_LINEAR;
+    info.play.precision = AUDIO_PRECISION_16;
+    info.play.sample_rate = 48000;
+    status = ioctl(this->audio_fd, AUDIO_SETINFO, &info);
+
+    if (status < 0) {
+      xprintf(this->xine, XINE_VERBOSITY_LOG,
          _("audio_sun_out: audio ioctl on device %s failed: %s\n"),
devname, strerror(errno));

-    free (this);
-    return NULL;
+      free (this);
+      return NULL;
+    }
 }

 /*

Reply via email to