Cameron Gutman
72f4f9e7b1
Disable BLL-FEC on GFE 3.26
...
The effective FEC percentage is much lower which negatively impacts performance on lossy networks
2022-10-04 17:51:01 -05:00
Cameron Gutman
3b9d8a3176
Assert that the port numbers are set prior to being used
2021-07-02 01:44:11 -05:00
Cameron Gutman
f05be47ed8
Replace other hardcoded ports
2021-07-02 00:27:35 -05:00
Cameron Gutman
5a71a4c092
Use 10ms packets for slow Opus decoders
...
With the old 20ms packets, an FEC block was 80ms of audio data.
This is enough data that waiting for the FEC shards can cause
an audio data underflow. The burst of 80ms of audio data after
reassembly fails can then lead clients to drop samples due to
excessive queued data.
2021-06-07 23:20:40 -05:00
Cameron Gutman
c057075eac
Set minRequiredFecPackets to better handle lossy links at low bitrates
2021-05-16 09:27:50 -05:00
Cameron Gutman
7174caf5f1
Implement support for multi-FEC frames
2021-04-26 20:36:07 -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
5782246b30
Add hack to prevent video glitching on GFE 3.22 when packets per frame exceed 120
2021-04-09 19:30:38 -05:00
Cameron Gutman
12f0f3d6d7
Add encrypted control stream support for GFE 3.22
...
Receive-side not yet fully working
2021-04-09 10:25:24 -05:00
Cameron Gutman
9a706fd78c
Temporarily switch to control protocol 9 on GFE 3.22
2021-04-09 07:45:17 -05:00
Cameron Gutman
5f9f7ce407
Code cleanup: use stdbool.h
2020-11-30 20:38:13 -06:00
Cameron Gutman
e9ee868da4
Don't enable QoS for IPv6/NAT64 either
2020-10-31 17:08:29 -05:00
Cameron Gutman
dbf81dcb63
Don't enable QoS for remote IPv4 streams
...
Some broken routers/CPE will drop all QoS tagged packets
2020-10-28 20:35:45 -05:00
Cameron Gutman
d9d2668473
Fix audio problems caused by stale HighQualitySurroundSupported and HighQualitySurroundEnabled values
2020-04-02 18:44:13 -07:00
Cameron Gutman
607aaca93f
Replace AUDIO_CONFIGURATION constants with MAKE_AUDIO_CONFIGURATION() macro
2020-03-31 21:33:34 -07:00
Cameron Gutman
c1b8aa266f
Use 10 ms audio packets on low bitrate streams to balance latency and bandwidth
2020-03-18 20:03:56 -07:00
Cameron Gutman
e60a7ef75f
Add color space and color range options
2019-12-14 14:32:47 -08:00
Cameron Gutman
b0213d06a7
Always use DSCP marking for our AV traffic
2019-12-12 18:43:57 -08:00
Cameron Gutman
f5ae5df5d0
Fix logic error in low bitrate audio duration selection
2019-12-01 19:22:16 -08:00
Cameron Gutman
c1a26618d4
Increase audio packet duration for low bandwidth connections
2019-11-30 21:59:34 -06: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
6245934462
Fix streaming from Gen 3 servers
2019-07-05 21:01:14 -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
c87d4a755e
Add a workaround to get low bandwidth stereo working again and a cap flag to never request HQ audio
2019-04-25 01:03:27 -07:00
Cameron Gutman
9fc962eb61
Use strict bitrate logic only in remote streaming mode
2019-01-01 18:45:01 -08:00
Cameron Gutman
64096db415
Include FEC overhead in specified bitrate
2019-01-01 18:21:30 -08:00
Cameron Gutman
dd49e5bbfd
Fix video bitrate being capped at initialBitrateKbps
2018-12-21 15:07:18 -08:00
Cameron Gutman
639ff18dbb
Allow automatic detection of remote streaming
2018-11-21 20:52:50 -08:00
Cameron Gutman
b2ebba2167
Only disable split encode on older GFE versions
2018-09-22 20:22:10 -07:00
Cameron Gutman
8743ce5d08
Improve encoding rate steps for PC native resolutions
2018-09-05 18:40:47 -07:00
Cameron Gutman
884b8d0a95
Additional fixes for corrupt FEC recovery handling
2018-09-05 12:04:39 -07:00
Cameron Gutman
fc124b60ce
Enable slicing on HEVC if the client requests it
2018-08-04 16:37:57 -07:00
Cameron Gutman
679f6e83bb
Fix HEVC streams requiring a higher bitrate to enable high quality surround audio
2018-07-27 19:04:25 -07:00
Cameron Gutman
4c47dd74ad
Revert "Reduce audio bitrate when streaming with a low video bitrate" due to breakage on GFE 3.14.1
2018-07-27 19:02:27 -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
783af66324
Reduce audio bitrate when streaming with a low video bitrate
2018-05-27 17:29:20 -07:00
Cameron Gutman
bf737dc959
Plumb clientRefreshRateX100 for modern GFE versions
2018-02-03 21:56:52 -08:00
Cameron Gutman
f6ae7fc2b4
Improve decoder compatibility by using num_ref_frames=1 when RFI is disabled. Fixes decoder hangs on Amlogic SoCs.
2017-11-30 23:38:49 -08:00
Cameron Gutman
deb0e69d64
HDR is a Gen7 feature
2017-11-30 23:26:32 -08:00
Cameron Gutman
26fe1cb22c
Separate H.265 video format for SDR and HDR formats
2017-11-25 12:12:38 -08:00
Cameron Gutman
314a5937f4
Set encoder feature flags to disable split frame encode on GFE 3.10
2017-11-10 00:09:15 -08:00
Cameron Gutman
a135ceaa9a
Add support for HDR streaming
2017-10-11 23:21:43 -07:00
Cameron Gutman
d2229fd6a8
Update SDP attributes for better 4K streaming
2017-10-11 23:00:01 -07:00
Cameron Gutman
b83cafe845
Ensure FEC is always enabled
2017-06-10 15:51:05 -07:00
Iwan Timmer
9bf8d361a1
Forward Error Correction ( #24 )
...
* Preperation for FEC by adding new queue which buffers whole frames
* Add code for creating recovered RTP packet
* Add checks before repair missing packets
* Initial implementation for single FEC packet
* Implement FEC for multiple packets
2017-05-04 21:22:30 -07:00
Cameron Gutman
f57bd745b4
API update to provide enough information to support GFE 3.0.7
2016-10-05 17:23:59 -07:00
Cameron Gutman
48a5d63045
Reorganize the folder structure and delete the Xcode build files
2016-03-31 07:22:03 -04:00