[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-audio-cvs
Subject:    [Audio-cvs] device/platform/unix audlinux_pulseaudio.cpp, 1.1.2.5,
From:       dyek () helixcommunity ! org
Date:       2009-12-15 17:37:03
Message-ID: 200912151850.nBFIoVZJ030165 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/audio/device/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv32347

Modified Files:
      Tag: hxclient_3_1_0_atlas
	audlinux_pulseaudio.cpp 
Log Message:
Fixing bug #9770: Crash occasionally when seeking audio content.
It was caused by pa_stream_flush() calls without locking mainloop.

Intel noticed that RealPlayer's PulseAudio support crash occassionally.

It was found to be repro-able by clicking the timeline bar as quickly as possible for \
about 2 minutes or more.

This turned out to be a real bug with:
  pa_stream_flush()
called from outside PulseAudio (equivalently Helix audio) thread during:
  CAudioOutLinuxPA::_Reset()
calls.

This change simply add mainloop locking before calling:
  pa_stream_flush().

Files Modified:
audio/device/platform/unix/audlinux_pulseaudio.cpp

Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/audio-dev/2009-December/001079.html



Index: audlinux_pulseaudio.cpp
===================================================================
RCS file: /cvsroot/audio/device/platform/unix/audlinux_pulseaudio.cpp,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -d -r1.1.2.5 -r1.1.2.6
--- audlinux_pulseaudio.cpp	12 Dec 2009 22:25:48 -0000	1.1.2.5
+++ audlinux_pulseaudio.cpp	15 Dec 2009 17:37:00 -0000	1.1.2.6
@@ -1553,10 +1553,14 @@
         {
             HXLOGL4 (HXLOG_ADEV, "CAudioOutLinuxPA::_Reset(): Throwing away Audio \
Data!");  
+            HX_LOCK(m_pPulseAudioMainloopLock);
+
             pa_operation *op = pa_stream_flush(m_pa_stream, 
                                                NULL,   // pa_stream_success_cb_t; \
Don't wait for flush!  NULL);  // userdata
             hx_pa_operation_unref(op);
+
+            HX_UNLOCK(m_pPulseAudioMainloopLock);
         }
     }
 


_______________________________________________
Audio-cvs mailing list
Audio-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/audio-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic