Commit Graph

22 Commits

Author SHA1 Message Date
Cameron Gutman fb437f11a0 Always request an IDR frame if packet loss occurs because we don't know if we missed a full frame (partial revert of last commit). Remove the last bit of active NAL parsing. 2013-11-28 21:02:31 -05:00
Cameron Gutman b0d138b7f2 Rewrite the NAL depacketizer to run in O(1) time by parsing the proprietary header rather than the H264 bytestream 2013-11-28 14:22:12 -05:00
Cameron Gutman dd82573d08 Switch from ArrayBlockingQueues to LinkedBlockingQueues for increased throughput. Set thread priorities for the decoder and ping threads. 2013-11-24 19:31:50 -05:00
Cameron Gutman 7d39ac2a45 Reuse a single AvByteBufferDescriptor when depacketizing H264 instead of allocating many of them per packet 2013-11-24 21:51:09 -05:00
Cameron Gutman 125bcb370f Limit the size of queues. Switch to a blacklist instead of a whitelist for hardware decoding. Currently, Nvidia, TI, and Google H264 codecs are on the blacklist. Reenable large heap since we're allocating more objects now. 2013-11-23 02:44:10 -05:00
Cameron Gutman 80fdae3673 Request an IDR frame if a previous frame was lost or 2013-11-21 19:55:40 -05:00
Cameron Gutman 6bb215eddf Remove pooling code due to higher concurrency latency that resulted in a net loss of performance. 2013-11-21 16:40:27 -05:00
Cameron Gutman 1d7460e8b3 Revert "WIP optimization of object allocation and pools. There's currently a double free on the AvByteBufferDescriptor that I'm trying to track down."
This reverts commit 6600329580aace81321220d2e4000099ad27f4f7.
2013-11-21 16:25:10 -05:00
Cameron Gutman 45120e79e4 Revert "Fix the double-free bug and disable double free debugging."
This reverts commit 9bb395501172f754baacc1efe6f09af55627fa15.
2013-11-21 16:24:52 -05:00
Cameron Gutman ff50b5fdab Revert "Fix memory leaks of special NAL sequences"
This reverts commit d9987105d0d9c27e920b4113875e82b315d050a4.
2013-11-21 16:24:47 -05:00
Cameron Gutman e6959e66e4 Fix memory leaks of special NAL sequences 2013-11-21 14:36:17 -05:00
Cameron Gutman 9e4364f672 Fix the double-free bug and disable double free debugging. 2013-11-21 13:05:01 -05:00
Cameron Gutman 7951c0fa13 WIP optimization of object allocation and pools. There's currently a double free on the AvByteBufferDescriptor that I'm trying to track down. 2013-11-21 12:24:45 -05:00
Cameron Gutman cca7df6c25 Reassemble AVC NALs when padding is reached, rather than waiting through several packets until the next AVC frame start NAL. Improves video latency and vulnerability to packet loss. 2013-11-17 16:50:45 -05:00
Cameron Gutman 524cab4115 Drop audio frames if the backlog becomes too large. Trim buffer pools when memory runs low. Optimize AVC decoding a bit more. 2013-11-10 15:25:00 -05:00
Cameron Gutman fc66caf567 Revert unintended change 2013-11-10 15:21:58 -05:00
Cameron Gutman e507f4abfb Remove some unneccessary checks and repurpose an old method. 2013-11-10 14:45:28 -05:00
Cameron Gutman 54e365a304 Fix video buffer pool usage. 2013-11-10 03:29:44 -05:00
Cameron Gutman d5665ac318 Fix decoding of misaligned start sequences. 2013-11-10 02:53:51 -05:00
Cameron Gutman 34e87ca899 Rename AvBufferX -> AvByteBufferX and create AvShortBufferX 2013-11-10 03:42:29 -05:00
Cameron Gutman 62a9040cb8 Add a Opus decoder JNI library. Write an audio depacketizer. Audio works! 2013-11-10 03:27:21 -05:00
Cameron Gutman d3b9387c37 Refactor AV code 2013-11-09 19:20:49 -05:00