PulseAudio questions

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

 



Hello.

We are implementing "floation desktops" here (there is an Xvnc server per 
user running on an application server, and users are connecting from 
different terminals).

To provide audio, we are trying to use pulseaudio:

- for each user session, a pulseaudio server is started on the application 
server, that listens on a unix domain socket; PULSE_SERVER inside session 
point to this socket

- on each terminal, a pulseaudio server is started that communicates with 
local audio hardware

- when a user connects to his session from a terminal, session's pulseaudio 
server is configured to forward audio to terminal's pulseaudio server 
(using a script that communicates with session's pulseaudio server through 
a command-line socket).

In this way, we get audio automatically forwarded to the terminal where 
user connected, and users can go from one terminal to other and still have 
their sound.

Now questions.

1. I was experiencing assertion failures in both 'terminal'-side 
and 'application-server'-side pulseaudio servers. In particular:

- when pulseaudio server is starteed for SunRay terminal, and module-oss is 
loaded with device=/tmp/SUNWut/dev/utaudio/utdsp-N (this is where SunRay 
software puts it's audio device files), it gets assertion failure at 
module-oss.c:177, which is:

...
        if (memchunk == &u->silence)
            assert(r % u->sample_size == 0);
        else {
...

- when user starts mplayer within session, 'session-side' pulseaudio server 
crashes at top of pa_memblockq_drop() on
  assert(length % bq->base == 0);

I tried to comment out both asserts, and without those looks like 
everything works.
However, I guess that asserts are there for a reason? What is a better fix?

2. When applications within session are playing short sounds, it sounds 
like last very short fragment (0.1 sec or so) of eash sound is played at 
the beginning of the next sound. Looks like somewhere a buffer is not 
flushed at sound end, so data collected there is passed to audio hardware 
when new sound if being played.
Any comments on this?

3. It will be very useful to implement completely transparent audio 
migration, such that apps playing 'long' sounds will not notice that user 
disconnected and then reconnected from other terminal, but will 
transparantly continue playing.

[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux