- Fix "Failed to open audio file" for FLAC and OGG (bsc#1183546) parecord-fix-Failed-to-open-audio-file-for-FLAC-and-.patch OBS-URL: https://build.opensuse.org/request/show/879246 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pulseaudio?expand=0&rev=235
45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
From b230da0d948573f4e17f12285373235369099dd8 Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@arcor.de>
|
|
Date: Mon, 15 Mar 2021 13:01:28 +0100
|
|
Subject: [PATCH] parecord: fix "Failed to open audio file" for FLAC and OGG
|
|
|
|
This patch fixes the following error:
|
|
|
|
$ pacat --file-format=ogg -r test.ogg
|
|
Failed to open audio file.
|
|
$ parecord sep.flac
|
|
Failed to open audio file.
|
|
|
|
libsndfile errors out if a WAV or OGG file is set to have anything but
|
|
SF_ENDIAN_FILE:
|
|
|
|
https://github.com/libsndfile/libsndfile/commit/f4d1646e5cd96444a75c6327a9d49739f81d251e
|
|
Signed-off-by: Martin Wilck <mwilck@arcor.de>
|
|
---
|
|
src/utils/pacat.c | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/src/utils/pacat.c b/src/utils/pacat.c
|
|
index 4d2ecf717..31da073bc 100644
|
|
--- a/src/utils/pacat.c
|
|
+++ b/src/utils/pacat.c
|
|
@@ -1062,6 +1062,15 @@ int main(int argc, char *argv[]) {
|
|
}
|
|
|
|
sfi.format |= file_format;
|
|
+
|
|
+ /*
|
|
+ * Endianness has been set in pa_sndfile_write_sample_spec(), but
|
|
+ * libsndfile errors out if endianness is set to anything other than
|
|
+ * SF_ENDIAN_FILE for OGG or FLAC. Clear it.
|
|
+ */
|
|
+ if (file_format == SF_FORMAT_OGG || file_format == SF_FORMAT_FLAC)
|
|
+ sfi.format = (sfi.format & ~SF_FORMAT_ENDMASK) | SF_ENDIAN_FILE;
|
|
+
|
|
}
|
|
|
|
if (!(sndfile = sf_open_fd(mode == RECORD ? STDOUT_FILENO : STDIN_FILENO,
|
|
--
|
|
2.26.2
|
|
|