All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Guedes <andre.guedes@intel.com>
To: alsa-devel@alsa-project.org
Cc: liam.r.girdwood@intel.com
Subject: [RFC - AAF PCM plugin 0/5] Introduce AVTP Audio Format (AAF) plugin
Date: Mon, 20 Aug 2018 18:06:48 -0700	[thread overview]
Message-ID: <20180821010653.15838-1-andre.guedes@intel.com> (raw)

Hi all,

This patchset introduces the AAF plugin to the alsa-plugins project which
enables TSN audio applications on Linux.

For those not familiarized with TSN, it stands for Time-Sensitive Networking,
and it's a set of IEEE technologies (enhancements to IEEE 802.1Q and Ethernet
protocols) that provide precise time synchronization, bounded latency and
application interoperability to bridged networks. Those technologies enable
time-sensitive applications such as audio, video and control loops to run on
top of bridged networks, co-existing with regular applications. TSN
technologies are a super set of Audio Video Bridging (AVB) technologies also
developed by IEEE. AVTP is the protocol defined to transport data in a TSN
system, and AAF is one of the formats defined by AVTP to encapsulate audio
data. AAF is specified in Chapter 7 from the AVTP spec [1].

This work is part of the effort to enable TSN technologies on upstream Linux
ecosystem. All building-blocks required to enable TSN audio applications have
been already developed and pushed to upstream projects. Time synchronization
features are provided by linuxptp project [2], bounded latency features are
provided by Linux Traffic Control subsystem since kernel version 4.15 [3], and
AVTP packetization is provided by libavtp [4]. What is currently missing in the
ecosystem to enable TSN audio applications is a piece of software that plumbs
it all together and interfaces with Linux Audio system properly. That's the
point of the AAF plugin introduced here.

The AAF plugin is a PCM plugin that uses AVTP protocol to transmit/receive
audio data through a TSN capable network.  When operating in playback mode, the
plugin reads PCM samples from the audio buffer, encapsulates into AVTP packets
and transmits to the network, mimicking a typical AVTP Talker. When operating
in capture mode, the plugin receives AVTP packets from the network, retrieves
the PCM samples, and present them to alsa-lib layer at the presentation time,
mimicking a typical AVTP Listener.

Details about the plugin implementation are provided in the patches
description, and information on how to configure and run the AAF plugin is
provided in doc/aaf.txt file.

Best regards,

Andre

[1] 1722-2016 - IEEE Standard for a Transport Protocol for Time-Sensitive
    Applications in Bridged Local Area Networks
[2] http://linuxptp.sourceforge.net
[3] https://patchwork.ozlabs.org/cover/826678/
[4] https://github.com/AVnu/libavtp

Andre Guedes (5):
  aaf: Introduce plugin skeleton
  aaf: Load configuration parameters
  aaf: Implement Playback mode support
  aaf: Prepare for Capture mode support
  aaf: Implement Capture mode support

 Makefile.am     |    3 +
 aaf/Makefile.am |    9 +
 aaf/pcm_aaf.c   | 1172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac    |    9 +
 doc/aaf.txt     |  110 ++++++
 5 files changed, 1303 insertions(+)
 create mode 100644 aaf/Makefile.am
 create mode 100644 aaf/pcm_aaf.c
 create mode 100644 doc/aaf.txt

-- 
2.14.4

             reply	other threads:[~2018-08-21  1:07 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-21  1:06 Andre Guedes [this message]
2018-08-21  1:06 ` [RFC - AAF PCM plugin 1/5] aaf: Introduce plugin skeleton Andre Guedes
2018-08-21  1:06 ` [RFC - AAF PCM plugin 2/5] aaf: Load configuration parameters Andre Guedes
2018-08-21  3:16   ` Pierre-Louis Bossart
2018-08-21 21:57     ` Guedes, Andre
2018-08-21  1:06 ` [RFC - AAF PCM plugin 3/5] aaf: Implement Playback mode support Andre Guedes
2018-08-21  3:37   ` Pierre-Louis Bossart
2018-08-21 21:58     ` Guedes, Andre
2018-08-21 22:51       ` Pierre-Louis Bossart
2018-08-23  0:46         ` Guedes, Andre
2018-08-23  2:25           ` Pierre-Louis Bossart
2018-08-23 18:32             ` Guedes, Andre
2018-08-23 18:51               ` Pierre-Louis Bossart
2018-08-23 21:55                 ` Guedes, Andre
2018-08-25  8:13               ` Takashi Sakamoto
2018-08-29  1:00                 ` Guedes, Andre
2018-08-31  4:33                   ` Takashi Sakamoto
2018-08-31 23:18                     ` Guedes, Andre
2018-09-03  1:24                       ` Takashi Sakamoto
2018-09-07  1:40                         ` Guedes, Andre
2018-09-12 23:45               ` Guedes, Andre
2018-08-21  4:31   ` Takashi Sakamoto
2018-08-21 22:40     ` Guedes, Andre
2018-08-21  1:06 ` [RFC - AAF PCM plugin 4/5] aaf: Prepare for Capture " Andre Guedes
2018-08-21  1:06 ` [RFC - AAF PCM plugin 5/5] aaf: Implement " Andre Guedes
2018-08-21  5:17   ` Takashi Sakamoto
2018-08-21 23:11     ` Guedes, Andre

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=20180821010653.15838-1-andre.guedes@intel.com \
    --to=andre.guedes@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=liam.r.girdwood@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.