Commit graph

441 commits

Author SHA1 Message Date
wangyix
748c9e2065 numAudioSamples now calculated to be device samples instead of network samples 2014-08-05 10:13:34 -07:00
wangyix
3fe4c29848 removed heap alloc of receivedSamples; cleaned up code 2014-08-04 17:14:26 -07:00
wangyix
4d7d6f1e25 changed downstream re-sampling to occur right after parsing packet 2014-08-04 16:23:17 -07:00
wangyix
e1f905cb36 fixed >100% loss rate bug in SequenceNumberStats 2014-08-01 10:27:51 -07:00
Brad Hefta-Gaub
d4d4069f11 Merge pull request #3225 from birarda/master
cmake file cleanup to suppress warnings on cmake 3.0
2014-07-30 19:20:18 -07:00
wangyix
7281eca5a4 fixed inj crash; added statcDesired to MixedAudioStream 2014-07-30 17:20:05 -07:00
wangyix
24be668d36 added check before pushAudioToOutput to prevent starvecount buildup 2014-07-30 15:47:49 -07:00
wangyix
daeb2a898d added staticDesiredJitterBufferFrames feature; AudioMixer crashing
moved some callbacks from Application::updateAvatar() to
Application::update()
2014-07-30 15:35:40 -07:00
Stephen Birarda
2796f71419 library cleanup to suppress warnings on cmake 3.0 2014-07-30 15:06:15 -07:00
wangyix
5b0662f1d0 fixed setToStarved() behavior of InboundAudioStream 2014-07-30 10:51:50 -07:00
wangyix
656131b7ee made frames available avg window 2s; added missing _silentFramesDropped update 2014-07-30 10:24:24 -07:00
wangyix
ecfd5c2757 default max frames over desired changed to 10 2014-07-29 17:37:59 -07:00
wangyix
d49970d010 maxFramesOverDesired added; settable from domain page and preferences 2014-07-29 15:57:32 -07:00
wangyix
bb2adb2721 minor refactoring 2014-07-29 14:02:18 -07:00
wangyix
71c23eac1e added TimeWeightedAvg to InboundAudioStream
_maxFramesOverDesired hardcoded right now
2014-07-29 13:51:46 -07:00
wangyix
ccedb1bd20 forgot some code in checkBuffersBeforeFrameSend
corrected updateLastPopOutputTrailingLoudness behavior to match what the
old code did.
2014-07-29 10:40:01 -07:00
wangyix
a3b44a6a73 downstream silent packets seem to be working 2014-07-29 10:08:55 -07:00
wangyix
aead7a6823 removed get pointer methods from AudioRingBUffer 2014-07-28 22:48:29 -07:00
wangyix
4825457f4d silent audio packet type generalized 2014-07-28 16:49:53 -07:00
wangyix
7e59723522 removed +1 for philip's jitter frames calculation 2014-07-28 14:24:58 -07:00
wangyix
d221f69767 clamp overridden desired jitter buffer frames value 2014-07-28 14:22:04 -07:00
wangyix
97054d668b fixed header macros 2014-07-28 14:15:14 -07:00
wangyix
ed9bfdc503 these didn't commit for some reason 2014-07-28 14:08:45 -07:00
wangyix
145b7f8a0e got Preferences jitter buffer frames override working 2014-07-28 14:05:17 -07:00
wangyix
6fc5c74c0b renamed ringbuffer variables to audiostream 2014-07-28 13:08:53 -07:00
wangyix
32dbc6cbdb renamed audioringbuffer classes to audiostream 2014-07-28 11:52:05 -07:00
wangyix
9bbd055404 added stdev method of jitter calc to InboundAudioStream 2014-07-28 11:41:08 -07:00
wangyix
c129db16cb formatting fix, AudioRingBuffer no longer NodeData, 2014-07-28 09:40:44 -07:00
wangyix
438606d567 _consecutiveNotMixedCount++ moved back into if(starveOnFail) 2014-07-27 11:23:47 -07:00
wangyix
78031622db removed MixedAudioRingBuffer class files 2014-07-25 16:06:56 -07:00
wangyix
e17556384d added code to clear agent audiostream frames to prevent buildup 2014-07-25 15:51:34 -07:00
wangyix
fd9d7baa06 updated Agent with audiostream; added initial packets discard to audiostream 2014-07-25 15:14:10 -07:00
wangyix
f7e043f52d cleaned up code 2014-07-25 14:52:39 -07:00
wangyix
a9d26b3934 fixed repeat-popping in audiomixer 2014-07-25 12:58:10 -07:00
wangyix
822ba4da48 cleaned up code more, dancer.js audio not working 2014-07-25 10:21:38 -07:00
wangyix
473cbf2afe client audio now updated with stream class; seems fine for now 2014-07-24 17:15:46 -07:00
wangyix
83ba4b9a1c Audiomixer now working (added call to updateNextOutputTrailingLoudness()) 2014-07-24 14:43:29 -07:00
wangyix
3d22a11e28 debugging new audio stream organization 2014-07-24 13:58:15 -07:00
wangyix
fe70c1f49a didn't commit for some reason 2014-07-24 10:48:56 -07:00
wangyix
c9b6879ca8 audiomixer code complete; need to test 2014-07-24 10:48:27 -07:00
wangyix
e2f957d6dc added InboundAudioStream class 2014-07-23 16:46:23 -07:00
wangyix
4a4d065f00 another parseData change 2014-07-23 12:06:31 -07:00
wangyix
849c489b4c removed warnings about parseData() overloading in ringbuffer classes 2014-07-23 11:20:30 -07:00
wangyix
621f0725cc added input ring buffer stats to interface 2014-07-21 15:39:33 -07:00
wangyix
e557ba8052 removed space 2014-07-16 18:06:55 -07:00
wangyix
8775d22765 re-added calculated desired frames to domain page stats 2014-07-16 17:44:49 -07:00
wangyix
397e6c8b13 renamed a function 2014-07-16 17:34:48 -07:00
wangyix
6764ace8eb droppable silent packets are added for dropped packets;
_currentJitterBufferFrames replaced with moving average of frames
available.  Downstream framesAvailable stat now includes the frames in
QAudioOutput as well as the ringbuffer.
2014-07-16 14:41:24 -07:00
wangyix
871aa2790a forgot unused variable 2014-07-15 12:24:28 -07:00
wangyix
828410b7d6 removed isNan check for _nextOutputTrailingLoudness 2014-07-15 12:23:54 -07:00
wangyix
a1b2bf59e9 disabled SIMD adds in AudioMixer for windows 2014-07-15 12:23:02 -07:00
wangyix
d369435240 added dirty fix for NaN _nextOutputTrailingLoudness 2014-07-11 13:25:47 -07:00
wangyix
25f4f63a1e added window PacketStreamStats to AudioStreamStats 2014-07-10 16:42:23 -07:00
wangyix
0d83b9a6f6 tidied up code 2014-07-10 09:51:01 -07:00
wangyix
01f10024ae all stats added, needs testing; created PacketStreamStats struct 2014-07-09 18:13:33 -07:00
wangyix
d03d3ef817 new auidostreamstats displayed in interface, domain page stats updated 2014-07-09 11:59:50 -07:00
wangyix
54e8ed5e11 added MovingMinMaxAvg and unit test; added additional stats to AudioStreamStats struct 2014-07-09 09:41:49 -07:00
wangyix
e732436783 added _starveCount, _silentFramesDropped 2014-07-08 14:13:42 -07:00
wangyix
2e73ac8bc1 changed Audio.cpp to not overflow _audioOutput buffer, and 2 other things
added _consecutiveNotMixedCount to prevent premature injector stream
deletion;  made silent-frame drop only occur in dynamic jitter buffer
mode
2014-07-08 11:16:39 -07:00
Brad Hefta-Gaub
dbdce32b68 Merge pull request #3107 from wangyix/master
prune missing sequence numbers before sending NACK; AudioRingBuffer frame length can now be specified;
2014-07-03 13:32:31 -07:00
wangyix
2c6b2000b2 forgot arg in AudioRingBuffer constructor in PositionalAudioRingBUffer
changed _currentJitterBufferFrames to be -1 to indicate starved.
2014-07-03 11:34:16 -07:00
wangyix
507518f16d removed numFramesCapacity from being exposed everywhere 2014-07-03 11:11:56 -07:00
Atlante45
106e5b578b Merge branch 'master' of https://github.com/highfidelity/hifi into replace_qnetworkaccessmanager 2014-07-02 16:06:41 -07:00
Clément Brisset
1f92d57230 Merge pull request #3103 from AlericInglewood/19827
Code Review for Job #19827
2014-07-02 15:53:57 -07:00
Atlante45
6e02561d96 Merge branch 'master' of https://github.com/highfidelity/hifi into replace_qnetworkaccessmanager 2014-07-02 14:08:57 -07:00
Atlante45
598c1cb516 Switched Sound to NetworkAccessManager 2014-07-02 11:27:55 -07:00
Andrew Meadows
ec80ccdb9c remove warning about signed/unsigned comparison 2014-07-02 10:49:05 -07:00
Andrew Meadows
8b3af0b9cb merge upstream/master into andrew/say-no-to-warnings
Conflicts:
	interface/src/ui/ApplicationOverlay.cpp
	libraries/audio/src/AudioRingBuffer.cpp
2014-07-02 10:37:30 -07:00
wangyix
ab503583dd switched order of args in PositionalAudioRingBuffer 2014-07-01 17:33:38 -07:00
wangyix
a5943e3608 made AudioRingBuffer frames capacity variable 2014-07-01 16:24:31 -07:00
wangyix
1b0ce510f6 fixed a typo, tidied up more minor details 2014-06-30 15:33:31 -07:00
wangyix
6b6dccda2f _resetCount to _overflowCount in AudioRingBuffer 2014-06-30 14:21:38 -07:00
wangyix
c789f3c6b9 merge with upstream 2014-06-30 14:13:34 -07:00
wangyix
d2f86278b2 modified AudioStreamStats to per-stream with seq stats
added AudioStreamStats info to interface overlay stats
2014-06-30 12:31:58 -07:00
wangyix
de3c1ebf0f changed class name to AudioStreamStats, reverted ScriptEngine packing back to QDataStream 2014-06-30 09:42:22 -07:00
Aleric Inglewood
f13bbdfae6 Compile fix for non-standard Qt5 install.
When Qt5 5.2.1 is compiled from source, configured with
-developer-build, and used without being installed;
then compiling interface results in the following compile error:

libraries/shared/src/RegisteredMetaTypes.h:17:34: fatal error: QtScript/QScriptEngine: No such file or directory

This commit fixes this by explicitely adding the include
directory for QtScript/QScriptEngine to libraries/shared/CMakeLists.txt

Likewise we get the compile error:

In file included from /opt/highfidelity/hifi/hifi/animation-server/../libraries/voxels/src/VoxelEditPacketSender.h:18:0,
                 from /opt/highfidelity/hifi/hifi/animation-server/src/AnimationServer.cpp:26:
 /opt/highfidelity/hifi/hifi/animation-server/../libraries/voxels/src/VoxelDetail.h:15:34:
 fatal error: QtScript/QScriptEngine: No such file or directory

which is fixed by added the include directory for QtScript/QScriptEngine
to animation-server/CMakeLists.txt

Finally, compile errors like

In file included from /opt/highfidelity/hifi/hifi/libraries/audio/src/AudioInjectorOptions.h:20:0,
                 from /opt/highfidelity/hifi/hifi/libraries/audio/src/AudioInjector.h:21,
                 from /opt/highfidelity/hifi/hifi/libraries/audio/src/AudioInjector.cpp:22:
/opt/highfidelity/hifi/hifi/assignment-client/../libraries/shared/src/RegisteredMetaTypes.h:17:34: fatal error: QtScript/QScriptEngine: No such file or directory

that requires to do the same in libraries/audio/CMakeLists.txt
2014-06-30 02:06:44 +02:00
wangyix
c3f571745c removed more debug stuff 2014-06-27 17:42:22 -07:00
Aleric Inglewood
1bc2f214a5 Compiler warning fixes.
This fixes all warnings that I got while compiling with g++ 4.7.2:

 In file included from interface/src/Application.h:53:0,
                  from interface/src/Menu.cpp:36:
 interface/src/Menu.h: In constructor ‘Menu::Menu()’:
 interface/src/Menu.h:292:13: warning: ‘Menu::_scriptsLocation’ will be initialized after [-Wreorder]
 interface/src/Menu.h:289:27: warning:   ‘QPointer<LoginDialog> Menu::_loginDialog’ [-Wreorder]
 interface/src/Menu.cpp:82:1: warning:   when initialized here [-Wreorder]

 libraries/audio/src/AudioRingBuffer.cpp: In member function ‘qint64 AudioRingBuffer::writeData(const char*, qint64)’:
 libraries/audio/src/AudioRingBuffer.cpp:126:75: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

 libraries/audio/src/PositionalAudioRingBuffer.cpp: In member function ‘bool PositionalAudioRingBuffer::shouldBeAddedToMix()’:
 libraries/audio/src/PositionalAudioRingBuffer.cpp:212:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

 interface/ui/preferencesDialog.ui: Warning: The name 'horizontalLayout_11' (QHBoxLayout) is already in use, defaulting to 'horizontalLayout_111'.
 interface/ui/preferencesDialog.ui: Warning: The name 'horizontalSpacer_11' (QSpacerItem) is already in use, defaulting to 'horizontalSpacer_111'.

 interface/src/avatar/Avatar.cpp: In member function ‘void Avatar::initializeHair()’:
 interface/src/avatar/Avatar.cpp:587:21: warning: name lookup of ‘link’ changed [enabled by default]
 interface/src/avatar/Avatar.cpp:574:18: warning:   matches this ‘link’ under ISO standard rules [enabled by default]
 interface/src/avatar/Avatar.cpp:577:22: warning:   matches this ‘link’ under old rules [enabled by default]

 interface/src/ui/ApplicationOverlay.cpp: In member function ‘void ApplicationOverlay::renderControllerPointers()’:
 interface/src/ui/ApplicationOverlay.cpp:379:59: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

 In file included from interface/src/ui/RunningScriptsWidget.cpp:14:0:
 interface/src/ui/RunningScriptsWidget.h: In constructor ‘RunningScriptsWidget::RunningScriptsWidget(QWidget*)’:
 interface/src/ui/RunningScriptsWidget.h:61:18: warning: ‘RunningScriptsWidget::_scriptsModel’ will be initialized after [-Wreorder]
 interface/src/ui/RunningScriptsWidget.h:60:27: warning:   ‘QSortFilterProxyModel RunningScriptsWidget::_proxyModel’ [-Wreorder]
 interface/src/ui/RunningScriptsWidget.cpp:27:1: warning:   when initialized here [-Wreorder]
2014-06-27 22:18:38 +02:00
wangyix
ff438a2434 added seq stats for Agent,
fixed  AudioInjector to do << (quint16)0 instead of
skipRawData(sizeof(quint16) to correctly allocate space for seq number;
added debug prints;
2014-06-27 11:23:50 -07:00
wangyix
c5474f95bd forgot to skip seq number in InjectedAudioRingBuffer::parseData() 2014-06-26 16:55:29 -07:00
wangyix
cb48825561 added seq number to all Audio types, untested 2014-06-26 16:52:23 -07:00
wangyix
97139b0bd0 Merge branch 'master' into seqNumberStats 2014-06-26 11:47:00 -07:00
wangyix
7f23a7fbde switched AudioRingBuffer to use _isFull flag instead 2014-06-26 11:26:10 -07:00
wangyix
ad8fe38a59 removed extra sample in AudioRingBuffer for testing 2014-06-26 09:27:06 -07:00
wangyix
37ce693153 added seqnum stats to AudioMixerClientData; added seqnums to Audio.cpp 2014-06-25 18:01:34 -07:00
wangyix
9b8f8dbf70 removed more more unnecessary changes 2014-06-25 12:05:59 -07:00
wangyix
dd1c157f3a reverted updateDesiredJitterBufferFrames to what Brad wrote 2014-06-25 11:42:03 -07:00
wangyix
591bfa14b9 added PacketTypeAudioStreamStats for j-buffer stats
...instead of packing that info into audio packets.
2014-06-25 11:38:56 -07:00
wangyix
1257e0595a moved jbufferstats class to PositionalAudioRingBuffers 2014-06-25 09:52:02 -07:00
Andrew Meadows
d3d8e4dc2d fix warnings about signed/unsigned comparisons 2014-06-25 09:07:10 -07:00
wangyix
d098edcdf0 Merge remote-tracking branch 'upstream/master' 2014-06-24 17:39:13 -07:00
ZappoMan
bc5f563f5c and change ring buffer size 2014-06-24 17:25:45 -07:00
wangyix
52f00769d4 merged with upstream 2014-06-24 17:22:30 -07:00
wangyix
e1d28dfe73 removed debug code 2014-06-24 17:14:20 -07:00
wangyix
5fd1d0a87c added AudioRingBuffer unit test
fixed bug with _endOfLastWrite not rolling over in addSilentFrame
2014-06-24 16:51:51 -07:00
wangyix
8e2bb130f7 added extra sample in AudioRingBuffer...
changed buffer overflow behavior to overwrite old data in writeData;
added overflow behavior to drop silent samples in addSilentFrame
2014-06-24 12:18:40 -07:00
ZappoMan
cdbda02765 make default ring buffer much larger 2014-06-24 12:09:58 -07:00
ZappoMan
1d390faad8 add support for commandline/config value for dynamic jitter buffers 2014-06-24 10:29:38 -07:00
ZappoMan
5c188ea81e adding more stats 2014-06-24 09:41:29 -07:00
wangyix
254946be9e removed duplicate method from merge 2014-06-24 09:27:41 -07:00
wangyix
53e3f5a3b0 merged with upstream 2014-06-24 09:13:05 -07:00
ZappoMan
fda60cc8d5 remove resizing of jitter buffers for now, only ask for 1 frame 2014-06-23 18:45:24 -07:00
ZappoMan
355ab2cb95 max desired must be one less than the max frames in our ringbuffer 2014-06-23 17:58:55 -07:00
wangyix
a4f5ce2215 added stats for audiomixer jitter buffers lengths in Application 2014-06-23 17:48:57 -07:00
ZappoMan
77f262561c typo 2014-06-23 16:47:10 -07:00
ZappoMan
8a633743b3 ignore the numSilentSamples from client, always assume one frame 2014-06-23 16:40:38 -07:00
ZappoMan
b2c982976e break up audio mixer stats across multiple packets 2014-06-23 15:46:58 -07:00
ZappoMan
076bc11545 added server side audio mixer jitter stats 2014-06-23 15:19:13 -07:00
wangyix
fbdca59d37 fixed spacing issue 2014-06-23 11:56:14 -07:00
wangyix
ffc20b8876 changed InterframeTimeGapHistory to InterframeTimeGapStats 2014-06-23 11:22:04 -07:00
wangyix
e5d7d471e3 removed debug code 2014-06-23 10:55:30 -07:00
wangyix
7196814ec3 added debug prints to look at injected ring buffers 2014-06-23 10:22:16 -07:00
wangyix
6b72b161d3 fixed typo with frames/samples confusion. 2014-06-20 17:52:46 -07:00
wangyix
124fba35db fixed minor comment typo 2014-06-20 17:39:05 -07:00
wangyix
cb6681f6f8 completed code for dynamicly resizing jitter buffer 2014-06-20 17:13:42 -07:00
wangyix
a5457eb86b fixed bug in Audio.cpp where numSilentSamples was written to wrong place in packet
added more debug stuff, other minor changes and fixes
2014-06-20 14:43:18 -07:00
wangyix
435b5094a0 moved time gap history to PositionalAudioRingBuffer, untested
removed hard-coded jitter buffer length.
2014-06-19 17:58:38 -07:00
wangyix
100bc022ec fixed a for loop that erased elements while iterating 2014-06-19 16:42:51 -07:00
wangyix
77c377711a removed debug code 2014-06-19 15:39:54 -07:00
wangyix
8176aa1292 added debug code for testing time gap history 2014-06-19 14:54:22 -07:00
wangyix
aa3602f0fb added InterframeTimeGapHistory and frameReceived() calls 2014-06-19 14:35:02 -07:00
Stephen Birarda
db1031144b fix passing of unattenuated zones to buffers 2014-06-18 13:46:03 -07:00
Oren Hurvitz
98b4d6f697 Allow the project to compile using Visual Studio 2013 2014-06-18 10:27:57 +03:00
Andrew Meadows
3f36325642 remove warnings about signed/unsigned comparison 2014-06-17 11:59:37 -07:00
Stephen Birarda
ee71d34f02 add a crash guard around negative silent samples 2014-06-09 14:03:47 -07:00
Stephen Birarda
6fdc5df47b bump silent audio frame version 2014-06-06 11:50:36 -07:00
Stephen Birarda
a7a9656ac7 add a mixer crash guard in addSilentFrame 2014-06-06 11:47:34 -07:00
Stephen Birarda
ae2f6a3cb6 complete piping of stereo audio through mixer 2014-06-06 10:55:04 -07:00
Stephen Birarda
7da091d2b4 initial hooks for stereo audio 2014-06-06 10:15:09 -07:00
David Rowe
bd4d167684 Make JavaScript audio samples able to be looped
Add a "loop" property to AudioInjectorOptions and provide an example JavaScript file.
2014-05-29 14:13:02 -07:00
Ryan Huffman
aa47043d57 Fix WAV file support
The previous implementation assumed the file only contained RIFF, WAVE,
fmt, and data chunks.  It is valid for other chunks to appear, so I
updated it to skip any chunks until it finds the "data" chunk.
2014-05-27 11:24:48 -07:00
Stephen Birarda
a9c2e3fe71 put back ssize_t definition 2014-05-20 11:56:06 -07:00
Stephen Birarda
0e7615391c don't look for GnuTLS from cmake 2014-05-20 10:35:04 -07:00
Stephen Birarda
304e30e9d8 Merge pull request #2818 from birarda/stop-sound
make sure shouldStop for injector defaults to false
2014-05-08 11:12:47 -07:00
Stephen Birarda
a8a53e35dd make sure shouldStop for injector defaults to false 2014-05-08 11:12:16 -07:00
Philip Rosedale
6762d4d63c Merge pull request #2816 from birarda/stop-sound
add interface to Audio to stop injector and see if playing
2014-05-07 20:59:58 -07:00
Stephen Birarda
f78c81e073 add interface to Audio to stop injector and see if playing 2014-05-07 17:48:01 -07:00
Philip Rosedale
c6fa903d6f Merge pull request #2813 from birarda/stop-sound
return an injector from playSound and allow call to stop it
2014-05-07 16:59:00 -07:00
Stephen Birarda
99ee6ae8af return an injector from playSound and allow user to stop it 2014-05-07 16:26:32 -07:00
Stephen Birarda
5e9036b3fe tweak audio constants to be less agressive on cutoff 2014-05-07 15:37:41 -07:00
Atlante45
ab76e6a00c Merge branch 'master' of https://github.com/highfidelity/hifi into removed_gettimeofday
Conflicts:
	interface/src/Audio.cpp
2014-04-21 12:19:19 -07:00
Stephen Birarda
72fe9b94b1 fix property in sound 2014-04-18 14:48:26 -07:00
Stephen Birarda
c1e54d370c change Sound property to hasDownloaded 2014-04-18 14:46:56 -07:00
Stephen Birarda
92f2794ea8 add a property to Sound to tell if empty 2014-04-18 14:26:56 -07:00
Stephen Birarda
aa5d7aa0b1 fix incorrectly named slot in Sound 2014-04-18 13:58:33 -07:00
Stephen Birarda
3b8cf8c172 fix mixed signal and slot 2014-04-18 13:55:22 -07:00
Stephen Birarda
6ef4e145c5 add better Sound error handling 2014-04-18 13:51:58 -07:00
Atlante45
d34e6ff864 Removed gettimeofday in AudioInjector 2014-04-16 12:01:41 -07:00
ZappoMan
bdf39186de Merge branch 'master' of https://github.com/worklist/hifi into moonshot 2014-04-15 21:04:15 -07:00
ZappoMan
579710e4bd some cleanup 2014-04-15 13:36:20 -07:00