On Fri, 4 Aug 2006, Eric Peters wrote: > Thanks Jaroslav for your fast reply, > > Jaroslav Kysela wrote: > > On Fri, 4 Aug 2006, Eric Peters wrote: > > > > > >>Dear all, > >> > >>I have a PCM device which is playing some PCM samples. The soundbuffer > >>is pretty full. And now I want to pause the buffer immediately (as > >>fast as possible) and sometime later I want to resume at exactly this > >>sample I paused. > >> > >>Now I found the two functions snd_pcm_pause and snd_pcm_resume. But > >>unfortunately these functions aren't supported by all hardware. > > > > > > Right. > > > > > >>Or do you have an idea how to implement such a feature? I also found > >>the two functions snd_pcm_drain and snd_pcm_drop. But when I use this > >>functions the sound buffer will be empty if I resume. And with > >>snd_pcm_drain there will be a delay between I pause the playback and > >>there are no more samples out of my spaekers. > > > > > > If hw pause/resume is supported - check snd_pcm_hw_params_can_pause(), > > then you may use it, otherwise you should implement the pause in this way: > > > > on pause: > > > > 1) remember the current position in playback buffer (using snd_pcm_delay()) > > 2) use snd_pcm_drop() to stop the stream immediately > > > > on resume: > > > > 3) fill ring buffer from the position saved in 1) > > 4) restart playback > > > > In other words, if hardware does not support pause, application must > > "emulate" this behaviour. > > Yes, you're right. But I'm not sure if I understand your suggestion. > > In 1) I will remember the current position of the playback buffer. > > If I use snd_pcm_drop in 2) I will lose all frames I already put into > the playback buffer, or not? Yes, exactly. > If so, for 3) I have to know which samples I dropped so I can rewrite > them to the playback buffer, right? Right. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxx> Linux Kernel Sound Maintainer ALSA Project, SUSE Labs ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel