Commit Graph

29 Commits (c4e18fbcaab2413d153ec79356930bf667839b4f)

Author SHA1 Message Date
Ansariel b425ccf160 Print out FMOD_ERR_INVALID_HANDLE FmodEx errors as debug level since handles always seem to become invalid when a sound stops 2017-12-11 20:17:56 +01:00
Ansariel 5fa82bfdb7 FIRE-17376: Pass application name to FMOD on Linux when using PulseAudio output type 2017-09-03 16:42:52 +02:00
Ansariel 31e4d9db08 Fix FMOD error logging 2017-09-02 12:04:04 +02:00
Ansariel 6dd2070446 Add Firestorm tagging to previous commit 2015-06-17 10:20:47 +02:00
Drake Arconis c12f153b68 Audio Engine and FMOD Ex improvements and fixes from Shyotl Kuhr and Drake Arconis 2015-06-16 17:01:40 -04:00
Ansariel 80f42dfdd4 Backed out changeset 158bbab1eb2a (FIRE-12077) as it causes other issues 2015-06-16 20:25:27 +02:00
Nicky b9150394a7 FIRE-12077; Contribution by Gibson Firehawk to fix the bug that Linux clients freeze ocassionaly when the stream changes or stops.
From his original commit:

OPEN-279 Potential fix for the BUG-3214 stream stopping issue
Here is what the FMOD documentation says about the stream state FMOD_OPENSTATE_Ready and playing, but not possible to release at this time without stalling the main  Since the FMOD Ex implementation (not sure about the old FMOD 3.75), streams have been released while the stream state is FMOD_OPENSTATE_PLAYING. Before release is called, the stream would only be paused, not stopped. The stream must be stopped for it to no longer be in playing state. Also, there usually needs to be just a little time between when a stream is stopped for it to exit playing state before releasing it. The viewer has been calling release almost instantly after just pausing the stream.
I think s quite possible that, even though releasing streams while they are in playing state t appear to be problematic most of the time, that some of the stream stopping issues such as BUG-3214 are a result of it. In the net streaming example program that comes with the FMOD API, when a stream is to be stopped, stop is called for the channel and then right before release, the program waits not only for the stream to exit playing state, but also for the stream to return to FMOD_OPENSTATE_READY before releasing. Due to the differences in how the viewer has been stopping and releasing streams compared to how FMOD does it in their example program, along with what they say in their documentation about the stream state FMOD_OPENSTATE_PLAYING, i have made the following changes to how streams are stopped and released by the viewer.
1.) Stop the stream channel instead of just pausing it before release so the stream can exit FMOD_OPENSTATE_PLAYING state and return (usually very quickly after stop is called) to FMOD_OPENSTATE_READY.
2.) Converted the dead streams list into a delayed release list. If a s state is not FMOD_OPENSTATE_READY when s checked right before release, push the stream to the delayed release list. Check for delayed release streams during each update like how was done before with the dead streams list and release streams that are in ready state.
3.) During viewer shutdown, call stop on the currently playing stream. After that, check if any streams are in the delayed release list, and, if so, release them when their stream state is ready state. If an unlikely edge case occurs where the streams in the delayed release list are not released in a timely fashion, force release them. The force release added in this change is actually pretty much the equivalent of how streams used to be stopped previously. The main difference, and advantage, is that regardless of which state the stream might be in during force release besides FMOD_OPENSTATE_READY, it won't be in FMOD_OPENSTATE_PLAYING when released.itstreamdoesnitthread.PLAYING -
2015-05-11 14:05:44 +02:00
Ansariel 17fdda5eb9 FIRE-11266 / BUG-3549 / MAINT-2983: Changing audio device now requires relog to restore sounds; path by Gibson Firehawk 2015-03-20 09:10:44 +01:00
Tank_Master 6095a2072d more deprecated call fixes (llmsg -> LL_MSG() / llendl -> LL_ENDL) 2014-06-10 08:01:16 -07:00
Tank_Master 6babf8abd2 Merge LL 3.7.7 2014-06-09 11:29:57 -07:00
Tank_Master 87bcc46ff5 Merge LL 3.7.4 2014-03-25 06:54:26 -07:00
Richard Linden e5bbdafded merge with release 2014-03-24 19:23:34 -07:00
Monty Brandenberg c62d2cca29 Additions & fixes for lib copy, use only forwarded ptrs in LLAE interfaces.
Copy3rdPartyLibs needed to copy the now-corrected fmodexL libraries
and it had a bad library reference on Linux for release.  In
llaudio land, the audio engine interfaces, even the fmodex
specializations, seem to want to be external-structure free
so use a forward declaration and pointer to FMOD_DSP_DESCRIPTION
and deal with it in the ctor/dtor.
2014-03-14 20:58:35 -04:00
Monty Brandenberg 4f565ed077 Update fmodex to 4.44.31. Move DSP descriptor to heap storage. 2014-03-14 19:48:35 -04:00
Richard Linden e340009fc5 second phase summer cleaning
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-08-09 17:11:19 -07:00
Graham Madarasz c38204f5e0 Unwind cruft from hunting for 2707 they won't end up in vwr-dev-mat 2013-06-05 14:26:27 -07:00
Graham Madarasz cf3d2a06a1 BUG-2707 turn off more LL_DEBUGS to narrow down Kat's crashing cuplrit 2013-06-01 19:36:38 -07:00
Graham Madarasz d21fc254a7 BUG-2707 hunt for infos call crashing Kat 2013-06-01 13:43:52 -07:00
callum_linden 4f6102dfaa Minor tweak to turn down FMOD Ex noisy console logging while we look into root problem 2013-05-30 14:21:37 -07:00
callum_linden 1f9710ebcb Quieten down writing to fmod.log - only write errors - speculate this is related to audio stutter/frame stalls 2013-05-20 15:09:42 -07:00
Graham Madarasz e1c1428569 Merge viewer-dev-materials and bugfix in LLPanelFace::getState using material instead of mMaterial 2013-05-11 20:38:23 -07:00
callum_linden 9707f09fd8 MAINT-2657 Fix (speculative) for Crash in LLAudioEngine_FMODEX::shutdown() 2013-05-06 15:01:13 -07:00
callum_linden 6383c8829f New fix for the fix for Linux build now that gcc upgraded to 4.6 by default 2013-04-17 15:56:45 -07:00
callum_linden 1fa45e7448 Fix for Linux build now that gcc upgraded to 4.6 by default 2013-04-17 15:46:40 -07:00
Graham Madarasz (Graham) 4c6fc784a6 Point autobuild at newer fmodex builds and fix warning being treated as error in llaudioengine_fmodex.cpp 2013-02-04 14:04:22 -08:00
callum_linden ba3e89b5c7 first push - patch from CmdCupCake plus force FMODEX on 2013-01-18 16:43:19 -08:00
Ansariel a566d7baaf Backout a901e2999154: The credit is now on the license tab in the about floater 2013-07-27 15:47:01 +02:00
Cinders c9353b1a87 FmodEx license string update 2013-07-26 20:12:19 -06:00
Ansariel 1bffad46ae Add additional debug message in LLAudioEngine_FMODEX::shutdown() - viewer might hang in that area 2013-07-26 18:57:48 +02:00