[Pkg-voip-commits] r7512 - in /mumble/branches/1.1.8/debian: changelog control patches/backport-alsa-pulseaudio rules

slicer-guest at alioth.debian.org slicer-guest at alioth.debian.org
Sun Aug 16 23:19:31 UTC 2009


Author: slicer-guest
Date: Sun Aug 16 23:19:31 2009
New Revision: 7512

URL: http://svn.debian.org/wsvn/pkg-voip/?sc=1&rev=7512
Log:
* Backport ALSA and PulseAudio modules from 1.2.0 git, makes them work with
  modern releases of these sound systems.
* Standards-version 3.8.3
* Remove dh_desktop

Modified:
    mumble/branches/1.1.8/debian/changelog
    mumble/branches/1.1.8/debian/control
    mumble/branches/1.1.8/debian/patches/backport-alsa-pulseaudio
    mumble/branches/1.1.8/debian/rules

Modified: mumble/branches/1.1.8/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-voip/mumble/branches/1.1.8/debian/changelog?rev=7512&op=diff
==============================================================================
--- mumble/branches/1.1.8/debian/changelog (original)
+++ mumble/branches/1.1.8/debian/changelog Sun Aug 16 23:19:31 2009
@@ -1,7 +1,9 @@
 mumble (1.1.8-3) UNRELEASED; urgency=low
 
-  * Backport ALSA and PulseAudio modules from 1.2.0 git, makes them work with modern
-    releases of these sound systems.
+  * Backport ALSA and PulseAudio modules from 1.2.0 git, makes them work with
+    modern releases of these sound systems.
+  * Standards-version 3.8.3
+  * Remove dh_desktop
 
  -- Thorvald Natvig <slicer at users.sourceforge.net>  Sun, 16 Aug 2009 17:52:43 +0200
 

Modified: mumble/branches/1.1.8/debian/control
URL: http://svn.debian.org/wsvn/pkg-voip/mumble/branches/1.1.8/debian/control?rev=7512&op=diff
==============================================================================
--- mumble/branches/1.1.8/debian/control (original)
+++ mumble/branches/1.1.8/debian/control Sun Aug 16 23:19:31 2009
@@ -5,7 +5,7 @@
 Maintainer: Debian VoIP Team <pkg-voip-maintainers at lists.alioth.debian.org>
 Uploaders: Patrick Matthäi <pmatthaei at debian.org>, Thorvald Natvig <slicer at users.sourceforge.net>
 Build-Depends: debhelper (>= 5.0.51~), po-debconf, quilt (>= 0.40), libogg-dev, libspeechd-dev, libasound2-dev, libboost-dev, libqt4-dev, libqt4-opengl-dev, libspeex-dev, libspeexdsp-dev, libpulse-dev, libssl-dev, libxevie-dev, libzeroc-ice33-dev | libzeroc-ice32-dev | libzeroc-ice-dev , ice33-translators | ice32-translators | ice-translators, libg15daemon-client-dev, libcap2-dev, libc6-dev-i386 [amd64], gcc-multilib [amd64]
-Standards-Version: 3.8.1
+Standards-Version: 3.8.3
 DM-Upload-Allowed: yes
 Vcs-Svn: svn://svn.debian.org/pkg-voip/mumble/trunk/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-voip/mumble/?op=log

Modified: mumble/branches/1.1.8/debian/patches/backport-alsa-pulseaudio
URL: http://svn.debian.org/wsvn/pkg-voip/mumble/branches/1.1.8/debian/patches/backport-alsa-pulseaudio?rev=7512&op=diff
==============================================================================
--- mumble/branches/1.1.8/debian/patches/backport-alsa-pulseaudio (original)
+++ mumble/branches/1.1.8/debian/patches/backport-alsa-pulseaudio Sun Aug 16 23:19:31 2009
@@ -1,5 +1,5 @@
 diff --git a/src/mumble/ALSAAudio.cpp b/src/mumble/ALSAAudio.cpp
-index 4bb5143..b776201 100644
+index 4bb5143..64e2036 100644
 --- a/src/mumble/ALSAAudio.cpp
 +++ b/src/mumble/ALSAAudio.cpp
 @@ -121,7 +121,7 @@ const QList<audioDevice> ALSAAudioInputRegistrar::getDeviceChoices() {
@@ -89,7 +89,15 @@
  		}
  	}
  
-@@ -430,7 +432,7 @@ void ALSAAudioOutput::run() {
+@@ -420,7 +422,6 @@ void ALSAAudioOutput::run() {
+ 	int err = 0;
+ 	bool bOk = true;
+ 
+-	iMixerFreq = SAMPLE_RATE;
+ 
+ 	snd_pcm_hw_params_t *hw_params = NULL;
+ 	snd_pcm_sw_params_t *sw_params = NULL;
+@@ -430,7 +431,7 @@ void ALSAAudioOutput::run() {
  	snd_pcm_sw_params_alloca(&sw_params);
  
  	ALSA_ERRBAIL(snd_pcm_open(&pcm_handle, device_name.data(), SND_PCM_STREAM_PLAYBACK, 0));
@@ -98,32 +106,48 @@
  
  	if (g.s.doPositionalAudio()) {
  		iChannels = 1;
-@@ -445,8 +447,8 @@ void ALSAAudioOutput::run() {
+@@ -445,29 +446,42 @@ void ALSAAudioOutput::run() {
  
  	ALSA_ERRBAIL(snd_pcm_hw_params_set_access(pcm_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED));
  	ALSA_ERRBAIL(snd_pcm_hw_params_set_format(pcm_handle, hw_params, SND_PCM_FORMAT_S16));
 -	ALSA_ERRBAIL(snd_pcm_hw_params_set_rate_near(pcm_handle, hw_params, &iMixerFreq, NULL));
  	ALSA_ERRBAIL(snd_pcm_hw_params_set_channels_near(pcm_handle, hw_params, &iChannels));
-+	ALSA_ERRBAIL(snd_pcm_hw_params_set_rate_near(pcm_handle, hw_params, &iMixerFreq, NULL));
- 
- 	unsigned int iOutputSize = (iFrameSize * iMixerFreq) / SAMPLE_RATE;
- 
-@@ -459,15 +461,20 @@ void ALSAAudioOutput::run() {
++	unsigned int rrate = SAMPLE_RATE;
++	ALSA_ERRBAIL(snd_pcm_hw_params_set_rate_near(pcm_handle, hw_params, &rrate, NULL));
+ 
+-	unsigned int iOutputSize = (iFrameSize * iMixerFreq) / SAMPLE_RATE;
++	unsigned int iOutputSize = (iFrameSize * rrate) / SAMPLE_RATE;
+ 
+ 	snd_pcm_uframes_t period_size = iOutputSize;
+ 	snd_pcm_uframes_t buffer_size = iOutputSize * (g.s.iOutputDelay + 1);
+ 
+-	ALSA_ERRBAIL(snd_pcm_hw_params_set_period_size_near(pcm_handle, hw_params, &period_size, NULL));
++	int dir = 1;
++	ALSA_ERRBAIL(snd_pcm_hw_params_set_period_size_near(pcm_handle, hw_params, &period_size, &dir));
+ 	ALSA_ERRBAIL(snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hw_params, &buffer_size));
+ 
  	ALSA_ERRBAIL(snd_pcm_hw_params(pcm_handle, hw_params));
  	ALSA_ERRBAIL(snd_pcm_hw_params_current(pcm_handle, hw_params));
- 
-+	qWarning("ALSAAudioOutput: Actual buffer %d hz, %d channel %ld samples [%ld per period]",iMixerFreq,iChannels,buffer_size,period_size);
++	ALSA_ERRBAIL(snd_pcm_hw_params_get_period_size(hw_params, &period_size, &dir));
++	ALSA_ERRBAIL(snd_pcm_hw_params_get_buffer_size(hw_params, &buffer_size));
 +
++	qWarning("ALSAAudioOutput: Actual buffer %d hz, %d channel %ld samples [%ld per period]",rrate,iChannels,buffer_size,period_size);
+ 
  	ALSA_ERRBAIL(snd_pcm_sw_params_current(pcm_handle, sw_params));
 -	ALSA_ERRBAIL(snd_pcm_sw_params_set_start_threshold(pcm_handle, sw_params, 0));
  	ALSA_ERRBAIL(snd_pcm_sw_params_set_avail_min(pcm_handle, sw_params, period_size));
-+	ALSA_ERRBAIL(snd_pcm_sw_params_set_start_threshold(pcm_handle, sw_params, buffer_size));
-+	ALSA_ERRBAIL(snd_pcm_sw_params_set_stop_threshold(pcm_handle, sw_params, 0));
-+	ALSA_ERRBAIL(snd_pcm_sw_params_set_silence_threshold(pcm_handle, sw_params, period_size));
-+	ALSA_ERRBAIL(snd_pcm_sw_params_set_silence_size(pcm_handle, sw_params, period_size));
- 
+-
++	ALSA_ERRBAIL(snd_pcm_sw_params_set_start_threshold(pcm_handle, sw_params, buffer_size - period_size));
++	ALSA_ERRBAIL(snd_pcm_sw_params_set_stop_threshold(pcm_handle, sw_params, buffer_size));
  	ALSA_ERRBAIL(snd_pcm_sw_params(pcm_handle, sw_params));
  
++#ifdef ALSA_VERBOSE
++	snd_output_t *log;
++	snd_output_stdio_attach(&log, stderr,0);
++	if (pcm_handle)
++		snd_pcm_dump(pcm_handle, log);
++#endif
++
  	ALSA_ERRBAIL(snd_pcm_prepare(pcm_handle));
  
 -	const unsigned int buffsize = period_size * iChannels;
@@ -131,7 +155,17 @@
  
  	float zerobuff[buffsize];
  	float outbuff[buffsize];
-@@ -514,7 +521,7 @@ void ALSAAudioOutput::run() {
+@@ -503,7 +517,8 @@ void ALSAAudioOutput::run() {
+ 
+ 	ALSA_ERRBAIL(snd_pcm_hw_params_current(pcm_handle, hw_params));
+ 	ALSA_ERRBAIL(snd_pcm_hw_params_get_channels(hw_params, &iChannels));
+-	ALSA_ERRBAIL(snd_pcm_hw_params_get_rate(hw_params, &iMixerFreq, NULL));
++	ALSA_ERRBAIL(snd_pcm_hw_params_get_rate(hw_params, &rrate, NULL));
++	iMixerFreq = rrate;
+ 	eSampleFormat = SampleShort;
+ 
+ 	qWarning("ALSAAudioOutput: Initializing %d channel, %d hz mixer", iChannels, iMixerFreq);
+@@ -514,7 +529,7 @@ void ALSAAudioOutput::run() {
  
  	qml.unlock();
  
@@ -140,7 +174,7 @@
  		poll(fds, count, 20);
  		unsigned short revents;
  
-@@ -522,26 +529,35 @@ void ALSAAudioOutput::run() {
+@@ -522,26 +537,36 @@ void ALSAAudioOutput::run() {
  		if (revents & POLLERR) {
  			snd_pcm_prepare(pcm_handle);
  		} else if (revents & POLLOUT) {
@@ -173,6 +207,7 @@
 +			}
 +			
 +			if (avail == -EPIPE) {
++				snd_pcm_drain(pcm_handle);
 +				ALSA_ERRCHECK(snd_pcm_prepare(pcm_handle));
 +				for (unsigned int i=0;i< buffer_size / period_size;++i)
 +					ALSA_ERRCHECK(snd_pcm_writei(pcm_handle, zerobuff, period_size));
@@ -189,6 +224,15 @@
  
  				if (! bRunning)
  					break;
+@@ -549,7 +574,7 @@ void ALSAAudioOutput::run() {
+ 				snd_pcm_prepare(pcm_handle);
+ 
+ 				// Fill one frame
+-				for (unsigned int i = 0; i < (buffer_size / period_size) - 1 ; i++)
++				for (unsigned int i = 0; i < (buffer_size / period_size) - 1 ; i++) 
+ 					snd_pcm_writei(pcm_handle, zerobuff, period_size);
+ 
+ 				snd_pcm_writei(pcm_handle, outbuff, period_size);
 diff --git a/src/mumble/ALSAAudio.h b/src/mumble/ALSAAudio.h
 index 06dcb33..31be8af 100644
 --- a/src/mumble/ALSAAudio.h
@@ -238,8 +282,21 @@
  
  		qrwlOutputs.lockForWrite();
  		aop = new AudioOutputSpeech(player, iMixerFreq);
+diff --git a/src/mumble/AudioOutput.h b/src/mumble/AudioOutput.h
+index c2c872f..7a2af0c 100644
+--- a/src/mumble/AudioOutput.h
++++ b/src/mumble/AudioOutput.h
+@@ -196,7 +196,7 @@ class AudioOutput : public QThread {
+ 		enum { SampleShort, SampleFloat } eSampleFormat;
+ 		volatile bool bRunning;
+ 		unsigned int iFrameSize;
+-		unsigned int iMixerFreq;
++		volatile unsigned int iMixerFreq;
+ 		unsigned int iChannels;
+ 		unsigned int iSampleSize;
+ 		QReadWriteLock qrwlOutputs;
 diff --git a/src/mumble/AudioWizard.cpp b/src/mumble/AudioWizard.cpp
-index f00e72d..311a5ac 100644
+index f00e72d..259b868 100644
 --- a/src/mumble/AudioWizard.cpp
 +++ b/src/mumble/AudioWizard.cpp
 @@ -536,11 +536,11 @@ void AudioWizard::on_InputDevice_activated(int) {
@@ -284,16 +341,7 @@
  	}
  }
  
-@@ -657,24 +658,26 @@ int AudioWizard::nextId() const {
- }
- 
- void AudioWizard::playChord() {
-+	qWarning("RequestPlayChord");
- 	AudioOutputPtr ao = g.ao;
-+	qWarning("%p %p", ao.get(), aosSource);
- 	if (! ao || aosSource)
- 		return;
- 	aosSource = ao->playSample(QLatin1String("skin:wb_male.spx"), true);
+@@ -664,17 +665,17 @@ void AudioWizard::playChord() {
  }
  
  void AudioWizard::restartAudio() {
@@ -402,7 +450,7 @@
  		Q_OBJECT
  		Q_DISABLE_COPY(OSSOutput)
 diff --git a/src/mumble/PulseAudio.cpp b/src/mumble/PulseAudio.cpp
-index 18a65d0..0ac2520 100644
+index 18a65d0..a5fa3fd 100644
 --- a/src/mumble/PulseAudio.cpp
 +++ b/src/mumble/PulseAudio.cpp
 @@ -67,7 +67,6 @@ class PulseAudioInit : public DeferInit {
@@ -620,7 +668,7 @@
  }
  
  PulseAudioInputRegistrar::PulseAudioInputRegistrar() : AudioInputRegistrar(QLatin1String("PulseAudio"), 10) {
-@@ -620,29 +640,29 @@ void PulseAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings
+@@ -620,29 +640,51 @@ void PulseAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings
  }
  
  PulseAudioInput::PulseAudioInput() {
@@ -636,9 +684,20 @@
  
  PulseAudioInput::~PulseAudioInput() {
  	bRunning = false;
++	qmMutex.lock();
++	qwcWait.wakeAll();
++	qmMutex.unlock();
++	wait();
  	if (pasys)
 -		pasys->wakeup();
 +		pasys->wakeup_lock();
++}
++
++void PulseAudioInput::run() {
++	qmMutex.lock();
++	while (bRunning) 
++		qwcWait.wait(&qmMutex);
++	qmMutex.unlock();
  }
  
  PulseAudioOutput::PulseAudioOutput() {
@@ -654,12 +713,23 @@
  
  PulseAudioOutput::~PulseAudioOutput() {
  	bRunning = false;
++	qmMutex.lock();
++	qwcWait.wakeAll();
++	qmMutex.unlock();
++	wait();
  	if (pasys)
 -		pasys->wakeup();
 +		pasys->wakeup_lock();
++}
++
++void PulseAudioOutput::run() {
++	qmMutex.lock();
++	while (bRunning) 
++		qwcWait.wait(&qmMutex);
++	qmMutex.unlock();
  }
 diff --git a/src/mumble/PulseAudio.h b/src/mumble/PulseAudio.h
-index 3aef169..f3c0fe1 100644
+index 3aef169..137fe8e 100644
 --- a/src/mumble/PulseAudio.h
 +++ b/src/mumble/PulseAudio.h
 @@ -33,35 +33,29 @@
@@ -723,6 +793,37 @@
  };
  
  class PulseAudioInput : public AudioInput {
+@@ -92,11 +93,13 @@ class PulseAudioInput : public AudioInput {
+ 		Q_OBJECT
+ 		Q_DISABLE_COPY(PulseAudioInput)
+ 	protected:
++		QMutex qmMutex;
++		QWaitCondition qwcWait;
+ 		pa_sample_spec pssMic, pssEcho;
+ 	public:
+ 		PulseAudioInput();
+ 		~PulseAudioInput();
+-		void run() { };
++		void run();
+ };
+ 
+ class PulseAudioOutput : public AudioOutput {
+@@ -105,12 +108,14 @@ class PulseAudioOutput : public AudioOutput {
+ 		Q_OBJECT
+ 		Q_DISABLE_COPY(PulseAudioOutput)
+ 	protected:
++		QMutex qmMutex;
++		QWaitCondition qwcWait;
+ 		pa_sample_spec pss;
+ 		pa_channel_map pcm;
+ 	public:
+ 		PulseAudioOutput();
+ 		~PulseAudioOutput();
+-		void run() { };
++		void run();
+ };
+ 
+ #endif
 diff --git a/src/mumble/main.cpp b/src/mumble/main.cpp
 index 6157d47..a0051b2 100644
 --- a/src/mumble/main.cpp

Modified: mumble/branches/1.1.8/debian/rules
URL: http://svn.debian.org/wsvn/pkg-voip/mumble/branches/1.1.8/debian/rules?rev=7512&op=diff
==============================================================================
--- mumble/branches/1.1.8/debian/rules (original)
+++ mumble/branches/1.1.8/debian/rules Sun Aug 16 23:19:31 2009
@@ -99,7 +99,6 @@
 	dh_link
 	dh_gconf
 	dh_icons
-	dh_desktop
 	dh_strip --dbg-package=mumble-dbg
 	dh_compress
 	dh_fixperms




More information about the Pkg-voip-commits mailing list