Cameron Gutman
495b269a10
Disable FEC on Gen 4 and earlier and assert that FLAG_EXTENSION is present
2020-05-03 15:51:49 -07:00
Cameron Gutman
f911d974c9
Enable FEC validation mode on debug builds
2020-05-02 16:56:13 -07:00
Cameron Gutman
719f690e56
Add an assert to catch incorrectly sized video packets
2020-05-02 16:49:51 -07:00
Cameron Gutman
5ba94e0282
Add FEC validation mode to diagnose FEC recovery failures
2020-05-02 14:24:24 -07:00
Cameron Gutman
f4dad9ae8b
Add presentation timestamp to video frame metadata
2019-11-10 18:07:11 -08:00
Cameron Gutman
0b8dc80823
Fetch receive time only once per frame instead of once per packet
2019-04-26 21:51:17 -07:00
Cameron Gutman
fe7cb006da
Improve FEC queue packet submission and retrieval from O(n) to O(1)
2019-04-25 23:02:01 -07:00
Cameron Gutman
884b8d0a95
Additional fixes for corrupt FEC recovery handling
2018-09-05 12:04:39 -07:00
Cameron Gutman
9c1d7ffb70
Detect packets that aren't correctly recovered by FEC
2018-09-05 01:06:25 -07:00
Cameron Gutman
dbbb88af09
More FEC fixes
2018-09-04 22:27:44 -07:00
Cameron Gutman
ddab05c56e
Assert that recovered packets are valid
2018-09-04 22:13:37 -07:00
Cameron Gutman
ea0f06ded0
Derive bufferHighestSequenceNumber from the FEC info to ensure it's always accurate
2018-09-04 20:20:32 -07:00
Cameron Gutman
6e633498c3
Fix decoding of large FEC index values (greater than 255)
2018-09-04 18:46:22 -07:00
Cameron Gutman
fa7b23f339
Catch RTP FEC queue corruption earlier
2018-09-04 15:56:02 -07:00
Cameron Gutman
c4692a5b5f
Rework sequencing code and fix audio dropout across 64K boundary in the process
2018-02-19 00:16:32 -08:00
Cameron Gutman
99cfae7acc
Add receive time to decode unit
2017-06-10 16:08:52 -07:00
Cameron Gutman
4134ea3c23
Prevent the depacketizer from receiving parity packets
2017-06-10 15:42:51 -07:00
Cameron Gutman
c386569754
Remove length prefix on video buffers
2017-06-10 12:55:50 -07:00
Cameron Gutman
634031839c
Use isBefore() for sequence number comparison
2017-06-08 00:30:29 -07:00
Cameron Gutman
965657523d
Improve debug output during frame loss
2017-06-07 22:49:54 -07:00
Cameron Gutman
6b2de18481
Don't wait for a parity packet to submit a completed frame
2017-06-07 22:46:13 -07:00
Cameron Gutman
3deba8de7e
Reduce video latency by 1 frame by not waiting for the next frame to signal us to give the current frame to the decoder. Also avoid giving partially reconstructed frames to the depacketizer because it can get confused with certain packet loss patterns.
2017-06-07 21:52:49 -07:00
Cameron Gutman
1a2996a49a
Various minor fixes to the FEC queue
2017-06-07 21:48:04 -07:00
Cameron Gutman
4791f62688
Add additional asserts that were useful for debugging corruption caused by the bug fixed in a499413221
2017-06-06 02:55:25 -07:00
Cameron Gutman
a499413221
Fix the buffer data packets value being truncated on very large frames causing an out of bounds buffer access in reed_solomon_reconstruct()
2017-06-06 02:07:13 -07:00
Cameron Gutman
9a7519937e
Remove unused memory allocation
2017-06-06 00:49:46 -07:00
Cameron Gutman
20821e7eb6
Leave the zero padding bytes on FEC-recovered packets alone. Decoders are required to cope with trailing zero bytes in NALUs and they are not safe to remove because they may actually be part of the byte stream itself.
2017-05-11 20:10:20 -07:00
Cameron Gutman
8a2b24e57a
Fix frame queue corruption when trying to skip a frame with no buffers
2017-05-07 20:39:36 -07:00
Cameron Gutman
ff4dbbb26d
Fix compilation errors, warnings, and cosmetic stuff
2017-05-06 15:43:43 -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