[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