From patchwork Tue Dec 22 14:57:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Henningsson X-Patchwork-Id: 11986945 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B3E8C433E0 for ; Tue, 22 Dec 2020 14:59:48 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7315A229CA for ; Tue, 22 Dec 2020 14:59:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7315A229CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=diwic.se Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 41CF81725; Tue, 22 Dec 2020 15:58:55 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 41CF81725 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1608649185; bh=NSz6+iByvAfYjsaQMWvCLpIU3gZpHyhHqp0N8MdDX5M=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=pzllhQC9qf7xokOptN93gLksjh/DukU6NGgFwpXaR4Au8Svn86OInppM2j82ZBGM6 2fFPmxBk2yclj6ZiJQMu7sJeVgmbffzutfxBzu8d3wtU7665/VdX0ssrpdaJfg6Ps/ mPepDvJLkVhY+KEkaKTzA3f5U/Xcowri8C+X+cF0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id DC403F80234; Tue, 22 Dec 2020 15:58:10 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 123D4F80264; Tue, 22 Dec 2020 15:58:08 +0100 (CET) Received: from ns4.inleed.net (mailout4.inleed.net [IPv6:2a0b:dc80:cafe:104::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id CFCA3F80232 for ; Tue, 22 Dec 2020 15:58:01 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz CFCA3F80232 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=diwic.se header.i=@diwic.se header.b="Plz+/TET" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=diwic.se; s=x; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Mbklorwlc4Pzgs74b9AZxhoXGQZM101QXiRy1oGM+m8=; b=Plz+/TET1vWAds7+wa3pJFQCbq jKU5A4PdQTLUIIgem/4tvdFtCRzsrnRDAjnOJoGWkdr3ag9IEpShm0zrcPEjMv002kdU0Y09Klew6 OVohoEadnMijVQViFpYDHhePcJT5520/vU25eFxD+tFd0jKWuCKuh1vn6E8bSPiLakVzIa/evAJwP 9Us/TRE200mvRYTgCYJS8/rQdIwPKIkGBPAbK9LHCPghNX0PURvwEBx8z71XkFOikCdK57CQjL3bQ mPnWOiOpT5xKqb7XwShHIzW6XgrgDB2OpON36+1jh2d3fZbkR5GzUuBcS14t0pVR3d+s/78GY6iOr /WR5z0gQ==; Received: from c83-254-143-147.bredband.comhem.se ([83.254.143.147] helo=localhost.localdomain) by ns4.inleed.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1krj6q-00FQMk-4f; Tue, 22 Dec 2020 15:57:56 +0100 From: David Henningsson To: alsa-devel@alsa-project.org, tiwai@suse.de Subject: [PATCH 1/2] pcm: Add snd_pcm_audio_tstamp_type_t constants Date: Tue, 22 Dec 2020 15:57:27 +0100 Message-Id: <20201222145728.9368-2-coding@diwic.se> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201222145728.9368-1-coding@diwic.se> References: <20201222145728.9368-1-coding@diwic.se> MIME-Version: 1.0 X-Authenticated-Id: coding@diwic.se Cc: David Henningsson , Alex Moon X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" These are mostly a copy-paste from the kernel headers. But since functions snd_pcm_audio_tstamp_config make use of these they should be added to the public API as well. Reported-by: Alex Moon Signed-off-by: David Henningsson --- include/pcm.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/pcm.h b/include/pcm.h index 5b078231..cf1eea8b 100644 --- a/include/pcm.h +++ b/include/pcm.h @@ -350,6 +350,20 @@ typedef enum _snd_pcm_tstamp_type { SND_PCM_TSTAMP_TYPE_LAST = SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW, } snd_pcm_tstamp_type_t; +typedef enum _snd_pcm_audio_tstamp_type { + /** + * first definition for backwards compatibility only, + * maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else + */ + SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0, + SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, /**< DMA time, reported as per hw_ptr */ + SND_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, /**< link time reported by sample or wallclock counter, reset on startup */ + SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, /**< link time reported by sample or wallclock counter, not reset on startup */ + SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, /**< link time estimated indirectly */ + SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, /**< link time synchronized with system time */ + SND_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED +} snd_pcm_audio_tstamp_type_t; + typedef struct _snd_pcm_audio_tstamp_config { /* 5 of max 16 bits used */ unsigned int type_requested:4; From patchwork Tue Dec 22 14:57:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Henningsson X-Patchwork-Id: 11986947 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37DBDC433DB for ; Tue, 22 Dec 2020 14:59:52 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7CAE2229CA for ; Tue, 22 Dec 2020 14:59:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7CAE2229CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=diwic.se Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 1D7631750; Tue, 22 Dec 2020 15:59:00 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 1D7631750 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1608649190; bh=HSeGcJN2xo41UualUyNyBkaMyBGE1gtrXChsGGtll8U=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=pKlbHjOU+s2SbM5zJUaPbE2vb+8AETdZ/IQEYs44DrCjQPm4vfa3Mh2KAtXCARney Zg576zkBaquUufHZzQ2Uvdo6GoJyNgBJXr06P5JuujXPJj/ythKQCHErrvrQfmnAzh FemXvop/UGZ5A4u2LuDCTgmV8RE65cI4Wd2rXdKM= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7342AF8023E; Tue, 22 Dec 2020 15:58:11 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id A9497F8023E; Tue, 22 Dec 2020 15:58:09 +0100 (CET) Received: from ns4.inleed.net (mailout4.inleed.net [IPv6:2a0b:dc80:cafe:104::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 43084F80234 for ; Tue, 22 Dec 2020 15:58:02 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 43084F80234 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=diwic.se header.i=@diwic.se header.b="IKsuAiav" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=diwic.se; s=x; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=VR6PROE3UAZhTPZUHmClcZlsc2pwjHxRO69uuiuTqhs=; b=IKsuAiavuA9/iHQOSDnezlmWwK TY7c/kNB+qvm1MF8BycKH8EEJ9h/ZPE3PTK61qPWK+MkhBIy21PpPv9u0RY7wcCGwhTJMNr/RWdMi lt0L8k+m2ikN4R2Z1ljNMKs+SDwQBOJa0HT/vdToej/oMXSftl4A0pZ/66z/7R7NHCII9ujR7yZ8U URSMQ3aAtJTja1Kv0sB0oSdUgA5NpLFy1B8j7m6DgPBKN5twyiXD0OA3V59hQBzf94ckfBeGbsDjP GpsQnQm7zsLredd3zpCmbQvHK96kmCOanTd3wurkavslb2zeq6BCPIQwOqyPlCnkvsht0qGkvmBt4 d1gdPYbg==; Received: from c83-254-143-147.bredband.comhem.se ([83.254.143.147] helo=localhost.localdomain) by ns4.inleed.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1krj6q-00FQMk-C6; Tue, 22 Dec 2020 15:57:56 +0100 From: David Henningsson To: alsa-devel@alsa-project.org, tiwai@suse.de Subject: [PATCH 2/2] test/audio_time: Make use of SND_PCM_AUDIO_TSTAMP_TYPE constants Date: Tue, 22 Dec 2020 15:57:28 +0100 Message-Id: <20201222145728.9368-3-coding@diwic.se> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201222145728.9368-1-coding@diwic.se> References: <20201222145728.9368-1-coding@diwic.se> MIME-Version: 1.0 X-Authenticated-Id: coding@diwic.se Cc: David Henningsson X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Also fixup the usage row which seemed wrong to me. Signed-off-by: David Henningsson --- test/audio_time.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/test/audio_time.c b/test/audio_time.c index 530922d9..e4d4a944 100644 --- a/test/audio_time.c +++ b/test/audio_time.c @@ -32,7 +32,7 @@ static void usage(char *command) "-d, --delay add delay \n" "-D, --device=NAME select PCM by name \n" "-p, --playback playback tstamps \n" - "-t, --ts_type=TYPE Default(0),link(1),link_estimated(2),synchronized(3) \n" + "-t, --ts_type=TYPE Compat(0),default(1),link(2),link_absolute(3),link_estimated(4),link_synchronized(5) \n" "-r, --report show audio timestamp and accuracy validity\n" , command); } @@ -201,17 +201,17 @@ int main(int argc, char *argv[]) goto _exit; } - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 0)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT)) printf("Playback supports audio compat timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 1)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT)) printf("Playback supports audio default timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 2)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_LINK)) printf("Playback supports audio link timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 3)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE)) printf("Playback supports audio link absolute timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 4)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED)) printf("Playback supports audio link estimated timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, 5)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_p, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED)) printf("Playback supports audio link synchronized timestamps\n"); snd_pcm_sw_params_alloca(&swparams_p); @@ -269,17 +269,17 @@ int main(int argc, char *argv[]) goto _exit; } - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 0)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT)) printf("Capture supports audio compat timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 1)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT)) printf("Capture supports audio default timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 2)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_LINK)) printf("Capture supports audio link timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 3)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE)) printf("Capture supports audio link absolute timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 4)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED)) printf("Capture supports audio link estimated timestamps\n"); - if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, 5)) + if (snd_pcm_hw_params_supports_audio_ts_type(hwparams_c, SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED)) printf("Capture supports audio link synchronized timestamps\n"); snd_pcm_sw_params_alloca(&swparams_c);