Add patch to fix underrun errors in the ALSA plugin.
The ALSA plugin doesn't suspend the ALSA device when the ::suspend() method is called. This results in underrun errors when it's resumed. In ALSA, stopping a pcm doesn't close it, so the ALSA stop/start functions map to the QAudioInput suspend/resume functions. PR: 208598 Submitted by: shurd MFH: 2016Q2
This commit is contained in:
parent
40d5590e76
commit
c031e35484
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=413463
2 changed files with 37 additions and 0 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
PORTNAME= multimedia
|
||||
DISTVERSION= ${QT5_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= multimedia
|
||||
PKGNAMEPREFIX= qt5-
|
||||
|
||||
|
|
36
multimedia/qt5-multimedia/files/patch-git_9047d9b
Normal file
36
multimedia/qt5-multimedia/files/patch-git_9047d9b
Normal file
|
@ -0,0 +1,36 @@
|
|||
commit 9047d9b84e9d94d193e77abd81f5980eff77d73a
|
||||
Author: Stephen Hurd <shurd@freebsd.org>
|
||||
Date: Thu Apr 14 19:11:01 2016 -0700
|
||||
|
||||
ALSA: Call snd_pcm_drain() on suspend
|
||||
|
||||
The ALSA plugin previously didn't suspend the ALSA device when the
|
||||
::suspend() method is called. This results in underrun errors when
|
||||
it's resumed.
|
||||
|
||||
In ALSA, stopping a pcm doesn't close it, so the ALSA stop/start
|
||||
functions map to the QAudioInput suspend/resume functions.
|
||||
|
||||
Change-Id: I2507065a1b7472af29eef70c531b9f6e8e5b3072
|
||||
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
|
||||
|
||||
--- src/plugins/alsa/qalsaaudioinput.cpp
|
||||
+++ src/plugins/alsa/qalsaaudioinput.cpp
|
||||
@@ -701,6 +701,7 @@ qint64 QAlsaAudioInput::processedUSecs() const
|
||||
void QAlsaAudioInput::suspend()
|
||||
{
|
||||
if(deviceState == QAudio::ActiveState||resuming) {
|
||||
+ snd_pcm_drain(handle);
|
||||
timer->stop();
|
||||
deviceState = QAudio::SuspendedState;
|
||||
emit stateChanged(deviceState);
|
||||
--- src/plugins/alsa/qalsaaudiooutput.cpp
|
||||
+++ src/plugins/alsa/qalsaaudiooutput.cpp
|
||||
@@ -673,6 +673,7 @@ QAudioFormat QAlsaAudioOutput::format() const
|
||||
void QAlsaAudioOutput::suspend()
|
||||
{
|
||||
if(deviceState == QAudio::ActiveState || deviceState == QAudio::IdleState || resuming) {
|
||||
+ snd_pcm_drain(handle);
|
||||
timer->stop();
|
||||
deviceState = QAudio::SuspendedState;
|
||||
errorState = QAudio::NoError;
|
Loading…
Reference in a new issue