Gabriel Calero
f889782250
Merge remote-tracking branch 'github/android' into android_audio_fixes
2018-01-15 18:28:31 -03:00
Cristian Luis Duarte
21f1c0e275
Android: Make audioInputStateChanged watcher work so it can restart input audio if it stops without a reason. Implement a mechanism that counts last reads in an interval and restart input audio in case of low reads -in these cases (happens particularly on Huawei) there is no call to the audioInputStateChanged method- (Android only)
2018-01-13 06:42:16 -03:00
Ken Cooke
dfc8c86571
Fix bug when calling switchOutputToAudioDevice() with the active device.
...
Pass QAudioDeviceInfo by value to avoid getting clobbered.
2018-01-11 18:22:34 -08:00
Ken Cooke
db6e70cb24
Fix bug when calling switchInputToAudioDevice() with the active device.
...
Pass QAudioDeviceInfo by value to avoid getting clobbered.
2018-01-11 18:14:16 -08:00
Ken Cooke
7c5085bd24
Handle stereo changes while active, by restarting the codec on both ends
2018-01-11 16:10:50 -08:00
Ken Cooke
6a2e3cc272
Enable stereo codecs for AvatarAudioStream
2018-01-10 15:14:18 -08:00
Ken Cooke
660032d8fb
Fix bug in how emitAudioPacket() determines mono/stereo.
...
Compressed bytes were counted as if audio samples.
2018-01-10 06:54:27 -08:00
luiscuenca
8abe8b9879
move save logic to audioclient
2017-12-05 18:22:14 -08:00
luiscuenca
20d6615417
emit only when recording
2017-12-05 16:13:44 -08:00
luiscuenca
4030688e7a
added record wav files
2017-12-03 11:54:37 -07:00
Bradley Austin Davis
e42068f681
Merge branch 'master' into android_new
2017-09-26 14:31:29 -07:00
Bradley Austin Davis
b93e91b9f3
New android toolchain
2017-09-19 13:45:12 -07:00
vladest
6c32783a09
Merge branch 'master' into audio_devices_split
2017-09-19 17:43:03 +02:00
Brad Hefta-Gaub
c5098abfb9
Merge pull request #10937 from kencooke/zzmp-audio/peak-values
...
Add peak values for all input devices in selection dialog
2017-09-07 11:58:50 -07:00
vladest
6f0229f450
Reworked according to designers request. Do not fall back to default audion output
2017-08-22 23:26:27 +02:00
Ken Cooke
ee752df653
fix typo
2017-08-09 20:11:52 -07:00
Ken Cooke
bcdf13c59c
Add explicit shutdown request, since null device means something else
2017-08-09 19:40:07 -07:00
Ken Cooke
ee6d4dfc14
If real input device fails to start, use dummy input
2017-08-09 17:50:20 -07:00
Ken Cooke
fc5b4be459
bugfix
2017-08-09 16:59:02 -07:00
Ken Cooke
9c6b7306c4
Re-implement callback to Use common handleAudioInput()
2017-08-09 16:58:12 -07:00
Ken Cooke
7daa3ecff3
Handle dummy input callbacks
2017-08-09 15:54:14 -07:00
Ken Cooke
6f2cc9cfeb
When no input device, create dummy input to generate callbacks
2017-08-09 14:01:17 -07:00
Brad Davis
1ecca9fd29
Merge branch 'master' into zzmp-audio/peak-values
2017-08-06 17:21:00 -07:00
Brad Davis
9f13533560
Ensure input and output device containers are protected by mutex
2017-07-18 08:58:17 -07:00
Seth Alves
972dc4d1b2
more const ref
2017-07-11 19:56:34 -07:00
Seth Alves
c52e7e180a
use const AudioInjectorPointer& in some places
2017-07-11 19:42:03 -07:00
Seth Alves
3670a04d8e
switch bare pointers to AudioInjector objects to be QSharedPointers
2017-07-11 14:24:58 -07:00
Ken Cooke
d6eb731f3a
Merge branch 'master' into audio/peak-values
2017-07-10 21:55:11 -07:00
Brad Davis
8372d73fec
Additional thread safety
2017-06-30 09:15:06 -07:00
Brad Davis
b52dd7b822
Don't use blocking connections on the main thread
2017-06-29 20:45:17 -07:00
Zach Pomerantz
ed49f80322
fix peak check secs->msecs
2017-06-29 17:32:52 -04:00
Ken Cooke
0dbb7a71f3
CR fix: comments instead of ref code
2017-06-28 11:32:24 -07:00
Zach Pomerantz
3f57e5eb4d
implement peakValueListChanged
2017-06-27 17:51:44 -04:00
Ken Cooke
ad970c9f5c
fast compute of HRTF azimuth
2017-06-27 13:45:18 -07:00
Zach Pomerantz
b46219241c
add peakValueListChanged scaffolding
2017-06-26 22:44:31 -04:00
Zach Pomerantz
497ee3a522
add Audio.inputLevel
2017-06-19 17:07:43 -07:00
Zach Pomerantz
3093a73ce1
Merge branch 'master' of github.com:highfidelity/hifi into audio/parity
2017-06-15 15:04:06 -04:00
ZappoMan
d352163d77
fix no audio device from previously removed audio device
2017-06-15 09:24:14 -07:00
Zach Pomerantz
9017738a8d
start device check timer
2017-06-13 18:00:41 -04:00
Zach Pomerantz
0e2976620d
start device check timer
2017-06-13 18:00:09 -04:00
Zach Pomerantz
a8f69bb2e0
Merge branch 'master' of github.com:highfidelity/hifi into audio/parity
2017-06-13 17:41:52 -04:00
Zach Pomerantz
4a39798a97
sticky audio selection
2017-06-13 14:38:52 -04:00
Chris Collins
4b6c13bc1f
Merge pull request #10646 from ZappoMan/debugAudioProblems
...
Fix for no-audio on clean install
2017-06-10 11:32:42 -10:00
ZappoMan
6fe20f90a3
add better debugging for audio problems
...
use OS default device if settings have no values
2017-06-09 13:36:12 -07:00
Bradley Austin Davis
fc6a278217
Fixing dangling thread issues, consolidating thread management
2017-06-06 15:02:16 -07:00
Zach Pomerantz
954e4979f8
expose Audio.devices.input/output
2017-05-31 20:14:58 -04:00
Ken Cooke
0fe404adbb
Merge branch 'master' of https://github.com/highfidelity/hifi into audio-noisegate-new
2017-05-23 17:31:03 -07:00
Ken Cooke
6b740e855d
Optimize the loudness computation
...
NOTES:
Loudness is now measured post-gating, for improved metering.
Keep original algorithm, since other code depends on loudness behavior.
2017-05-23 14:31:24 -07:00
Ken Cooke
a6a29786ae
Cleanup
2017-05-23 12:53:39 -07:00
Ken Cooke
8608695695
Remove old noise gate
2017-05-23 12:52:29 -07:00
Ken Cooke
175d1be7ca
Implement state-machine to detect gate opening/closing. Fixes bugs with mute.
2017-05-23 12:32:41 -07:00
Ken Cooke
850dbd76c9
Integrate new noise gate
2017-05-23 11:12:36 -07:00
Ken Cooke
986d86ec17
Fix nasty preexisting bug in computing numSamples, where sizeof(SAMPLE_SIZE) incorrectly returns 4 instead of 2.
2017-05-23 10:29:43 -07:00
Ken Cooke
71de3d5ca1
Instantiate new gate with the correct number of channels
2017-05-23 08:40:15 -07:00
Zach Pomerantz
c5a0a1af2f
Merge pull request #10429 from zzmp/audio/close-device
...
Close audio device when switching outputs
2017-05-18 17:18:53 -04:00
Vladyslav Stelmakhovskyi
4290eb21ea
Fixed possible crashes/freezes on input audio switch
2017-05-11 15:41:07 +02:00
Vladyslav Stelmakhovskyi
e4d9772bbc
Fixed crashes/freezes on audio switch
2017-05-11 15:20:36 +02:00
Vladyslav Stelmakhovskyi
2328da3c48
Merge branch 'master' into audio-source-sync
2017-05-10 21:22:40 +02:00
Vladyslav Stelmakhovskyi
2d46f9d30e
Move most of the logic to C++ model, speed up initialization. Reduce number of AudioClient blocking calls to minimum
2017-05-10 21:21:39 +02:00
Zach Pomerantz
5a11911e1d
close audio device when switching
2017-05-09 19:38:52 -04:00
Zach Pomerantz
219062b76a
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-underrun
2017-05-09 17:32:24 -04:00
Zach Pomerantz
c478f1a752
synchronously fill injector buffer on underrun
2017-05-09 16:34:42 -04:00
Zach Pomerantz
73a3bf413b
update local audio thread name
2017-05-08 20:14:09 -04:00
Zach Pomerantz
b6f652e0ea
use network period multiple for local audio buffer
2017-05-08 20:05:14 -04:00
Zach Pomerantz
defc3c1c4f
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-bg-join
2017-05-08 19:55:10 -04:00
Vladyslav Stelmakhovskyi
d0111ac0bb
Merge branch 'master' into audio-source-sync
2017-05-08 20:09:34 +02:00
Zach Pomerantz
7db404eba0
recast avoid overwriting buffer logic
2017-05-05 18:16:48 -04:00
Zach Pomerantz
ed3fc004a6
avoid assignment-as-test
2017-05-05 18:15:56 -04:00
Zach Pomerantz
48af83a960
guard against audio injector and local buffer datarace
2017-05-05 17:05:40 -04:00
Zach Pomerantz
cdf6c332a6
prevent overflow of local injectors buffer
2017-05-05 16:29:52 -04:00
Zach Pomerantz
e882e7b648
rm extra lock in audio read
2017-05-05 15:37:01 -04:00
Zach Pomerantz
ca7cd61c64
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-bg-join
2017-05-05 13:04:01 -04:00
Vladyslav Stelmakhovskyi
d18ac6dd49
Reimplemented Tablet Audio screen using C++ model
2017-04-28 23:02:28 +02:00
Stephen Birarda
da1d93b86c
fix emission of inputReceived in AudioClient
2017-04-25 15:41:37 -07:00
Zach Pomerantz
e9c5b86003
use mutex, not cv
2017-04-25 16:02:43 -04:00
Zach Pomerantz
c27dd446eb
rename to standard
2017-04-25 14:59:30 -04:00
Zach Pomerantz
4a26785eda
cleanup Audio bg threads in cleanupBeforeQuit
2017-04-24 18:21:27 -04:00
Zach Pomerantz
cd2665fc55
standardize Audio bg thread joins
2017-04-24 18:10:50 -04:00
Zach Pomerantz
b6d111369f
Merge pull request #9935 from zzmp/fix/audio-initialization
...
Fix data race in audio output initialization
2017-03-21 00:23:28 -04:00
Zach Pomerantz
20ea13e00a
Merge pull request #9897 from zzmp/record/noise-gate
...
Add AudioNoiseGate to recordings played through Interface
2017-03-21 00:21:20 -04:00
Zach Pomerantz
a68146e7d9
mv audio output init to output thread
2017-03-17 15:31:00 -04:00
Zach Pomerantz
db956f4cc3
use single frame buffer for local audio
2017-03-16 18:06:18 -04:00
Zach Pomerantz
2d0e11e2d1
add AudioNoiseGate to recording
2017-03-15 13:30:39 -04:00
ZappoMan
3e020ede78
CR feedback
2017-03-13 11:58:43 -07:00
Brad Hefta-Gaub
a38965d628
add more audio stats
2017-03-11 09:50:30 -08:00
Brad Hefta-Gaub
eaea718de1
add various scriping interfaces for managing the audio scope and detecting noise gate transitions
2017-03-10 17:08:19 -08:00
Brad Hefta-Gaub
1bdad89cbe
properly handle silent packet transitions
2017-03-08 17:27:46 -08:00
Chris Collins
de84e07281
Merge pull request #9714 from thoys/fix-recorder-js-playback
...
Fix recorder.js playback in interface
2017-02-23 09:59:37 -08:00
Thijs Wenker
5033e7be11
CR fixes
2017-02-23 18:22:36 +01:00
Thijs Wenker
13b2b6086f
Fix recorder.js playback in interface
2017-02-21 19:47:26 +01:00
Anthony J. Thibault
856a38af0c
Fix for audio, toolbar and tablet on macos.
2017-02-17 17:08:23 -08:00
Zach Pomerantz
061668cba4
use lock-free pipe for local audio in device callback
2017-01-22 00:25:08 -05:00
Zach Pomerantz
72f8fa49f9
inline audio convertToFloat
2017-01-20 18:38:21 -05:00
Zach Pomerantz
df051ff8df
maintain network audio in int16_t
2017-01-20 18:37:46 -05:00
Zach Pomerantz
685483b924
do not omit local audio when echoing server audio
2017-01-20 17:52:03 -05:00
Zach Pomerantz
280ed04f74
fix unused warning for channel up/downmix
2017-01-20 14:43:41 -05:00
Zach Pomerantz
5927c089ac
use AudioRingMixBuffer as LocalInjectorsStream
2017-01-20 12:29:44 -05:00
Zach Pomerantz
4f7f3c2a60
mv localInjectorsBuffer to float-based localInjectorsStream
...
The localInjectorsBuffer is based on
AudioRingBuffer, which only accounts for int16_t.
Local injectors are mixed, and so they can exceed
std::numeric_limits<int16_t> before limiting.
This will allow them to remain as float until
limiting (in the device callback) - once the new
stream is implemented.
2017-01-20 12:29:44 -05:00
Zach Pomerantz
c5415f9624
clean audio client logs
2017-01-20 12:29:44 -05:00
Zach Pomerantz
7261b5285e
omit all injector samples on server echo
2017-01-20 12:29:44 -05:00
Zach Pomerantz
492795f7e5
audio client cosmetics
2017-01-20 12:29:44 -05:00
Zach Pomerantz
4c7c7ee3cc
mv audio injector preparation to own thread
2017-01-20 12:29:44 -05:00
Zach Pomerantz
d7085ec685
add audio helpers convertToMix/Scratch
2017-01-20 12:29:44 -05:00
Zach Pomerantz
d1673e554f
simplify audio bytesWritten computation
2017-01-20 12:29:44 -05:00
Zach Pomerantz
0f08abfa14
fix bug in audio samples popped check
2017-01-20 12:29:44 -05:00
Zach Pomerantz
61f7f72c5e
simplify resampling
2017-01-20 12:29:44 -05:00
Zach Pomerantz
42f5af7c39
improve audiostream debug logs
2017-01-20 12:29:44 -05:00
Zach Pomerantz
969d776e1f
queue injector audio after device callbacks
...
Conflicts:
libraries/audio-client/src/AudioClient.cpp
2017-01-20 12:29:44 -05:00
Zach Pomerantz
dee5f63037
rename audio mix/scratch buffers
...
Conflicts:
libraries/audio-client/src/AudioClient.cpp
libraries/audio-client/src/AudioClient.h
2017-01-20 12:29:44 -05:00
Zach Pomerantz
0f1ec63b17
enable injectors in audio device callback
2017-01-20 12:29:44 -05:00
Zach Pomerantz
3a0d874bb5
add injector ring buffer to audio client
2017-01-20 12:29:44 -05:00
Zach Pomerantz
a7ecf41a42
add audio limiting to device callback
2017-01-20 12:29:44 -05:00
Zach Pomerantz
24d53ea13c
rm audio output limiting
2017-01-20 12:29:44 -05:00
Zach Pomerantz
ebe96f9b25
rm injectors from mixed audio processing
2017-01-20 12:29:44 -05:00
Ken Cooke
42e13d1e97
Fix audio failures on systems that return incorrect/unsupported mixFormat
2017-01-14 10:26:13 -08:00
David Kelly
b68a07e930
Merge pull request #9197 from davidkelly/dk/injectorVolume
...
No longer applying volume when reading audio injector buffer
2016-12-16 15:11:33 -08:00
David Kelly
a8157ae2cd
Typo, plus some CR feedback
2016-12-13 17:48:30 -08:00
Zach Fox
7030c7b0a6
Space bubble improvements ( #9142 )
...
* The space bubble around a player's avatar is now visualized. When another avatar enters a player's bubble, The bubble visualization will appear, a soft tone will play, and the "Bubble" HUD button will flash.
* The space bubble radius setting has been removed. Space bubble size now scales based on avatar scale.
* Space bubble collision detection is now more accurate and reliable.
* CTRL + N toggles the bubble.
* The "Bubble" HUD button has been moved to the proper location.
2016-12-12 14:22:54 -08:00
David Kelly
3f3d922eca
No longer applying volume when reading audio injector buffer
...
Since we also apply the gain in HRTF (on both server and client), the
mono sources sort of had volume^2 applied to them.
2016-12-12 12:01:02 -08:00
Ken Cooke
e4b5c14ea3
PR feedback
2016-12-07 10:15:55 -08:00
Ken Cooke
9831d874b5
Remove debugging code
2016-12-06 10:22:58 -08:00
Ken Cooke
975cbd8e44
Replace test renderer with spatialized binaural renderer
2016-12-06 10:12:36 -08:00
Ken Cooke
e93e1a7c4f
Preliminary support for Ambisonic audio injectors.
...
Supports 4-channel WAV files, presumed to be B-format (FuMa) first-order Ambisonic.
Supports WAV with arbitrary sample rate (needs optimization).
Supports soundfield volume and orientation set via script.
Supports localOnly client-side injection using simple (non-spatialized) test renderer.
2016-12-02 18:20:57 -08:00
Ken Cooke
d69d77d0ee
Refactor the audio device format detection. Only use the native format when Qt can correctly determine it.
2016-11-21 21:36:17 -08:00
Ken Cooke
fd08936fb3
Improved failure logs
2016-11-17 13:42:43 -08:00
Ken Cooke
ec53c6a030
Add support for mono or multichannel audio output.
...
At the end of the audio pipeline, optional upmix/downmix to the device channel format.
2016-11-17 06:56:49 -08:00
Ken Cooke
b19a44e046
On Windows, set audio format to match the internal mix format.
...
This works around multichannel bugs in the Qt audio framework.
2016-11-15 10:37:32 -08:00
Ken Cooke
30c189e624
channelCount math cleanup
2016-11-15 09:10:05 -08:00
Seth Alves
137730dc50
coding standard
2016-11-01 11:59:28 -07:00
Seth Alves
ae17135a07
lock around quit flag to avoid shutdown race
2016-11-01 11:14:16 -07:00
Seth Alves
3903a51062
fix a couple of crash-on-exits
2016-10-25 13:58:48 -07:00
Anthony J. Thibault
350977f03e
Speculative fix for crash in AudioClient
2016-10-11 10:49:43 -07:00
Zach Pomerantz
5af95c6062
store channels on audio stream
2016-10-05 12:04:24 -07:00
Zach Pomerantz
972a611d03
retain stereo on dead audio resampling
2016-10-04 17:54:20 -07:00
Ken Cooke
46526a309d
Increase audio input buffering on Windows 7
2016-10-03 17:46:09 -07:00
Ken Cooke
9590d2eef9
Fix support for audio when input rate != output rate
2016-10-03 09:08:32 -07:00
Zach Pomerantz
81b6bb3a2d
rm unused DEFAULT_GATE_THRESHOLD
2016-09-21 18:04:07 -07:00
Zach Pomerantz
e2ff738fc3
strip unused audio settings
...
- remove parameters on the jitter buffer algorithm, these are now static
- remove parameters on the output starve detection algorithm, now static
- move interface audio settings to the Developer menu
2016-09-21 17:35:27 -07:00
Ken Cooke
b14f43b11e
Merge pull request #8610 from zzmp/test/audio-jitter
...
add audio jitter simulator testing tool
2016-09-21 16:43:36 -07:00
Chris Collins
3d9f231543
Merge pull request #8609 from zzmp/fix/audio-stats
...
fix audio network stats
2016-09-19 09:08:35 -07:00
Zach Pomerantz
b6d093889c
add AudioConstants::SAMPLE_SIZE
2016-09-16 14:20:50 -07:00
Zach Pomerantz
45b306fc97
fix preference for jitter sim
2016-09-16 12:14:57 -07:00
Zach Pomerantz
80bce953f7
justify jitter simulation
2016-09-16 11:40:37 -07:00
Zach Pomerantz
177466e4c7
calculate unplayed ms on all streams/buffers as max
2016-09-15 17:54:41 -07:00
Zach Pomerantz
53f5899a69
add audio jitter simulator
2016-09-15 14:51:39 -07:00
Zach Pomerantz
9792d025fa
clean up audio stats
2016-09-15 13:09:06 -07:00
Seth Alves
4470338663
catagorize some qDebugs
2016-09-14 21:39:45 -07:00
Ken Cooke
ad97a15e8b
Handle another case when resampling is not needed
2016-09-14 09:54:15 -07:00
Ken Cooke
e82d751dac
Fix typo
2016-09-14 08:25:41 -07:00
Ken Cooke
96313a421c
Cleanup the confusion of using null-resampler for channel conversion
2016-09-14 08:22:18 -07:00