alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Tim Sheridan <tghs@tghs.net>, alsa-devel@alsa-project.org
Subject: Re: Compress offload: DSP buffer timestamp passing
Date: Thu, 4 Feb 2016 09:38:46 -0600	[thread overview]
Message-ID: <56B37086.30603@linux.intel.com> (raw)
In-Reply-To: <CAELVyQdcVoTV7iGxA=jJGQToobpePB-Fk-scvUbOFBf36X2B+Q@mail.gmail.com>

On 2/3/16 5:49 AM, Tim Sheridan wrote:
> Hi,
>
> I've been working on the Imagination Technologies AXD (audio DSP)
> compress offload driver. One of the features of the DSP is scheduled
> playback of audio using timestamps (that are obtained by an
> application from userspace). A current problem with the compress
> offload API is that there's no "blessed" way to get these timestamps
> from tinycompress through to our compress offload driver.
>
> Currently, I've added a SNDRV_COMPRESS_ENCODER_PTS value to the
> sndrv_compress_encoder enum, and exposed this with an API in
> tinycompress, handling this in my driver to pass it to the DSP. Does
> this sound like a reasonable approach to go about adding compress
> offload API support for this? Or is there some other part of the ALSA
> API which would be more appropriate to use instead of this?

Not a simple problem I am afraid.
When we added support for compressed data the focus was really 
elementary streams transferred over DMA - essentially the same model as 
for PCM which doesn't support timestamps either. If you have an 
application which deals with discontinuous buffers associated with 
timestamps then the model is broken.

The only solution I can think of is to create a pseudo transport stream 
with a headset containing the timestamp and the audio data inserted 
between headers. I believe this is what you are suggesting?

Alternatively we could add an API that would match a decoded sample with 
a timestamp but it's not clear how you would synchronize timestamp 
information with the data stream (or rather there could be race 
conditions leading to the timestamps being provided to the hardware too 
late).

  reply	other threads:[~2016-02-04 15:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 11:49 Compress offload: DSP buffer timestamp passing Tim Sheridan
2016-02-04 15:38 ` Pierre-Louis Bossart [this message]
2016-02-22 16:55   ` Tim Sheridan

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=56B37086.30603@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=tghs@tghs.net \
    /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).