From: Henrik Austad <henrik@austad.us> To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Cc: Takashi Sakamoto <o-takashi@sakamocchi.jp>, alsa-devel@alsa-project.org, netdev@vger.kernel.org, Richard Cochran <richardcochran@gmail.com>, linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@linaro.org>, linux-media@vger.kernel.org Subject: Re: [alsa-devel] [very-RFC 0/8] TSN driver for the kernel Date: Mon, 20 Jun 2016 13:49:24 +0200 [thread overview] Message-ID: <20160620114924.GA8971@sisyphus.home.austad.us> (raw) In-Reply-To: <9a5abd48-4da3-945d-53c9-b6d37010ab0d@linux.intel.com> [-- Attachment #1: Type: text/plain, Size: 2164 bytes --] On Mon, Jun 20, 2016 at 01:08:27PM +0200, Pierre-Louis Bossart wrote: > > >Presentation time is either set by > >a) Local sound card performing capture (in which case it will be 'capture > > time') > >b) Local media application sending a stream accross the network > > (time when the sample should be played out remotely) > >c) Remote media application streaming data *to* host, in which case it will > > be local presentation time on local soundcard > > > >>This value is dominant to the number of events included in an IEC 61883-1 > >>packet. If this TSN subsystem decides it, most of these items don't need > >>to be in ALSA. > > > >Not sure if I understand this correctly. > > > >TSN should have a reference to the timing-domain of each *local* > >sound-device (for local capture or playback) as well as the shared > >time-reference provided by gPTP. > > > >Unless an End-station acts as GrandMaster for the gPTP-domain, time set > >forth by gPTP is inmutable and cannot be adjusted. It follows that the > >sample-frequency of the local audio-devices must be adjusted, or the > >audio-streams to/from said devices must be resampled. > > The ALSA API provides support for 'audio' timestamps > (playback/capture rate defined by audio subsystem) and 'system' > timestamps (typically linked to TSC/ART) with one option to take > synchronized timestamps should the hardware support them. Ok, this sounds promising, and very much in line with what AVB would need. > The intent was that the 'audio' timestamps are translated to a > shared time reference managed in userspace by gPTP, which in turn > would define if (adaptive) audio sample rate conversion is needed. > There is no support at the moment for a 'play_at' function in ALSA, > only means to control a feedback loop. Ok, I understand that the 'play_at' is difficult to obtain, but it sounds like it is doable to achieve something useful. Looks like I will be looking into what to put in the .trigger-handler in the ALSA shim and experimenting with this to see how it make sense to connect it from the TSN-stream. Thanks! -- Henrik Austad [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Henrik Austad <henrik@austad.us> To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Cc: alsa-devel@alsa-project.org, netdev@vger.kernel.org, Richard Cochran <richardcochran@gmail.com>, linux-kernel@vger.kernel.org, Takashi Sakamoto <o-takashi@sakamocchi.jp>, Arnd Bergmann <arnd@linaro.org>, linux-media@vger.kernel.org Subject: Re: [very-RFC 0/8] TSN driver for the kernel Date: Mon, 20 Jun 2016 13:49:24 +0200 [thread overview] Message-ID: <20160620114924.GA8971@sisyphus.home.austad.us> (raw) In-Reply-To: <9a5abd48-4da3-945d-53c9-b6d37010ab0d@linux.intel.com> [-- Attachment #1.1: Type: text/plain, Size: 2164 bytes --] On Mon, Jun 20, 2016 at 01:08:27PM +0200, Pierre-Louis Bossart wrote: > > >Presentation time is either set by > >a) Local sound card performing capture (in which case it will be 'capture > > time') > >b) Local media application sending a stream accross the network > > (time when the sample should be played out remotely) > >c) Remote media application streaming data *to* host, in which case it will > > be local presentation time on local soundcard > > > >>This value is dominant to the number of events included in an IEC 61883-1 > >>packet. If this TSN subsystem decides it, most of these items don't need > >>to be in ALSA. > > > >Not sure if I understand this correctly. > > > >TSN should have a reference to the timing-domain of each *local* > >sound-device (for local capture or playback) as well as the shared > >time-reference provided by gPTP. > > > >Unless an End-station acts as GrandMaster for the gPTP-domain, time set > >forth by gPTP is inmutable and cannot be adjusted. It follows that the > >sample-frequency of the local audio-devices must be adjusted, or the > >audio-streams to/from said devices must be resampled. > > The ALSA API provides support for 'audio' timestamps > (playback/capture rate defined by audio subsystem) and 'system' > timestamps (typically linked to TSC/ART) with one option to take > synchronized timestamps should the hardware support them. Ok, this sounds promising, and very much in line with what AVB would need. > The intent was that the 'audio' timestamps are translated to a > shared time reference managed in userspace by gPTP, which in turn > would define if (adaptive) audio sample rate conversion is needed. > There is no support at the moment for a 'play_at' function in ALSA, > only means to control a feedback loop. Ok, I understand that the 'play_at' is difficult to obtain, but it sounds like it is doable to achieve something useful. Looks like I will be looking into what to put in the .trigger-handler in the ALSA shim and experimenting with this to see how it make sense to connect it from the TSN-stream. Thanks! -- Henrik Austad [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2016-06-20 11:50 UTC|newest] Thread overview: 145+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-11 23:01 [very-RFC 0/8] TSN driver for the kernel Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [very-RFC 1/8] TSN: add documentation Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` [very-RFC 3/8] Adding TSN-driver to Intel I210 controller Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` [very-RFC 4/8] Add TSN header for the driver Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` [very-RFC 5/8] Add TSN machinery to drive the traffic from a shim over the network Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [very-RFC 6/8] Add TSN event-tracing Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-12 16:58 ` Steven Rostedt 2016-06-12 16:58 ` Steven Rostedt 2016-06-12 16:58 ` [alsa-devel] " Steven Rostedt 2016-06-12 21:25 ` Henrik Austad 2016-06-12 21:25 ` Henrik Austad 2016-06-12 21:25 ` [alsa-devel] " Henrik Austad 2016-06-13 2:22 ` Steven Rostedt 2016-06-13 2:22 ` Steven Rostedt 2016-06-13 7:20 ` Henrik Austad 2016-06-13 7:20 ` Henrik Austad 2016-06-11 23:01 ` [very-RFC 7/8] AVB ALSA - Add ALSA shim for TSN Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-15 11:49 ` Richard Cochran 2016-06-15 11:49 ` [alsa-devel] " Richard Cochran 2016-06-15 12:13 ` Henrik Austad 2016-06-15 12:13 ` [alsa-devel] " Henrik Austad 2016-06-15 12:43 ` Richard Cochran 2016-06-15 12:43 ` Richard Cochran 2016-06-15 12:43 ` [alsa-devel] " Richard Cochran 2016-06-15 12:13 ` Henrik Austad 2016-06-15 11:49 ` Richard Cochran 2016-06-11 23:01 ` [very-RFC 8/8] MAINTAINERS: add TSN/AVB-entries Henrik Austad 2016-06-11 23:01 ` Henrik Austad 2016-06-11 23:01 ` [alsa-devel] " Henrik Austad 2016-06-12 3:38 ` [very-RFC 0/8] TSN driver for the kernel Takashi Sakamoto 2016-06-12 3:38 ` Takashi Sakamoto 2016-06-12 4:30 ` Takashi Sakamoto 2016-06-12 8:31 ` Henrik Austad 2016-06-12 10:43 ` Takashi Sakamoto 2016-06-12 22:06 ` Henrik Austad 2016-06-12 8:28 ` Henrik Austad 2016-06-12 8:28 ` Henrik Austad 2016-06-12 9:14 ` Takashi Sakamoto 2016-06-12 9:14 ` Takashi Sakamoto 2016-06-13 11:47 ` Richard Cochran 2016-06-13 11:47 ` [alsa-devel] " Richard Cochran 2016-06-13 13:00 ` Henrik Austad 2016-06-13 13:00 ` [alsa-devel] " Henrik Austad 2016-06-13 19:32 ` Richard Cochran 2016-06-13 19:32 ` Richard Cochran 2016-06-13 19:32 ` [alsa-devel] " Richard Cochran 2016-06-14 9:30 ` Henrik Austad 2016-06-14 9:30 ` Henrik Austad 2016-06-14 9:30 ` [alsa-devel] " Henrik Austad 2016-06-14 18:26 ` Richard Cochran 2016-06-14 18:26 ` [alsa-devel] " Richard Cochran 2016-06-14 20:38 ` Henrik Austad 2016-06-14 20:38 ` Henrik Austad 2016-06-14 20:38 ` [alsa-devel] " Henrik Austad 2016-06-15 7:04 ` Richard Cochran 2016-06-15 7:04 ` [alsa-devel] " Richard Cochran 2016-06-15 7:50 ` Henrik Austad 2016-06-15 7:50 ` [alsa-devel] " Henrik Austad 2016-06-15 7:50 ` Henrik Austad 2016-06-15 11:41 ` Richard Cochran 2016-06-15 11:41 ` Richard Cochran 2016-06-15 11:41 ` [alsa-devel] " Richard Cochran 2016-06-15 7:04 ` Richard Cochran 2016-06-15 7:11 ` Richard Cochran 2016-06-15 7:11 ` [alsa-devel] " Richard Cochran 2016-06-15 7:11 ` Richard Cochran 2016-06-14 18:26 ` Richard Cochran 2016-06-13 19:37 ` Richard Cochran 2016-06-13 19:37 ` Richard Cochran 2016-06-13 19:37 ` [alsa-devel] " Richard Cochran 2016-06-13 13:00 ` Henrik Austad 2016-06-13 13:12 ` Arnd Bergmann 2016-06-13 13:12 ` Arnd Bergmann 2016-06-13 13:12 ` [alsa-devel] " Arnd Bergmann 2016-06-13 15:56 ` John Fastabend 2016-06-13 15:56 ` John Fastabend 2016-06-13 15:56 ` [alsa-devel] " John Fastabend 2016-06-14 8:35 ` Henrik Austad 2016-06-14 8:35 ` Henrik Austad 2016-06-14 8:35 ` [alsa-devel] " Henrik Austad 2016-06-13 19:51 ` Richard Cochran 2016-06-13 19:51 ` [alsa-devel] " Richard Cochran 2016-06-14 11:18 ` One Thousand Gnomes 2016-06-14 11:18 ` [alsa-devel] " One Thousand Gnomes 2016-06-14 17:04 ` Richard Cochran 2016-06-14 17:04 ` [alsa-devel] " Richard Cochran 2016-06-14 17:04 ` Richard Cochran 2016-06-15 3:15 ` Takashi Sakamoto 2016-06-15 8:06 ` Richard Cochran 2016-06-18 5:22 ` Takashi Sakamoto 2016-06-18 5:22 ` Takashi Sakamoto 2016-06-18 22:45 ` Henrik Austad 2016-06-19 9:46 ` Richard Cochran 2016-06-20 8:05 ` Henrik Austad 2016-06-20 8:05 ` Henrik Austad 2016-06-19 14:45 ` Takashi Sakamoto 2016-06-20 9:06 ` Henrik Austad 2016-06-20 9:06 ` Henrik Austad 2016-06-21 2:22 ` Takashi Sakamoto 2016-06-21 2:22 ` Takashi Sakamoto 2016-06-20 11:08 ` [alsa-devel] " Pierre-Louis Bossart 2016-06-20 11:08 ` Pierre-Louis Bossart 2016-06-20 11:49 ` Henrik Austad [this message] 2016-06-20 11:49 ` Henrik Austad 2016-06-20 12:18 ` [alsa-devel] " Richard Cochran 2016-06-20 12:31 ` Richard Cochran 2016-06-20 15:21 ` Richard Cochran 2016-06-20 15:21 ` Richard Cochran 2016-06-21 5:54 ` [alsa-devel] " Takashi Iwai 2016-06-21 5:54 ` Takashi Iwai 2016-06-21 6:38 ` [alsa-devel] " Richard Cochran 2016-06-21 6:38 ` Richard Cochran 2016-06-21 6:45 ` [alsa-devel] " Takashi Iwai 2016-06-21 6:45 ` Takashi Iwai 2016-06-21 17:18 ` [alsa-devel] " Pierre-Louis Bossart 2016-06-21 17:18 ` Pierre-Louis Bossart 2016-06-21 17:45 ` [alsa-devel] " Pierre-Louis Bossart 2016-06-21 19:40 ` Richard Cochran 2016-06-22 12:36 ` Pierre-Louis Bossart 2016-06-22 12:36 ` Pierre-Louis Bossart 2016-06-23 10:38 ` [alsa-devel] " Henrik Austad 2016-06-23 13:28 ` Richard Cochran 2016-06-15 3:27 ` Takashi Sakamoto 2016-06-14 11:18 ` One Thousand Gnomes 2016-06-13 19:51 ` Richard Cochran 2016-06-13 11:47 ` Richard Cochran -- strict thread matches above, loose matches on Subject: below -- 2016-06-11 22:22 [alsa-devel] " Henrik Austad 2016-06-11 22:49 ` Henrik Austad
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=20160620114924.GA8971@sisyphus.home.austad.us \ --to=henrik@austad.us \ --cc=alsa-devel@alsa-project.org \ --cc=arnd@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=o-takashi@sakamocchi.jp \ --cc=pierre-louis.bossart@linux.intel.com \ --cc=richardcochran@gmail.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: linkBe 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.