Commit graph

2249 commits

Author SHA1 Message Date
Zach Pomerantz
28960681d9 limit audio pool to sane thread count 2016-12-06 23:57:38 +00:00
Zach Pomerantz
259775e163 clarify lock requirement in audio slave pool 2016-12-06 23:56:11 +00:00
Zach Pomerantz
2fc904b990 fix typos 2016-12-06 23:54:13 +00:00
Zach Pomerantz
557ab43f0f add a timeout for errant audio slave threads 2016-12-06 23:53:16 +00:00
Zach Pomerantz
132e9bd644 add timings to AudioMixer 2016-12-06 23:51:06 +00:00
Zach Pomerantz
2a6e46aa0c rm static buffer from AudioMixerSlave 2016-12-06 20:15:39 +00:00
Zach Pomerantz
d899391a1a fix audio hist array initializer for WIN32 2016-12-02 04:12:44 +00:00
Zach Pomerantz
800744a139 fix audio pool shutdown and add single threading 2016-12-01 23:03:37 +00:00
Zach Pomerantz
78bc5cf502 fix audio pool resizing 2016-12-01 21:25:56 +00:00
Zach Pomerantz
2c42bb0aa8 time audio mixing frames 2016-11-30 18:18:36 -05:00
Zach Pomerantz
8a6dcdeb68 mix audio with single node list read lock 2016-11-30 16:37:34 -05:00
Zach Pomerantz
b4638105e3 expose audio mixer threads to gui 2016-11-29 13:32:10 -05:00
Zach Pomerantz
7a440def87 add AudioMixerSlavePool 2016-11-28 17:59:29 -05:00
Zach Pomerantz
41ef105456 clean up AudioMixerSlave 2016-11-28 17:07:24 -05:00
Zach Pomerantz
bf137cd589 break AudioMixer slave/stats into own files 2016-11-28 16:50:47 -05:00
Zach Pomerantz
2e619b230d add AudioMixerStats 2016-11-28 16:50:42 -05:00
Zach Pomerantz
192f4791d5 move mixing into AudioMixerSlave 2016-11-28 16:50:26 -05:00
Zach Pomerantz
891084e9db modularize audio mixing code 2016-11-28 16:48:53 -05:00
Zach Pomerantz
028ac5264f consolidate AudioMixer slots 2016-11-28 16:26:53 -05:00
Zach Pomerantz
0170379d3c rm unused vars 2016-11-27 18:09:05 -05:00
Atlante45
3035d43772 Merge branch 'master' of https://github.com/highfidelity/hifi into fix/settings 2016-11-21 13:05:08 -08:00
Brad Hefta-Gaub
fe709f51de personal space feature 2016-11-19 16:30:15 -08:00
Stephen Birarda
dadcaa9959 don't send audio/avatar data for ignoree to ignored node 2016-11-14 10:12:36 -08:00
Chris Collins
6581a51bc9 Merge pull request #9052 from davidkelly/dk/2226
Add ability to mute user
2016-11-11 16:02:08 -08:00
David Kelly
6063a63f44 cr feedback 2016-11-11 14:23:59 -08:00
David Kelly
9c8f22e0e7 straight to audio mixer
since we can get the canKick there too.  (doh)
2016-11-11 09:30:58 -08:00
Seth Alves
5629db9109 Merge pull request #9049 from birarda/max-min-av-scale
add a min/max avatar scale in domain-server settings
2016-11-11 06:11:02 -08:00
David Kelly
80d4033767 oops forgot one thing... 2016-11-10 17:13:50 -08:00
Stephen Birarda
020942c826 better handling for a flipped min/max scale 2016-11-10 16:50:36 -08:00
David Kelly
285520dff7 Initial cut
No script work yet, just first stab at underpinnings
2016-11-10 16:24:35 -08:00
Stephen Birarda
88c63332de protect flipped min/max scale in avatar mixer settings 2016-11-10 16:21:48 -08:00
Stephen Birarda
64d9fa0f39 clamp avatar scale to domain limit in avatar mixer 2016-11-10 14:19:32 -08:00
Stephen Birarda
77ede81fc9 limit MyAvatar scale to limits from domain settings 2016-11-10 13:27:13 -08:00
Brad Hefta-Gaub
af2f6e831a Merge pull request #9044 from birarda/higher-mute-permissions
elevate permissions required for mute environment to kick
2016-11-10 10:18:06 -08:00
Stephen Birarda
f56a5d1d98 elevate permissions required for mute environment 2016-11-10 09:23:01 -08:00
Brad Hefta-Gaub
8758e4a9ba add support for whitelist entity scripts 2016-11-09 19:17:24 -08:00
Seth Alves
c8a654a915 Merge pull request #9006 from Atlante45/logging
Logging improvements
2016-11-07 13:35:13 -08:00
Atlante45
ae29fe8ab2 Logging improvements 2016-11-04 14:26:19 -07:00
David Kelly
21d1f40f59 Seems we were not deleting the right hrtfs when a node is killed
Simple fix, just make sure we delete the hrtfs associated with the
killedNode.  The test is to delete some nodes (agents) and make sure
nothing bad happens to audio mixer, or the audio itself.
2016-11-04 13:15:02 -07:00
David Kelly
920cd90afa CR feedback 2016-11-03 13:23:05 -07:00
David Kelly
ec0382daf7 PR feedback
Completely deleting hrtfs incorrectly.  This seems to be better, we
only want to delete HRTF for the QUuid() stream for the killed node in each
node's list of HRTFs.
2016-11-01 18:29:31 -07:00
David Kelly
c1feac971b CR feedback 2016-11-01 15:17:07 -07:00
David Kelly
0b80610e65 Needed to properly remove hrtfs for avatar audio 2016-11-01 15:09:14 -07:00
David Kelly
404c08b0c7 Un-do of previous commit
Seems to add an artifact when using our test scripts.  Will work on that
as a separate issue, as it would be an existing issue in any case.
2016-11-01 10:46:22 -07:00
David Kelly
fb2968a419 Reset bytes sent counter when setting avatar sound
It could be past the end of the buffer if you changed sounds, and the
new one is shorter.  Won't happen with our current tests, but that could
change, and in general no reason it couldn't happen.
2016-11-01 09:12:35 -07:00
David Kelly
5714063eff Make more reliable
Need to be sure we don't change the _isAvatar or
_isListeningToAudioStream from one thread while processing audio in
another.  Also, fixed issue sending NLPacketList.
2016-10-31 16:38:01 -07:00
David Kelly
e63e9bc017 Remove HRTFs for Avatar too
Turns out there was already a function for that, if you just call
removeHRTFForStream without a 2nd param, it appears to just delete
the audio with uuid of QUuid() which is the avatar's mic.  That is
what we want, so cool.
2016-10-31 13:25:22 -07:00
David Kelly
80e38c395e Send KillAvatar to AudioMixer too
So it can remove the listening agent avatar audio streams.  Otherwise
they stick around forever, and eventually swamp the audio mixer.
2016-10-31 10:35:16 -07:00
David Kelly
e3a22618d1 CR feedback 2016-10-27 17:49:43 -07:00
David Kelly
52a14bf5c3 Merge branch 'master' of github.com:highfidelity/hifi into dk/moreACAudioArtifacts 2016-10-27 16:52:25 -07:00
David Kelly
292dd67433 cleanup 2016-10-27 16:04:30 -07:00
Howard Stearns
d2b83b47ba Merge pull request #8936 from zzmp/clean/audio-mixer
clean audio mixer
2016-10-27 15:57:16 -07:00
David Kelly
5e4f539144 AudioMixer flushes now
And protected agent from case with no codec
2016-10-27 14:46:04 -07:00
Zach Pomerantz
a7d54b8e0a rm unused lastCutoffRatio 2016-10-27 14:38:17 -07:00
Zach Pomerantz
c14a928db5 convert size_t to int 2016-10-27 14:34:10 -07:00
David Kelly
d00a73dde1 Play the flushed encoder sound at end
Basically 0-padding the end of the sound buffer.  Next do that in
AudioMixer and we should be good.
2016-10-27 14:27:15 -07:00
Zach Pomerantz
32040a9047 add stat for streams in audio mixer 2016-10-27 13:55:17 -07:00
Zach Pomerantz
68f05bee87 fix underflow for agent audio timer 2016-10-27 13:47:22 -07:00
Zach Pomerantz
20bac5aeef clean up broadcastMixes 2016-10-27 13:47:00 -07:00
Zach Pomerantz
9e9f8666ce clean up handleMismatchAudioFormat comment 2016-10-27 13:46:53 -07:00
Zach Pomerantz
04e5d8e302 initialize audio client data 2016-10-27 13:46:42 -07:00
Zach Pomerantz
3e16dabb75 fix audio mixer throttling 2016-10-27 13:46:33 -07:00
David Kelly
6a61762659 First try
AudioMixer has same issue transitioning from silence to encoded
audio and back, it seems.  This makes that go away, but I don't
like it.  Better to support a flush function in the encoder but
for now lets do this and be sure it is the entire issue.
2016-10-26 17:41:34 -07:00
David Kelly
b09364c288 whitespace 2016-10-25 12:22:26 -07:00
David Kelly
30d8f1967c Flushing encoder
Seems they have some state.  So if you play a sound, then silence
that doesn't go through the encoder (SilentAudioFrame), then a
sound again, you will hear a click.  Now, I just pop a frame of
0s through the encoder at the end of each .wav it plays.  Poof!
2016-10-25 12:15:48 -07:00
David Kelly
86e01bbae6 First cut
Started with the horrible screaming when avatar goes away, seems
due to not putting a codec string in the packets.  This was an existing
issue, not due to recent changes.  Also, some weird indenting was
fixed, etc...  Still hear an artifact when audio starts, but only when
a codec was negotiated.  Hoping to fix that too.
2016-10-24 15:18:29 -07:00
David Kelly
bdcb58bf8b Merge pull request #8847 from sethalves/fix-audio-mixer-data-race-1
fix some data-races in logging system
2016-10-21 15:33:40 -07:00
Seth Alves
5660063702 code review 2016-10-21 11:05:50 -07:00
Seth Alves
5af8dfdfbd move ScriptEngines to Agent 2016-10-21 10:57:58 -07:00
Seth Alves
30f29d1796 move ScriptEngines to Agent 2016-10-21 10:57:22 -07:00
Seth Alves
e988941d14 undo bad script-engine AC change 2016-10-21 10:53:13 -07:00
Clément Brisset
b63eb6ba9f Merge pull request #8665 from zzmp/feat/audio-stats
move audio stats to QML/JS, with graphs
2016-10-20 16:43:49 -07:00
Seth Alves
8ac799ddaf Merge branch 'master' of github.com:highfidelity/hifi into fix-audio-mixer-data-race-1 2016-10-20 10:02:58 -07:00
Chris Collins
98e7d6d0eb Merge pull request #8843 from sethalves/fix-audio-mixer-data-race-0
Fix some audio mixer data races
2016-10-20 10:01:26 -07:00
Stephen Birarda
eb8f67b612 cleanup asset file regex, comment in renameMapping 2016-10-19 11:47:57 -07:00
Stephen Birarda
7aac2e6916 restrict asset file mapping operations to file path 2016-10-19 10:57:23 -07:00
Seth Alves
af5be8d1d9 reduce data-races in logging 2016-10-18 15:59:00 -07:00
Seth Alves
9cb4756fce only ScriptEngines for agent ACs 2016-10-18 13:57:30 -07:00
Seth Alves
0c6dedff45 avoid various data-races related to stats collection and delivery 2016-10-18 13:05:53 -07:00
Seth Alves
1203aae96b don't create ScriptEngines for ACs that don't need them 2016-10-18 10:29:09 -07:00
howard-stearns
055e2ffcb0 Merge branch 'master' of https://github.com/highfidelity/hifi into crowd-animation 2016-10-12 14:38:07 -07:00
Atlante45
36bd9ef4e6 Update new ACClientApp code 2016-10-12 14:02:05 -07:00
David Kelly
c8850a8b8e PR feedback
AgentAvatarTimer now in its own files.  The thread still is created
the same way, and started only when you are an avatar, but now I
remember to stop it when you no longer are one.  Audio is still at
100Hz, but avatar messages go at 60Hz as before.  Unsure it matters,
but easy to do.   Looking at that buzz now.
2016-10-12 12:44:24 -07:00
Atlante45
eaca3b672f Switch to JSON for application settings 2016-10-12 10:20:19 -07:00
howard-stearns
884d22a59b make agent avatar animations work again, and use them in crowds 2016-10-11 16:06:55 -07:00
David Kelly
1fb7b42f0b One more comment removed 2016-10-11 09:37:42 -07:00
David Kelly
ef844cbd00 Cleanup artifacts
Seems playAvatarSound could be called from a thread other than
the Agent's thread.  So, artifacts happen when that pointer changes
while a 'tick' is happening.  Also cleaned up code a bit, got rid
of some hard-coded stuff I had in just for dev purposes.
2016-10-11 09:33:55 -07:00
David Kelly
fa9c3951c7 Merge branch 'master' into dk/codecInAgentAvatar 2016-10-10 19:51:56 -07:00
David Kelly
b58c36cb12 Rolling my own 100hz timer
Starting with the simplest possible thing - just sleep for 10000
microseconds.  Can make it adaptive if need be.
2016-10-10 17:57:04 -07:00
David Kelly
b4c064a538 Hack in a 100hz timer
sounds crappy, more to do, just push to not lose anything.

<squash this>
2016-10-07 13:20:08 -07:00
David Kelly
ab6ccac631 Merge pull request #8741 from howard-stearns/kill-agents
kill agents in avatar mixer when they stop being avatars
2016-10-07 09:16:49 -07:00
David Kelly
95aa18f66d Some cleanup
unnecessary stuff removed, added some cleanup code.
2016-10-06 16:18:22 -07:00
Chris Collins
8310a9fe8a Merge pull request #8730 from huffman/feat/script-req-retry
Add retrying of script requests
2016-10-06 16:09:04 -07:00
David Kelly
a0c731a0c6 Initial attempt
Kinda works, but sounds 'scratchy'.  Surely I've done something
lame.
2016-10-06 14:57:40 -07:00
howard-stearns
dc7a9f253c kill agents in avatar mixer when they stop being avatars 2016-10-05 13:06:11 -07:00
Zach Pomerantz
5af95c6062 store channels on audio stream 2016-10-05 12:04:24 -07:00
Ryan Huffman
9dfa3e4a17 Move ScriptCache from AssignmentClient to Agent 2016-10-04 16:43:14 -07:00
Ryan Huffman
ae507c4609 Add ScriptCache to assignment clients 2016-10-04 16:43:14 -07:00
Clément Brisset
becee3bba3 Merge pull request #8685 from thoys/ac-fixes
Assignment Client fixes
2016-09-30 11:05:58 -07:00
Zach Pomerantz
43c40aa090 avoid repetition with fade on injectors 2016-09-29 15:25:41 -07:00