tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Peculiar audio behaviour (9.1)



> [...] I ran into an issue wher an application I was using was unable
> to write to the audio device because the swbell was writing to the
> same device at the same time.  I fixed this by [setting
> hw.audio0.multiuser=1.]

See below for that.

> I seem to remember this variable came about in 9.x and I wonder if
> changing it might change the behavior of your application?

Not that I can see.

But, also, I instrumented things a bit more.  When I wrote

> In the case where the audio descriptor is set non-blocking, the
> observations are consistent with the theory that audio isn't playing,
> that the bits have just stopped leaving the buffer (if they ever
> started).  However, that seems to me to be inconsistent with the
> blocking case, where the writes do eventually complete, just in tens
> of milliseconds instead of tens of microseconds.

It turns out the writes were "completing" only in the sense that
they're returning.  They are returning EINTR in this case (which is not
too surprising; the program uses signals relatively heavily).
Apparently audio data just isn't moving on this hardware.

hw.audio0.multiuser=1 (it was 0 before) makes no apparent difference.

I notice that audioctl -a prints "mode=" with no value.  I think it
should be `play', but audioctl -w mode=play tells me it's read-only.
Is there something I need to do, either from the command line or some
ioctl or whatever, to get playing to start?  audioctl -a reports
play.pause=0, so I think it's not paused in the usual sense.
Specifically, here's full audioctl -a output, with the program running:

name=USB audio
version=
config=usb:00000006
encodings=mulaw:8*,alaw:8*,slinear:8*,ulinear:8*,slinear_le:16*,ulinear_le:16*,slinear_be:16*,ulinear_be:16*,slinear_le:32*,ulinear_le:32*,slinear_be:32*,ulinear_be:32*
properties=full_duplex,mmap,independent
full_duplex=1
fullduplex=1
blocksize=2048
hiwat=32
lowat=24
monitor_gain=0
mode=
play.rate=8000
play.channels=1
play.precision=16
play.encoding=ulinear_le
play.gain=127
play.balance=32
play.port=0x0
play.avail_ports=0x0
play.seek=0
play.samples=0
play.eof=0
play.pause=0
play.error=0
play.waiting=0
play.open=0
play.active=1
play.buffer_size=65536
record.rate=8000
record.channels=1
record.precision=8
record.encoding=mulaw
record.gain=127
record.balance=32
record.port=0x0
record.avail_ports=0x0
record.seek=0
record.samples=0
record.eof=0
record.pause=0
record.error=0
record.waiting=0
record.open=0
record.active=1
record.buffer_size=65536
record.errors=0

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index