[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