Re: linked streams question

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

 



At Thu, 05 Jul 2007 19:53:36 +1200,
Eliot Blennerhassett wrote:
> 
> Greetings,
> 
> I'm adding linked stream support to my driver (asihpi), and having some 
> trouble with the end of playback.
> 
> What happens is that the slave streams never transition to SETUP state at the 
> end of playback.
> (Eg playing 4 channel wav file to 2 linked stereo streams with aplay).
> 
> The master stream reaches snd_pcm_drain_done() which then causes 
> trigger(stop),  resulting in all linked streams being stopped.
> But only the master state is set to SETUP
> 
> However, now the slave streams are stopped,  period_elapsed() is not called 
> for a final time to (I assme) cause them to transition to the SETUP state.
> Eventually I get "playback drain error (DMA or IRQ trouble?)\n"
> 
> My workaround is to set the state of each substream to SETUP in the 
> trigger-stop operator, but no other driver needs to do this so I think it is 
> probably the wrong solution - maybe misses some other cleanup code?  

snd_pcm_drain() has a loop to wait until the all substreams are
drained.  That's why snd_pcm_drain_done() stops only one substream,
not all linked substreams.

But, yes, there seems to be a problem with hardware-linked substreams
that stops the multiple substreams.  This mess comes from the fact
that we handle both soft-linked and hard-linked substreams as if they
are identical.  We'd need a deeper clean up, I'm afraid.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux