Commit graph

877 commits

Author SHA1 Message Date
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
Brad Hefta-Gaub
dbf60a594c Merge branch 'master' of https://github.com/highfidelity/hifi into addCodecNameToStream 2016-07-18 22:43:16 -07:00
Brad Hefta-Gaub
c6ffd81c4b some cleanup 2016-07-18 22:42:38 -07:00
Brad Hefta-Gaub
2e63aba8c9 when getting unexpected codec in the mixer, send a message to the client to select a different codec 2016-07-18 22:29:05 -07:00
Brad Hefta-Gaub
20824f038c include codec in audio stream packets so that each side can discard packets that don't match 2016-07-18 21:59:44 -07:00
David Kelly
2a89fa25bb Removing comments
Since I looked into it, seems ok
2016-07-18 16:22:12 -07:00
David Kelly
df615b1503 NotFinished never should have had its own bit
Since there is a Finished flag too.  So now, it is just 0, used as
a starting point, and we check for !hasState(Finished).  <sigh>
2016-07-18 16:02:02 -07:00
David Kelly
8c0eb1e4d2 Fixed some bad logic
When I "fixed" my or instead of and issue, I did it in the wrong
direction.  But it looked right :)  Now it is.  Sigh.  Long story
how it got there, but it seems good now.
2016-07-15 19:48:15 -07:00
David Kelly
fb99828e30 PR feedback
Code a bit more readable.  Sadly (and I guess it makes sense), a
enum class XXX is not a class, so you cannot have member functions
for it.  I can imagine no way to have a vtable if you are really
representing it as a uint8_t or whatever.  So, I put a stateHas
function in the AudioInjector instead.  Definite improvement.
2016-07-15 17:09:27 -07:00
David Kelly
8df4ed01d9 fixed typo
which oddly I was sure I already did.  Seems I didn't push it?  OK
now it is pushed.
2016-07-15 16:22:41 -07:00