[spice] Fix advertised sound playback/recording rates in public headers
Christophe Fergeau
teuf at fedoraproject.org
Mon Aug 25 10:48:23 UTC 2014
commit 4c96febcddf5214bc5143fd89b4463c95ce74c62
Author: Christophe Fergeau <cfergeau at redhat.com>
Date: Mon Aug 25 12:46:28 2014 +0200
Fix advertised sound playback/recording rates in public headers
Resolves: rhbz#1129961 (QEMU would need a rebuild though)
...-t-use-48kHz-for-playback-recording-rates.patch | 56 ++++++++++++++++++++
spice.spec | 8 +++-
2 files changed, 63 insertions(+), 1 deletions(-)
---
diff --git a/0001-spice.h-Don-t-use-48kHz-for-playback-recording-rates.patch b/0001-spice.h-Don-t-use-48kHz-for-playback-recording-rates.patch
new file mode 100644
index 0000000..b471133
--- /dev/null
+++ b/0001-spice.h-Don-t-use-48kHz-for-playback-recording-rates.patch
@@ -0,0 +1,56 @@
+From 288cf77f804187a3e77ae2a5a21d108d101d22ce Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau at redhat.com>
+Date: Tue, 19 Aug 2014 11:09:05 +0200
+Subject: [PATCH] spice.h: Don't use 48kHz for playback/recording rates
+
+When adding Opus support, SPICE_INTERFACE_PLAYBACK_FREQ and
+SPICE_INTERFACE_RECORD_FREQ in the public header 'spice.h' were changed
+from 44100 to 48000.
+However, this was not really useful as these constants are not used in
+spice-server, but only by users of spice-server (ie QEMU).
+It turns out changing these values is actually harmful. QEMU uses these
+constants in 2 situations:
+1. when it's a version of QEMU with this commit, but we are compiling
+ against older spice-server headers (before Opus support was added)
+2. when it's a version of QEMU without commit 795ca114d35 which added
+ what is needed for Opus support
+
+When we are in the second situation, having 48000 in the public header
+will actually cause issues as spice-server will know QEMU does not
+support Opus, so internally spice-server will be using a 44100 rate for
+audio. However, QEMU will be using SPICE_INTERFACE_.*_FREQ and think it
+should use a 48000 rate, which will cause distorsions as experienced in
+bug https://bugzilla.redhat.com/show_bug.cgi?id=1129961
+
+Reverting these constants back to 44100 will fix audio in the 'new
+spice-server/old QEMU' scenario, and won't cause issues either when both
+support Opus as in this case these constants are not used.
+---
+ server/spice.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/server/spice.h b/server/spice.h
+index c648a1d..58700d1 100644
+--- a/server/spice.h
++++ b/server/spice.h
+@@ -342,7 +342,7 @@ enum {
+ SPICE_INTERFACE_AUDIO_FMT_S16 = 1,
+ };
+
+-#define SPICE_INTERFACE_PLAYBACK_FREQ 48000
++#define SPICE_INTERFACE_PLAYBACK_FREQ 44100
+ #define SPICE_INTERFACE_PLAYBACK_CHAN 2
+ #define SPICE_INTERFACE_PLAYBACK_FMT SPICE_INTERFACE_AUDIO_FMT_S16
+
+@@ -372,7 +372,7 @@ typedef struct SpiceRecordInterface SpiceRecordInterface;
+ typedef struct SpiceRecordInstance SpiceRecordInstance;
+ typedef struct SpiceRecordState SpiceRecordState;
+
+-#define SPICE_INTERFACE_RECORD_FREQ 48000
++#define SPICE_INTERFACE_RECORD_FREQ 44100
+ #define SPICE_INTERFACE_RECORD_CHAN 2
+ #define SPICE_INTERFACE_RECORD_FMT SPICE_INTERFACE_AUDIO_FMT_S16
+
+--
+1.9.3
+
diff --git a/spice.spec b/spice.spec
index 9152e3b..d364415 100644
--- a/spice.spec
+++ b/spice.spec
@@ -1,11 +1,12 @@
Name: spice
Version: 0.12.5
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Implements the SPICE protocol
Group: User Interface/Desktops
License: LGPLv2+
URL: http://www.spice-space.org/
Source0: http://www.spice-space.org/download/releases/%{name}-%{version}.tar.bz2
+Patch0: 0001-spice.h-Don-t-use-48kHz-for-playback-recording-rates.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=613529
%if 0%{?rhel}
@@ -61,6 +62,7 @@ using spice-server, you will need to install spice-server-devel.
%prep
%setup -q
+%patch0 -p1
%build
@@ -91,6 +93,10 @@ mkdir -p %{buildroot}%{_libexecdir}
%changelog
+* Mon Aug 25 2014 Christophe Fergeau <cfergeau at redhat.com> 0.12.5-5
+- Fix advertised sound playback/recording rates in public headers
+ Resolves: rhbz#1129961 (QEMU would need a rebuild though)
+
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.12.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
More information about the scm-commits
mailing list