Commit graph

23 commits

Author SHA1 Message Date
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