Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Arnaud Pouliquen <arnaud.pouliquen@st.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Cc: Mark Brown <broonie@kernel.org>
Subject: Re: [RFC] How to perform audio offloading in none tunneled mode
Date: Tue, 8 Sep 2015 11:46:06 -0500	[thread overview]
Message-ID: <55EF10CE.3040803@linux.intel.com> (raw)
In-Reply-To: <55EF06FC.90400@st.com>

On 9/8/15 11:04 AM, Arnaud Pouliquen wrote:
> Hello,
>
> I'm looking at possibility to offload atomic actions like mixing,
> decoding, encoding on a co-processor, and collect the result on host side.
>
> Rational:
> - Allow none-tunneled mode:
>      . decoding and mixing on a DSP but A/V synchro on host (android,
> Gstreamer)
>      . re-encode after mixing (HDMI)
> - Allow to get post processing PCM stream to play it on USB or bluetooth
> devices.
> - Allow to add some processing in pipe on host side.
> - MIPS partitioning
> -...
>
> Some constraints:
> - avoid copy (buffer descriptors)
> - dynamic connection for mixing and splitting.
>
> For this, i can list two standard drivers: V4L2 and ALSA.
> If V4L2 should be OK for encode and decode, seems designed more for
> video than audio. For mixing and processing...
>
> ALSA could answer to this kind of use cases, using compress API and ASoC
> dynamic PCM mechanism...
>
> As example a mixer would be a sound card with several PCM playbacks and
> a PCM capture.
>
> For time being i have never seen this kind of implementation...
>
> What is your feeling on possibility to perform it with ALSA (with
> objective to be upstreamable)?
>
> Otherwise, any standard way to do it?
>

The compressed API was more designed for offloading and rendering, if 
you can to pass the mixed result back to the host you will have to setup 
a capture stream using the regular PCM API.
What you are describing is feasible but has issues related to:
- delay control
- DSP scheduling (no real means to process data faster than real-time as 
you would want in a data-driven co-processor)
There are also divergent views on the benefits of offloading 
intermediate operations to a resource-constrained co-processor, you 
might be better off doing everything on the host in terms of power 
consumption.

  reply	other threads:[~2015-09-08 16:46 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-22 14:31 [PATCH v3 0/9] asoc: Add audio for sti platforms Arnaud Pouliquen
2015-06-22 14:31 ` [PATCH v3 1/9] ASoC: sti: add binding for ASoC driver Arnaud Pouliquen
2015-06-22 15:04   ` [STLinux Kernel] " Maxime Coquelin
2015-07-10 18:08   ` Applied "ASoC: sti: add binding for ASoC driver" to the asoc tree Mark Brown
2015-06-22 14:31 ` [PATCH v3 2/9] ASoC: sti: Add uniperipheral header file Arnaud Pouliquen
2015-06-22 14:31 ` [PATCH v3 3/9] ASoC: sti: Add CPU DAI driver for playback Arnaud Pouliquen
2015-07-10 17:00   ` Mark Brown
2015-07-15  9:28     ` Arnaud Pouliquen
2015-07-10 18:08   ` Applied "ASoC: sti: Add CPU DAI driver for playback" to the asoc tree Mark Brown
2015-06-22 14:31 ` [PATCH v3 4/9] ASoC: sti: Add CPU DAI driver for capture Arnaud Pouliquen
2015-07-10 17:26   ` Mark Brown
2015-07-15  9:31     ` Arnaud Pouliquen
2015-06-22 14:31 ` [PATCH v3 5/9] ASoC: sti: Add uniperipheral dai driver Arnaud Pouliquen
2015-06-22 14:31 ` [PATCH v3 6/9] ASoC: Add ability to build sti drivers Arnaud Pouliquen
2015-07-16 21:01   ` Applied "ASoC: Add ability to build sti drivers" to the asoc tree Mark Brown
2015-06-22 14:31 ` [PATCH v3 7/9] ASoC: Codec: Add sti platform codec Arnaud Pouliquen
2015-07-10 18:08   ` Applied "ASoC: sti-sas: Add sti platform codec" to the asoc tree Mark Brown
2015-06-22 14:31 ` [PATCH v3 8/9] ASoC: sti: Add clock adjustement control Arnaud Pouliquen
2015-06-22 14:31 ` [PATCH v3 9/9] ASoC: sti: Add IEC control Arnaud Pouliquen
2015-07-10 18:06   ` Mark Brown
2015-07-15  9:59     ` Arnaud Pouliquen
2015-07-15 11:03       ` Mark Brown
2015-08-07 14:00   ` Applied "ASoC: sti: Add IEC control" to the asoc tree Mark Brown
2015-09-08 16:04     ` [RFC] How to perform audio offloading in none tunneled mode Arnaud Pouliquen
2015-09-08 16:46       ` Pierre-Louis Bossart [this message]
2015-09-08 17:32         ` Mark Brown
2015-09-09  8:36           ` Arnaud Pouliquen
2015-09-09  9:56             ` Mark Brown

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=55EF10CE.3040803@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnaud.pouliquen@st.com \
    --cc=broonie@kernel.org \
    /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