From da4d5bd53a1a57d1b39318b83d3280fbcd78e9f6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 15 May 2018 22:17:01 +0200 Subject: [PATCH 1/6] aplay: Fix invalid file size check for non-regular files aplay tries to check the file size via fstat() at parsing the format headers and avoids parsing when the size is shorter than the given size. This works fine for regular files, but when a special file like pipe is passed, it fails, eventually leading to the fallback mode wrongly. A proper fix is to do this sanity check only for a regular file. Reported-by: Jay Foster Signed-off-by: Takashi Iwai --- aplay/aplay.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aplay/aplay.c b/aplay/aplay.c index bbd7fff..63ec9ef 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -2821,7 +2821,8 @@ static int read_header(int *loaded, int header_size) /* don't be adventurous, get out if file size is smaller than * requested header size */ - if (buf.st_size < header_size) + if ((buf.st_mode & S_IFMT) == S_IFREG && + buf.st_size < header_size) return -1; if (*loaded < header_size) { -- 2.13.6 From 0e2703cef90a2c53d49a49d5e9233aeb6db8960b Mon Sep 17 00:00:00 2001 From: Julian Scheel Date: Wed, 23 May 2018 15:42:20 +0200 Subject: [PATCH 2/6] speaker-test: Support S24_3LE sample format Implement support signed 24 bit samples, packed in 3 bytes. Signed-off-by: Julian Scheel Signed-off-by: Takashi Iwai --- speaker-test/speaker-test.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index 65ab523..4804bcf 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -283,6 +283,8 @@ static const int supported_formats[] = { SND_PCM_FORMAT_S16_LE, SND_PCM_FORMAT_S16_BE, SND_PCM_FORMAT_FLOAT_LE, + SND_PCM_FORMAT_S24_3LE, + SND_PCM_FORMAT_S24_3BE, SND_PCM_FORMAT_S32_LE, SND_PCM_FORMAT_S32_BE, -1 @@ -325,6 +327,18 @@ static void do_generate(uint8_t *frames, int channel, int count, case SND_PCM_FORMAT_FLOAT_LE: *samp_f++ = res.f; break; + case SND_PCM_FORMAT_S24_3LE: + res.i >>= 8; + *samp8++ = LE_INT(res.i); + *samp8++ = LE_INT(res.i) >> 8; + *samp8++ = LE_INT(res.i) >> 16; + break; + case SND_PCM_FORMAT_S24_3BE: + res.i >>= 8; + *samp8++ = BE_INT(res.i); + *samp8++ = BE_INT(res.i) >> 8; + *samp8++ = BE_INT(res.i) >> 16; + break; case SND_PCM_FORMAT_S32_LE: *samp32++ = LE_INT(res.i); break; -- 2.13.6 From 98ff61743188101920cbf0b1b2e3cd6d015e3c83 Mon Sep 17 00:00:00 2001 From: Julian Scheel Date: Wed, 23 May 2018 15:42:21 +0200 Subject: [PATCH 3/6] speaker-test: Remove unused variable Signed-off-by: Julian Scheel Signed-off-by: Takashi Iwai --- speaker-test/speaker-test.c | 1 - 1 file changed, 1 deletion(-) diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index 4804bcf..0cdecb3 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -300,7 +300,6 @@ static void do_generate(uint8_t *frames, int channel, int count, { value_t res; int chn; - int32_t ires; int8_t *samp8 = (int8_t*) frames; int16_t *samp16 = (int16_t*) frames; int32_t *samp32 = (int32_t*) frames; -- 2.13.6 From a3d81b6beab1ad33ea02f7d3c19f894490a661b9 Mon Sep 17 00:00:00 2001 From: Julian Scheel Date: Thu, 7 Jun 2018 11:10:55 +0200 Subject: [PATCH 4/6] speaker-test: Allow sampling rates up to 768000 There are audio devices around that support up to 768kHz playback, allow testing them by increasing the maximum supported sampling rate. Signed-off-by: Julian Scheel Signed-off-by: Takashi Iwai --- speaker-test/speaker-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index 0cdecb3..773af0a 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -1034,7 +1034,7 @@ int main(int argc, char *argv[]) { case 'r': rate = atoi(optarg); rate = rate < 4000 ? 4000 : rate; - rate = rate > 384000 ? 384000 : rate; + rate = rate > 768000 ? 768000 : rate; break; case 'c': channels = atoi(optarg); -- 2.13.6 From f6b59282f7c3bddc6aa4aca93e8e19163955675b Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Sun, 5 Aug 2018 13:59:35 +1000 Subject: [PATCH 5/6] alsabat: Allow custom sample format for round trip latency test Setting the format to BAT_PCM_FORMAT_S16_LE in the round trip latency test initialization is redundant as it is already set by default to BAT_PCM_FORMAT_S16_LE unless a sample format is specified on the command line. Signed-off-by: Jonathan Liu Signed-off-by: Takashi Iwai --- bat/latencytest.c | 1 - 1 file changed, 1 deletion(-) diff --git a/bat/latencytest.c b/bat/latencytest.c index fae191c..ec3abe2 100644 --- a/bat/latencytest.c +++ b/bat/latencytest.c @@ -178,7 +178,6 @@ void roundtrip_latency_init(struct bat *bat) bat->latency.is_playing = false; bat->latency.error = 0; bat->latency.xrun_error = false; - bat->format = BAT_PCM_FORMAT_S16_LE; bat->frames = LATENCY_TEST_TIME_LIMIT * bat->rate; bat->periods_played = 0; } -- 2.13.6 From 25bea6baf7097dc0a701b27587be88b0b54a529c Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 7 Sep 2018 10:53:19 +0200 Subject: [PATCH 6/6] alsaucm: add alsa-ucm udev rules for PAZ00 (Toshiba AC100/Dynabook AZ). Signed-off-by: Jaroslav Kysela --- .gitignore | 1 + alsaucm/89-alsa-ucm.rules.in | 8 ++++++++ alsaucm/Makefile.am | 15 ++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 alsaucm/89-alsa-ucm.rules.in diff --git a/alsaucm/89-alsa-ucm.rules.in b/alsaucm/89-alsa-ucm.rules.in new file mode 100644 index 0000000..52a7616 --- /dev/null +++ b/alsaucm/89-alsa-ucm.rules.in @@ -0,0 +1,8 @@ +SUBSYSTEM!="sound", GOTO="ucm_end" +ACTION!="change", GOTO="ucm_end" +KERNEL!="card*", GOTO="ucm_end" + +ATTRS{id}=="PAZ00", RUN+="@bindir@/alsaucm -c PAZ00 set _verb HiFi" +ATTRS{id}=="PAZ00", RUN+="@bindir@/alsaucm -c PAZ00 set _verb Record" + +LABEL="ucm_end" diff --git a/alsaucm/Makefile.am b/alsaucm/Makefile.am index ee0391e..651f678 100644 --- a/alsaucm/Makefile.am +++ b/alsaucm/Makefile.am @@ -15,4 +15,17 @@ alsaucm_LDADD = -lasound %.1: %.rst rst2man $< > $@ -EXTRA_DIST = alsaucm.rst +udevrules_DATA = \ + 89-alsa-ucm.rules + +edit = \ + $(SED) -r -e 's,@bindir\@,$(bindir),g' \ + -e 's,@mydatadir\@,$(mydatadir),g' \ + < $< > $@ || rm $@ + +89-alsa-ucm.rules: 89-alsa-ucm.rules.in + $(edit) + +EXTRA_DIST = alsaucm.rst 89-alsa-ucm.rules.in + +CLEANFILES = 89-alsa-ucm.rules -- 2.13.6