[alsa-devel] Application supporting forward/rewind APIs

Anuj Aggarwal anuj.aggarwal at gmail.com
Tue Sep 29 11:13:58 CEST 2009


I found the solution, one can use mplayer to test forward/rewind
feature of ALSA library.

Regards,
Anuj Aggarwal

On Sat, Sep 26, 2009 at 9:29 AM, Raymond Yau
<superquad.vortex2 at gmail.com> wrote:
> It seem that the current implementation , it seem that the application can
> rewind the application pointer to hardware pointer , rewrite the next
> sample.for all drivers
>
>
>  static snd_pcm_sframes_t snd_pcm_hw_rewindable(snd_pcm_t *pcm)
> {
>    return snd_pcm_mmap_hw_avail(pcm);
> }
>
> However this is almost impossible for any sound cards since the hardware
> register just report the number of samples processed. this mean that the
> sound card is already processing the next sample.
>
>
>
>
> 2009/9/24 Anuj Aggarwal <anuj.aggarwal at gmail.com>
>
>> Yeah, I am looking for some sample application to test forward/rewind
>> functionality.
>>
>> Regards,
>> Anuj
>>
>> On Thu, Sep 24, 2009 at 1:27 PM, Raymond Yau
>> <superquad.vortex2 at gmail.com> wrote:
>> > Do you mean that there is no test program to verify the implementation is
>> > correct ?
>> >
>> > Some sound card 's hardware has FIFO buffer.
>> >
>> > For example , au88x0
>> >
>> > according to patent 6167465
>> >
>> > Additionally, a first-in-first-out (FIFO) buffer is established for the
>> DMA
>> > channel. Then a DMA request is generated in order to begin filling the
>> FIFO
>> > buffer with data from the first data segment 150(0) using the information
>> > provided by CPU 210.
>> >
>> >
>> > The FIFO buffer may be any suitable size capable of handling bus
>> latencies
>> > while small enough such that the memory requirement is not overly
>> > burdensome. In one embodiment of the present invention, the FIFO buffer
>> is
>> > 32 samples or words in depth, which would withstand a maximum bus latency
>> of
>> > about 4 microseconds. By way of example, if 48 DMA channels trigger
>> > simultaneously, with a trigger level set at half the buffer size (16
>> > samples), each DMA channel can wait 16 samples (20 microseconds per
>> sample),
>> > or approximately 320 microseconds before running out of data.
>> >
>> >
>> > It seem that alsa-lib should not allow application to rewind the
>> application
>> > pointer to hardware pointer since you cannot write the next sample
>> because
>> > of FIFO buffer even using mmap read/write
>> >
>> > or bug in *snd_pcm_rewindable() ?*
>> >
>> >
>> > 2009/9/24 Takashi Iwai <tiwai at suse.de>
>> >
>> >> At Thu, 24 Sep 2009 13:04:24 +0530,
>> >> Anuj Aggarwal wrote:
>> >> >
>> >> > Hi,
>> >> >
>> >> > I want to try the forward/rewind APIs supported by the ALSA library.
>> >> > Can someone point to an ALSA application which exercises these APIs?
>> >>
>> >> Pulseaudio is using snd_pcm_rewind().
>> >> About snd_pcm_forward(), I don't know of...
>> >>
>> >>
>> >> Takashi
>> >> _______________________________________________
>> >> Alsa-devel mailing list
>> >> Alsa-devel at alsa-project.org
>> >> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>> >>
>> > _______________________________________________
>> > Alsa-devel mailing list
>> > Alsa-devel at alsa-project.org
>> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>> >
>>
>>
>>
>> --
>> Best Regards,
>> Anuj Aggarwal
>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>



-- 
Best Regards,
Anuj Aggarwal


More information about the Alsa-devel mailing list