Following on from bug 751030, there's some additional work to be done. See the comments from Michael and Arun in that bug for details, but the short version is: - fix the deadlock caused by mainloop lock vs nsBufferedAudioStream lock ordering in the data_callback vs get_position calls. - make bad stream state and PA API failures non fatal and signal them via state_callback with CUBEB_STREAM_ERROR. - change minreq calculation to tlength / 4, and add a comment explaining the voodoo. - fix the errors in the stream refill callback's calculation of buffer_fill/buffer_time.
(In reply to Matthew Gregan [:kinetik] from comment #0) > - fix the deadlock caused by mainloop lock vs nsBufferedAudioStream lock > ordering in the data_callback vs get_position calls. This one ceases to be a problem with the patch from bug 757707, since that avoids holding the stream lock over calls to cubeb.
Assignee: nobody → kinetik
Status: NEW → ASSIGNED
Tests pass locally, waiting for try results: https://tbpl.mozilla.org/?tree=Try&rev=562da81de3d8
Pushed the wrong version. Second attempt: https://tbpl.mozilla.org/?tree=Try&rev=1eb9ab68d921
Attachment #709549 - Attachment is obsolete: true
Unregister state callbacks during destruction. Since the state callbacks were changed to depend on cubeb-allocated userdata (cubeb and cubeb_stream), it's no longer safe for the state callback to run after the userdata has been freed. Try: https://tbpl.mozilla.org/?tree=Try&rev=967bf9ccda40
Attachment #709563 - Attachment is obsolete: true
Comment on attachment 710018 [details] [diff] [review] patch v2 This is nice and green. I've included Randell as a reviewer for the WebRTC signaling tests makefile. I changed it to match the ALSA/PulseAudio logic in libxul's makefile.
Attachment #710018 - Flags: review?(rjesup) → review+
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in before you can comment on or make changes to this bug.