From: Tim Cussins <timcussins@eml.cc>
To: Raymond Yau <superquad.vortex2@gmail.com>
Cc: nstoughton@aether.com, tiwai@suse.de,
ALSA Development Mailing List <alsa-devel@alsa-project.org>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Subject: Re: [PATCH v2 1/1] alsa-lib: Add snd_pcm_start_at.
Date: Mon, 19 Jan 2015 11:16:05 +0000 [thread overview]
Message-ID: <54BCE775.3020701@eml.cc> (raw)
In-Reply-To: <CAN8ccibWaAmc8hMG5Eb2bLcKP4i-nWLrAETgFg2c-tGvd8QDwQ@mail.gmail.com>
On 09/01/15 12:03, Raymond Yau wrote:
>
> >>
> >>
> >>>> Do your implementation need to set specific start threshold to prevent
> >>>> the driver automatically start when you fill the buffer ?
> >>>
> >>>
> >>>
> >>>> Do the driver allow to start when there is no data ?
> >>>>
> >>>
> >>> It's the responsibility of the client to set the start threshold to a
> >>> safe and responsible value.
> >>>
> >>> It might suit some applications to allow both threshold start _and_
> >>> start_at: My implementation doesn't preclude this.
> >>
> >>
> >> Now I am confused... My understanding was that this feature is similar
> >> to SSYNC in HDAudio, where everything is ready, buffers filled, DMAs
> >> armed, FIFOs filled and the start condition only opens the last gate at
> >> a specific time - possibly with multiple streams starting at the same
> >> time. If you add a condition on the start_threshold you really don't
> >> need any hardware-driven start, do you?
> >
> >
> > What you've described is exactly what I had in mind, so we're still
> on the same page.
> >
> > I wanted to make it clear that my implementation of start_at doesn't
> *prevent* client code starting on a threshold *and* using start_at, even
> if it seems to us like a strange idea.
>
> http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
>
> Handshake between application and library
>
> Do alsa lib assume all read/write must only call after calling
> snd_pcm_sw_params() ?
>
> It seem that proposed start_at() can only be call in
> SND_PCM_STATE_PREPARED and should fail when stream is already running
This sounds ok to me - I followed Nick Stoughton's lead on this.
> Are there any mean to cancel the scheduled snd_pcm_start_at ?
There is no explicit mechanism in the proposed patch: The pending timer
is cancelled if client code attempts to change the stream state. Would
you like to see an explicit cancellation API?
> Seem there is no check when the application call snd_pcm_start_at()
> multiple times
The code only allows _one_ start_at timer to be pending. When
snd_pcm_start_at() is called, the pending timer (if any) is cancelled
(atomically) before being replaced by the new timer.
> >
> > Preventing the use of both requires us to show why it's never a
> useful idea, decide on policy (what do happens when client code tries to
> use both), and implement that policy. I'd rather just leave it as
> 'possible' :at()
>
next prev parent reply other threads:[~2015-01-19 11:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 17:27 [PATCH v2 1/1] alsa-lib: Add snd_pcm_start_at Tim Cussins
2014-12-18 1:05 ` Raymond Yau
2014-12-18 10:10 ` Tim Cussins
2015-01-06 14:42 ` Pierre-Louis Bossart
2015-01-06 15:13 ` Tim Cussins
2015-01-09 12:03 ` Raymond Yau
2015-01-19 11:16 ` Tim Cussins [this message]
2015-01-06 13:03 ` Tim Cussins
2015-01-06 14:27 ` Tim Cussins
2015-01-06 14:46 ` Pierre-Louis Bossart
2015-01-09 10:12 ` Tim Cussins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54BCE775.3020701@eml.cc \
--to=timcussins@eml.cc \
--cc=alsa-devel@alsa-project.org \
--cc=nstoughton@aether.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=superquad.vortex2@gmail.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).