Je ne crois pas que mon rpoblème soit relatif à Archlinux (plutôt à XBMC), mais je me permets de poster ce sujet ici, car quelqu'un verra peut-être un souci de configuration quelque part.
J'ai XBMC sur une base Archlinux, carte-mère Abit A8N et je n'arrive pas à avoir du son en passthrough sur le SPDIF.
Je précise tout de suite que la carte son en elle-même n'est pas en cause. J'arrive à tout faire fonctionner avec OSS, et la configuration sous ALSA marchait il y a encore quelques temps (je suppute que c'est la MAJ vers FRODO qui me fout tout en l'air, mais je ne peux l'affirmer)
Quelques infos :
Code : Tout sélectionner
*-multimedia
description: Multimedia audio controller
product: CK804 AC'97 Audio Controller
vendor: NVIDIA Corporation
physical id: 10
bus info: pci@0000:00:04.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list
configuration: driver=snd_intel8x0 latency=0 maxlatency=5 mingnt=2
Code : Tout sélectionner
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: CK804 [NVidia CK804], device 0: Intel ICH [NVidia CK804]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: CK804 [NVidia CK804], device 2: Intel ICH - IEC958 [NVidia CK804 - IEC958]
Subdevices: 1/1
Subdevice #0: subdevice #0
Code : Tout sélectionner
# aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default:CARD=CK804
NVidia CK804, NVidia CK804
Default Audio Device
sysdefault:CARD=CK804
NVidia CK804, NVidia CK804
Default Audio Device
front:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
Front speakers
surround40:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
4.0 Surround output to Front and Rear speakers
surround41:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=CK804,DEV=0
NVidia CK804, NVidia CK804 - IEC958
IEC958 (S/PDIF) Digital Audio Output
Sans configuration supplémentaire, je n'ai aucun son venant d'XBMC, quelque soit les réglages choisis pour le périphérique de sortie audio. Je n'ai qu'un seul choix pour le périphérique de passthrough, et il correspond bien aux infos données par aplay -L (NVidia CK804, NVidia CK804 - IEC958)
Pour simplifier, je nommerai SD tous les médias contenant du son encodé en mp3 ou autre 2.0, et HD tous les médias contenant du son AC3 ou DTS.
Avec un .asoundrc comme suit, j'ai du son pour les médias SD, mais rien en passthrough.
Code : Tout sélectionner
pcm.!default {
type hw
card 0
device 2
}
ctl.!default {
type hw
card 0
}
Si j'ajoute cette ligne dans mon .asoundrc, je peux sortir du son en choisissant HDMI comme périphérique de sortie dans XBMC, mais le son des contenus HD est alors toujours en 2 canaux, et saccadé.
Code : Tout sélectionner
pcm.!hdmi {
type hw
card 0
device 2
}
Code : Tout sélectionner
pcm.!iec958 {
type hw
card 0
device 2
}
Éléments du xbmc.log relatifs à la detection des périphérique ALSA
Code : Tout sélectionner
20:04:00 T:3001182080 NOTICE: Found 1 Lists of Devices
20:04:00 T:3001182080 NOTICE: Enumerated ALSA devices:
20:04:00 T:3001182080 NOTICE: Device 1
20:04:00 T:3001182080 NOTICE: m_deviceName : @
20:04:00 T:3001182080 NOTICE: m_displayName : Default (NVidia CK804 NVidia CK804)
20:04:00 T:3001182080 NOTICE: m_displayNameExtra:
20:04:00 T:3001182080 NOTICE: m_deviceType : AE_DEVTYPE_PCM
20:04:00 T:3001182080 NOTICE: m_channels : FL,FR,BL,BR,FC,LFE,SL,SR
20:04:00 T:3001182080 NOTICE: m_sampleRates : 48000,96000
20:04:00 T:3001182080 NOTICE: m_dataFormats : AE_FMT_S16NE,AE_FMT_S16LE
20:04:00 T:3001182080 NOTICE: Device 2
20:04:00 T:3001182080 NOTICE: m_deviceName : @:CARD=CK804,DEV=0
20:04:00 T:3001182080 NOTICE: m_displayName : NVidia CK804
20:04:00 T:3001182080 NOTICE: m_displayNameExtra: NVidia CK804
20:04:00 T:3001182080 NOTICE: m_deviceType : AE_DEVTYPE_PCM
20:04:00 T:3001182080 NOTICE: m_channels : FL,FR,BL,BR,FC,LFE,SL,SR
20:04:00 T:3001182080 NOTICE: m_sampleRates : 48000,96000
20:04:00 T:3001182080 NOTICE: m_dataFormats : AE_FMT_S16NE,AE_FMT_S16LE
20:04:00 T:3001182080 NOTICE: Device 3
20:04:00 T:3001182080 NOTICE: m_deviceName : iec958:CARD=CK804,DEV=0
20:04:00 T:3001182080 NOTICE: m_displayName : NVidia CK804
20:04:00 T:3001182080 NOTICE: m_displayNameExtra: NVidia CK804 - IEC958 S/PDIF
20:04:00 T:3001182080 NOTICE: m_deviceType : AE_DEVTYPE_IEC958
20:04:00 T:3001182080 NOTICE: m_channels : FL,FR
20:04:00 T:3001182080 NOTICE: m_sampleRates : 48000
20:04:00 T:3001182080 NOTICE: m_dataFormats : AE_FMT_S16NE,AE_FMT_S16LE
Code : Tout sélectionner
21:21:31 T:2881465152 NOTICE: Opening audio stream: 1 source: 256
21:21:31 T:2881465152 NOTICE: Finding audio codec for: 86020
21:21:31 T:2881465152 DEBUG: FactoryCodec - Audio: passthrough - Opening
21:21:31 T:2881465152 DEBUG: FactoryCodec - Audio: passthrough - Opened
21:21:31 T:2881465152 DEBUG: CDVDPlayerAudio: Sample rate changed, checking for passthrough
21:21:31 T:2881465152 DEBUG: FactoryCodec - Audio: passthrough - Opening
21:21:31 T:2881465152 DEBUG: FactoryCodec - Audio: passthrough - Opened
21:21:31 T:2881465152 NOTICE: Creating audio thread
21:21:31 T:2712886080 NOTICE: running thread: video_thread
21:21:31 T:2712886080 DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
21:21:31 T:2667666240 NOTICE: Thread CDVDPlayerAudio start, auto delete: false
21:21:31 T:2881465152 NOTICE: Opening Subtitle stream: 3 source: 256
21:21:31 T:2881465152 DEBUG: FactoryCodec - Overlay: Text Subtitle Decoder - Opening
21:21:31 T:2881465152 DEBUG: FactoryCodec - Overlay: Text Subtitle Decoder - Opened
21:21:31 T:2881465152 DEBUG: ReadEditDecisionLists - Checking for edit decision lists (EDL) on local drive or remote share for: /home/joan/videos/anime/long-metrage/1001 pattes.1080p.mkv
21:21:31 T:2881465152 DEBUG: Process - Start position set to last stopped position: 1985000
21:21:31 T:2667666240 NOTICE: running thread: CDVDPlayerAudio::Process()
21:21:31 T:2881465152 DEBUG: SeekTime - seek ended up on time 1988236
21:21:31 T:2881465152 DEBUG: Process - starting demuxer from: 1985000
21:21:31 T:2881465152 DEBUG: CDVDPlayer::SetCaching - caching state 3
21:21:31 T:2712886080 DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_RESYNC(1988236000.000000, 1)
21:21:31 T:2712886080 INFO: CDVDPlayerVideo - Stillframe left, switching to normal playback
21:21:31 T:2667666240 DEBUG: CDVDPlayerAudio - CDVDMsg::GENERAL_RESYNC(1988245000.000000, 0)
21:21:31 T:2667666240 INFO: CAEStreamInfo::SyncDTS - dts stream detected (6 channels, 48000Hz, 16bit BE, period: 512)
21:21:31 T:2667666240 DEBUG: CDVDPlayerAudio: Sample rate changed, checking for passthrough
21:21:31 T:2667666240 DEBUG: FactoryCodec - Audio: passthrough - Opening
21:21:31 T:2667666240 DEBUG: FactoryCodec - Audio: passthrough - Opened
21:21:31 T:2667666240 NOTICE: Creating audio stream (codec id: 86020, channels: 2, sample rate: 48000, pass-through)
21:21:31 T:2667666240 INFO: CSoftAE::MakeStream - AE_FMT_DTS, 48000, RAW,RAW
21:21:31 T:2712886080 NOTICE: (VDPAU) screenWidth:0 vidWidth:1920 surfaceWidth:1920
21:21:31 T:2712886080 NOTICE: (VDPAU) screenHeight:0 vidHeight:816 surfaceHeight:816
21:21:31 T:3001182080 DEBUG: CGUIInfoManager::SetCurrentMovie(/home/joan/videos/anime/long-metrage/1001 pattes.1080p.mkv)
21:21:31 T:2933902144 INFO: CAESinkALSA::Initialize - Attempting to open device "@"
21:21:31 T:2933902144 INFO: CAESinkALSA::Initialize - Opened device "front"
21:21:31 T:2933902144 INFO: CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
21:21:31 T:2933902144 INFO: CAESinkALSA::InitializeHW - Using data format AE_FMT_S16NE
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Request: periodSize 2400, bufferSize 9600
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Got: periodSize 2400, bufferSize 9600
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Setting timeout to 200 ms
21:21:31 T:2933902144 DEBUG: CSoftAE::Run - Sink was forgotten
21:21:31 T:2933902144 DEBUG: CSoftAE::Run - Sink restart flagged
21:21:31 T:2933902144 INFO: CSoftAE::InternalOpenSink - RAW passthrough enabled
21:21:31 T:2933902144 INFO: CSoftAE::InternalOpenSink - sink incompatible, re-starting
21:21:31 T:2933902144 INFO: CAESinkALSA::Initialize - Attempting to open device "iec958:CARD=CK804,DEV=0"
21:21:31 T:3001182080 DEBUG: GetMovieId (/home/joan/videos/anime/long-metrage/1001 pattes.1080p.mkv), query = select idMovie from movie where idFile=789
21:21:31 T:2933902144 INFO: CAESinkALSA::Initialize - Opened device "iec958:CARD=CK804,DEV=0,AES0=0x06,AES1=0x82,AES2=0x00,AES3=0x02"
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Request: periodSize 2400, bufferSize 9600
21:21:31 T:3001182080 DEBUG: CAnnouncementManager - Announcement: OnPlay from xbmc
21:21:31 T:3001182080 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnPlay
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Got: periodSize 2400, bufferSize 9600
21:21:31 T:2933902144 DEBUG: CAESinkALSA::InitializeHW - Setting timeout to 200 ms
21:21:31 T:2933902144 DEBUG: CSoftAE::InternalOpenSink - ALSA Initialized:
21:21:31 T:2933902144 DEBUG: Output Device : NVidia CK804
21:21:31 T:2933902144 DEBUG: Sample Rate : 48000
21:21:31 T:2933902144 DEBUG: Sample Format : AE_FMT_S16NE
21:21:31 T:2933902144 DEBUG: Channel Count : 2
21:21:31 T:2933902144 DEBUG: Channel Layout: FL,FR
21:21:31 T:2933902144 DEBUG: Frames : 2400
21:21:31 T:2933902144 DEBUG: Frame Samples : 4800
21:21:31 T:2933902144 DEBUG: Frame Size : 4
21:21:31 T:2933902144 DEBUG: CSoftAE::InternalOpenSink - Internal Buffer Size: 9600