Commit graph

886 commits

Author SHA1 Message Date
Zach Pomerantz
3bea1069f2 fix unit conversion for audio fade factor 2016-10-21 16:10:33 -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
Zach Pomerantz
afce8c4a45 STEREO_FACTOR -> AudioConstants::STEREO 2016-10-05 13:02:28 -07:00
Zach Pomerantz
5af95c6062 store channels on audio stream 2016-10-05 12:04:24 -07:00
Zach Pomerantz
05aded5c9d differentiate smaples/frames from dropped audio 2016-10-04 18:45:03 -07:00
Zach Pomerantz
00fabb77b4 use proper audio frame naming 2016-10-04 18:27:56 -07:00
Zach Pomerantz
972a611d03 retain stereo on dead audio resampling 2016-10-04 17:54:20 -07:00
Zach Pomerantz
768354e49f loopback local injectors on server echo 2016-09-29 15:25:17 -07:00
Zach Pomerantz
055fabf57b fix audio AppendFlag semantics 2016-09-26 18:51:51 -07:00
Brad Hefta-Gaub
ee6719f94a Merge pull request #8652 from zzmp/fix/audio-injector
fix injector restart fail on lack of local interface
2016-09-23 16:07:16 -07:00
Zach Pomerantz
912db1c0e1 silence audiostream logging 2016-09-23 15:32:23 -07:00
Chris Collins
be33524990 Merge pull request #8636 from zzmp/clean/audio-config
strip unused audio settings, hide the rest
2016-09-23 15:08:48 -07:00
Zach Pomerantz
faba165408 fix injector fail on lack of local if
- consolidate codepaths for new/restarted injections
- allow network injection without local injection
2016-09-23 15:03:38 -07:00
Zach Pomerantz
09a96796de bring audio stream initializers to standard 2016-09-23 11:58:15 -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
Zach Pomerantz
9e2ec27b29 always play audio injectors locally 2016-09-21 17:20:51 -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
0d3a9af6a6 wait 10s before growing jitter 2016-09-16 12:03:54 -07:00
Zach Pomerantz
177466e4c7 calculate unplayed ms on all streams/buffers as max 2016-09-15 17:54:41 -07:00
Zach Pomerantz
9792d025fa clean up audio stats 2016-09-15 13:09:06 -07:00
Ken Cooke
3a41b285a0 Fix local audio injectors, that got disabled somehow 2016-09-13 17:21:48 -07:00
Brad Hefta-Gaub
dbf29ba79d Merge pull request #8569 from jherico/gli
Stuttering: Upgrade GLM & add GLI integration
2016-09-09 12:11:08 -07:00
Brad Davis
ecfe56085d GLM update and GLI integration 2016-09-09 10:18:15 -07:00
Zach Pomerantz
7b8f616099 add audiostream (jitter) logging 2016-09-08 17:23:56 -07:00
Brad Hefta-Gaub
a40a9f1d73 Merge pull request #8575 from kencooke/neon_optimization
Added ARM NEON optimized audio sample rate conversion
2016-09-08 09:58:47 -07:00
Ken Cooke
9457d49103 Merge branch 'master' of https://github.com/highfidelity/hifi into low-latency-audio 2016-09-06 20:56:20 -07:00
Ken Cooke
284bbfdf06 Remove extraneous code 2016-09-06 17:09:59 -07:00
Ken Cooke
b47000eab2 Added ARM NEON optimized audio sample rate conversion 2016-09-06 16:53:06 -07:00
Brad Hefta-Gaub
a51f66e9ff Merge pull request #8553 from zzmp/clean/audio-ring-buffer
clean and comment AudioRingBuffer
2016-09-02 20:16:06 -07:00
Stephen Birarda
dae40c944b fix audio and audio-client compile for android 2016-08-31 16:55:19 -07:00
Zach Pomerantz
4d4a68d706 add FIXME about loudness in AudioRingBuffer 2016-08-31 14:44:45 -07:00
Zach Pomerantz
ba96ab25dc inline some AudioRingBuffer definitions 2016-08-31 14:43:44 -07:00
Zach Pomerantz
b740b9802a clean up AudioRingBuffer 2016-08-31 13:57:56 -07:00
Zach Pomerantz
488f49fc40 rm AudioRingBuffer random access mode 2016-08-31 11:37:05 -07:00
Ken Cooke
28a99a7a03 Merge branch 'master' of https://github.com/highfidelity/hifi into low-latency-audio 2016-08-29 12:38:17 -07:00
Seth Alves
722e88253d missed one 2016-08-18 09:59:40 -07:00
Seth Alves
87dbfa7e47 add -Wsuggest-override to compile flags and deal with fallout 2016-08-18 09:51:41 -07:00
Ken Cooke
46c94a938e Updated HRTF to process in 240-sample blocks 2016-08-18 08:29:32 -07:00
Ken Cooke
f80304d68e Change audio pipelines to process in exactly 10ms blocks (240 samples instead of 256).
This produces an integral number of samples when resampled to 44.1k or 48k, allowing a 44.1k back-end to work correctly without extra buffering or dynamic buffers sizes.
2016-08-18 08:27:20 -07:00
Ken Cooke
d9f12e44dc Add resampler support for downsampling with variable-input constant-output buffering mode 2016-08-16 16:47:55 -07:00
Brad Hefta-Gaub
ca3a194454 implment coded renegotiation in client if for some reason unexpected audio codecs come in to inbound stream 2016-08-02 15:30:03 -07:00
Brad Davis
89d9affb41 Merge remote-tracking branch 'upstream/stable' 2016-07-22 19:47:31 -07:00
David Kelly
3d3a7a8820 Merge branch 'stable' of github.com:highfidelity/hifi into dk/hotfixForAudio 2016-07-22 18:40:06 -07:00
David Kelly
8b8a98bfcc Acutally audio was really broken
Seems there were 2 issues:
* If you couldn't inject locally (say, no audio interface
  because you are an assignment client), we would not do the
  network injection at all.  That's bad.
* When we don't have a codec, like when using an injector, we
  were serializing the empty string in some problematic way.  I
  just use the built-in serialization, and it seems fine.

I tested this by first playing a sound in the console (or maybe you
want to tip some cows, that is ok too).  Then in _another_ interface
client on another machine in the same domain, I better hear the
sound.

Then, I added a script to play audio as a persistent script, which
just loops forever and ever.  You should hear that on both interface
clients also.

A detailed test plan to follow.

Also: using @zappoman serialization code, which is safer than using
the Qt code which does magical things for nulls.  Good to do this cuz
you know, things happen...
2016-07-22 18:33:38 -07:00
David Kelly
4b48cc7c2e Acutally audio was really broken
Seems there were 2 issues:
* If you couldn't inject locally (say, no audio interface
  because you are an assignment client), we would not do the
  network injection at all.  That's bad.
* When we don't have a codec, like when using an injector, we
  were serializing the empty string in some problematic way.  I
  just use the built-in serialization, and it seems fine.

I tested this by first playing a sound in the console (or maybe you
want to tip some cows, that is ok too).  Then in _another_ interface
client on another machine in the same domain, I better hear the
sound.

Then, I added a script to play audio as a persistent script, which
just loops forever and ever.  You should hear that on both interface
clients also.

A detailed test plan to follow.

Also: using @zappoman serialization code, which is safer than using
the Qt code which does magical things for nulls.  Good to do this cuz
you know, things happen...
2016-07-22 17:47:24 -07:00
Brad Hefta-Gaub
bb8224be8c fix silence on no codec after previous codec has been set 2016-07-21 13:57:11 -07:00
David Kelly
7b2d5e7fab Potential cause of that buzzsaw when resetting 2016-07-20 10:41:16 -07:00
Brad Hefta-Gaub
1ee5023f6d fix warnings 2016-07-19 08:33:54 -07:00
Brad Hefta-Gaub
c484fec51d cleanup 2016-07-18 22:54:57 -07:00