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