[pulseaudio-tickets] [Bug 39664] Kinect USB Audio device and module-alsa-card.c: Failed to find a working profile.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Sep 9 07:21:36 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=39664

--- Comment #12 from Antonio Ospite <ospite at studenti.unina.it> 2011-09-09 07:21:35 PDT ---
(In reply to comment #11)
> OK, so we generally don't probe for 4ch input. It's just not that common, so I
> think a specialist profile like this makes sense.
> 
> The firmware uploader is obviously a bit custom, but I can add the profile
> mapping quite happily to our official repository if it makes sense.
>
> Should the inputs really be labelled as digital? Are they not actually
> analogue?
>

About the kinect.conf profile, I can send a patch about it, if this is the way 
we want to fix it, and I will not mention "Digital" at all, as you suggested.

> The firmware stuff is likely something you need to add to the alsa-firmware
> project. Not sure of any legal problems with that tho'.
> 

Yep, I'll split the udev file in two, the "profile" rule to be shipped with
pulseaudio in 90-pulseaudio.rules, and the "firmware loading" one to be
shipped independently.

> At present, I'm really not sure why it would work with hotplug and not coldplug
> :( If I can ever borrow a friends Kinect system I will try and have a look, but
> so far I don't know anyone nearby with such kit.

I tested on the latest development version from 
git://anongit.freedesktop.org/pulseaudio/pulseaudio and it does NOT even work 
on hotplug, this seems to be because this difference in default.conf:

-[Mapping iec958-surround-40]
-device-strings = iec958:%f
-channel-map = front-left,front-right,rear-left,rear-right
-priority = 1
-

After some time reading the log I thinks I can at least isolate what could be 
the important messages:

With the _stable_ version it does not work if I plug the device after loading
PA:

D: alsa-util.c: Trying iec958:1 with SND_PCM_NO_AUTO_FORMAT ...
I: (alsa-lib)confmisc.c: Unable to find definition
'cards.USB-Audio.pcm.iec958.0:CARD=1,AES0=4,AES1=130,AES2=0,AES3=2'
I: (alsa-lib)conf.c: function snd_func_refer returned error: No such file or
directory
I: (alsa-lib)conf.c: Evaluate error: No such file or directory
I: (alsa-lib)pcm.c: Unknown PCM iec958:1
I: alsa-util.c: Error opening PCM device iec958:1: No such file or directory
I: module.c: Loaded "module-alsa-card" (index: #19; argument: "device_id="1"
name="usb-Microsoft_Kinect_USB_Audio_A44884D23275040A-01-Audio"
card_name="alsa_card.usb-Microsoft_Kinect_USB_Audio_A44884D23275040A-01-Audio"
tsched=yes ignore_dB=no card_properties="module-udev-detect.discovered=1"").


Instead it works when the device is already plugged in:

D: alsa-mixer.c: Looking at profile input:iec958-surround-40
D: alsa-mixer.c: Checking for recording on Surround digitale 4.0 (IEC958)
(iec958-surround-40)
D: alsa-util.c: Trying iec958:1 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Managed to open iec958:1
D: alsa-util.c: snd_pcm_hw_params_set_format(Signed 16 bit Little Endian)
failed: Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed:
Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Float 32 bit Little Endian)
failed: Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed:
Argomento non valido
D: alsa-util.c: Maximum hw buffer size is 4096 ms
D: alsa-util.c: Set buffer size first (to 1599 samples), period size second (to
399 samples).
I: alsa-util.c: Device iec958:1 doesn't support 44100 Hz, changed to 16000 Hz.
I: alsa-util.c: Device iec958:1 doesn't support sample format s16le, changed to
s32le.
D: alsa-mixer.c: Profile input:iec958-surround-40 supported.
I: module-card-restore.c: Restoring profile for card
alsa_card.usb-Microsoft_Kinect_USB_Audio_A44884D23275040A-01-Audio.
I: card.c: Created 2
"alsa_card.usb-Microsoft_Kinect_USB_Audio_A44884D23275040A-01-Audio"
D: reserve-wrap.c: Successfully create reservation lock monitor for device
'Audio1'
D: alsa-util.c: Trying iec958:1 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Managed to open iec958:1
D: alsa-util.c: snd_pcm_hw_params_set_format(Signed 16 bit Little Endian)
failed: Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed:
Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Float 32 bit Little Endian)
failed: Argomento non valido
D: alsa-util.c: snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed:
Argomento non valido
D: alsa-util.c: Maximum hw buffer size is 4096 ms
D: alsa-util.c: Set buffer size first (to 32000 samples), period size second
(to 32000 samples).
I: alsa-util.c: Device iec958:1 doesn't support 44100 Hz, changed to 16000 Hz.
I: alsa-util.c: Device iec958:1 doesn't support sample format s16le, changed to
s32le.
I: alsa-source.c: Successfully opened device iec958:1.
I: alsa-source.c: Selected mapping 'Surround digitale 4.0 (IEC958)'
(iec958-surround-40).
I: alsa-source.c: Successfully enabled mmap() mode.
I: alsa-source.c: Successfully enabled timer-based scheduling mode.
I: (alsa-lib)control.c: Invalid CTL iec958:1
I: alsa-mixer.c: Unable to attach to mixer iec958:1: File o directory non
esistente
I: alsa-mixer.c: Successfully attached to mixer 'hw:1'
...

It looks like it tried the four channel mapping (iec958-surround-40) on
iec958:1,
but then ends up using hw:1 anyways, but I still haven't figured out the WHY,
this is just a hint for when (if) you will look at that.

The symptoms looked similar to the unrelated post here:
http://www.mail-archive.com/pulseaudio-discuss@mail.0pointer.de/msg04847.html

Thanks,
   Antonio Ospite
   http://ao2.it

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the pulseaudio-bugs mailing list