50 Commits

Author SHA1 Message Date
Cameron Gutman
2228e4812d Improve debugging for A/V data loss and recovery 2021-06-08 20:01:58 -05:00
Cameron Gutman
509a17dbc3 Perform PLC for each lost packet in the FEC block 2021-06-03 21:03:46 -05:00
Cameron Gutman
ef33aaa3c8 Fix queued packet leak when audio packet queue overflows 2021-06-02 22:05:45 -05:00
Cameron Gutman
e3d4f4e91f Validate the Opus data in debug builds 2021-06-02 20:10:46 -05:00
Cameron Gutman
3dff15b8c4 Fix memory leak when switching between immediate and queued audio packets 2021-06-01 19:33:56 -05:00
Cameron Gutman
89918324ce Implement audio FEC recovery support 2021-06-01 18:31:56 -05:00
Cameron Gutman
ccaca624f3 Attempt to fix audio latency issues on some PCs 2021-05-04 10:21:41 -05:00
Cameron Gutman
8f371343cd Consolidate includes 2021-04-29 17:22:15 -05:00
Cameron Gutman
da68e64d9b Fix various MSVC warnings 2021-04-29 17:21:12 -05:00
Cameron Gutman
bce9f82844 Fix strict aliasing violation (and save a byteswap on each packet) 2021-04-28 17:05:41 -05:00
Cameron Gutman
fe205d838d Don't check for errors from sendto() in the ping threads 2021-04-28 17:04:44 -05:00
Cameron Gutman
c1befbe2a8 Improve audio resync logic to use initial receive time rather send time 2021-04-26 22:43:49 -05:00
Cameron Gutman
33c4e98152 Adjust initial audio resync drop time based on connection handshake latency 2021-04-26 21:39:36 -05:00
Cameron Gutman
29d2cc6d5b Improve MbedTLS implementation of AES-CBC 2021-04-22 17:08:35 -05:00
Cameron Gutman
d7549cd953 Use array initializers compatible with MSVC 2021-04-22 00:32:41 -05:00
Cameron Gutman
db81f1e512 Add support for audio stream encryption
Clients must opt-in using the new encryptionFlags field
2021-04-22 00:20:17 -05:00
Cameron Gutman
3979dbd082 Allow compilation on OSes without IPv6 support 2021-04-17 23:40:36 -05:00
Cameron Gutman
4304e597d8 Add byteswapping macros for big-endian systems 2021-04-17 21:43:13 -05:00
Cameron Gutman
31433fc5ee Minor cleanup and bugfix 2021-04-09 13:47:24 -05:00
Cameron Gutman
d0c3513504 Reorder audio initialization and RTSP handshake to avoid RTSP PLAY failure on GFE 3.22 2021-04-09 08:39:28 -05:00
Cameron Gutman
2c13835f32 Increase first-start audio drop for upcoming GFE 3.22 changes 2021-04-09 08:39:28 -05:00
Cameron Gutman
3fddfc5557 Fix Clang warnings 2020-12-05 23:20:02 -06:00
Cameron Gutman
5f9f7ce407 Code cleanup: use stdbool.h 2020-11-30 20:38:13 -06:00
Cameron Gutman
1b022a0d05 Terminate the connection if we can't receive a key frame in 10 seconds 2020-08-29 21:00:05 -07:00
Cameron Gutman
ae00c09cb6 Restore the 500 ms ping logic to prevent warnings in the server-side logs 2020-08-08 23:16:55 -07:00
Cameron Gutman
f596e80575 Improve logging of video/audio delay and errors 2020-05-01 20:23:44 -07:00
Cameron Gutman
9ffdc79b6f Add log messages to troubleshoot problems with missing video/audio 2020-04-29 20:17:55 -07:00
Cameron Gutman
fb60ae6a4d Parse Opus parameters from RTSP DESCRIBE response 2020-03-31 20:52:38 -07:00
Cameron Gutman
6b42954b47 Add LiGetPendingAudioDuration() function 2019-11-30 21:31:50 -06:00
Cameron Gutman
f4dad9ae8b Add presentation timestamp to video frame metadata 2019-11-10 18:07:11 -08:00
Cameron Gutman
a9780361a3 Fix high-quality surround sound breaking audio when streaming over the Internet or IPv6 2019-08-04 15:05:40 -07:00
Cameron Gutman
dffe51e885 Add LiGetPendingVideoFrames() and LiGetPendingAudioFrames() 2019-05-07 20:25:26 -07:00
Cameron Gutman
59481c085a Add support for requesting 20 ms audio frames for slow Opus decoders 2019-05-04 15:33:48 -07:00
Cameron Gutman
31aa893acd Name our threads on Linux 2019-05-03 18:54:40 -07:00
Cameron Gutman
d6971983aa Use an interruptible sleep to allow our threads to exit sooner 2019-04-06 15:26:59 -07:00
Cameron Gutman
40fa4ef3c8 Reduce NAT keepalive packet rate after connection is established 2019-03-24 12:54:41 -07:00
Cameron Gutman
aa9610847e Ensure termination error code is propagated properly 2019-02-09 21:30:16 -08:00
Cameron Gutman
f884003066 Avoid accumulating audio latency from audio captured by the host before we're ready to play it 2019-01-06 13:24:36 -08:00
Cameron Gutman
610c00bf2d Only start the audio UDP ping thread when we are ready to accept samples 2019-01-03 19:59:53 -08:00
Cameron Gutman
b9290449b4 Fix queue state error (and subsequent assert) when the queue advances after a constraint violation upon reception of a packet behind the new lowest entry 2018-08-29 08:24:58 -07:00
Cameron Gutman
6e7965f013 Use SO_RCVTIMEO to avoid the overhead of an extra syscall per packet 2018-07-16 00:46:40 -07:00
Cameron Gutman
b528ef7921 Fix uninitialized variable warning when using an invalid audio configuration 2018-05-28 10:46:42 -07:00
Cameron Gutman
c1b954da1f Fix channel mapping error in 5.1 high quality mode 2018-05-27 20:03:08 -07:00
Cameron Gutman
a8b01d6c29 Enable high quality surround sound when the video bitrate is over 15 Mbps 2018-05-27 18:45:09 -07:00
Cameron Gutman
cde117df06 Allocate enough buffer space for high quality audio packets from GFE 3.12 2018-01-09 19:46:19 -08:00
Iwan Timmer
d3fe286eb7 Add audio context and flags 2017-05-28 15:34:56 +02:00
Cameron Gutman
86447399a9 Add start and stop callbacks for audio and video renderers 2017-05-21 12:50:53 -07:00
Cameron Gutman
2d7bf5be82 Fix state cleanup if LiStartConnection() fails 2017-05-18 09:52:50 -07:00
Unknownforce
5791274cc5 Update AudioStream.c 2016-04-26 15:17:35 -05:00
Cameron Gutman
48a5d63045 Reorganize the folder structure and delete the Xcode build files 2016-03-31 07:22:03 -04:00