Cameron Gutman
12eebe0039
Wait for first IDR frame before enabling RFI
2019-01-19 14:44:48 -08:00
Cameron Gutman
a653f4d3e0
Fix IDR frame dropping race condition which seems to occur frequently with GFE 3.17
2019-01-18 01:50:39 -08:00
Cameron Gutman
884b8d0a95
Additional fixes for corrupt FEC recovery handling
2018-09-05 12:04:39 -07:00
Cameron Gutman
ddab05c56e
Assert that recovered packets are valid
2018-09-04 22:13:37 -07:00
Cameron Gutman
4a3521cfc6
Fix depacketizer state corruption if state is dropped in the middle of a frame
2018-09-04 14:35:56 -07:00
Cameron Gutman
ed134f07d3
Fix crash when using DR_NEEDS_IDR on a non-direct submit decoder
2018-06-01 16:59:06 -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
069f1475b6
Refactor reference frame invalidation checks into one function
2017-11-30 23:14:11 -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
1c386a8987
Fix race condition that could result in loss of NALUs in an IDR frame
...
Unfortunately, this was a design flaw in the way we handled IDR frames
NALUs. Because we split them all up and handled them as separate
"frames" in the system, some of them could be discarded due to a
video decode unit overflow, for example, and cause the decoder to get
confused due to receiving an SPS without a following PPS.
To address this, NALUs in the IDR frame are always delivered together
as one frame. The SPS, PPS, and VPS are now in separate buffers in
the IDR frame's buffer list and tagged as such with the new buffer
type field. The IDR frames themselves have a new frame type field
which marks them as special frames that clients may need to process
in a special way.
This will likely be a breaking change for your clients!
2017-11-18 14:00:25 -08:00
Cameron Gutman
9c37b57510
Use a 24-bit rounding mask to correctly round SPI and restore SPI asserts
2017-06-11 14:52:56 -07:00
Cameron Gutman
c51bfdc9cb
Remove packet loss reporting, since it will be unreliable due to the FEC queue in front of the depacketizer
2017-06-11 14:50:21 -07:00
Cameron Gutman
3579265560
The SPI assert can still wrap on a long running stream and doesn't provide a ton of value anyway, so let's just kill it
2017-06-11 13:30:32 -07:00
Cameron Gutman
88f95c7871
Remove a dangerous short cast that was causing incorrect wrapping of the packet index and a few other unnecessary casts
2017-06-11 12:55:44 -07:00
Cameron Gutman
99cfae7acc
Add receive time to decode unit
2017-06-10 16:08:52 -07:00
Cameron Gutman
4113108f23
Remove extra depacketizer code handling packet sequencing since RTP FEC queue does that now
2017-06-10 15:52:20 -07:00
Cameron Gutman
6fb3472aec
Add a frame number field to the decode unit struct
2017-06-10 13:41:21 -07:00
Cameron Gutman
c386569754
Remove length prefix on video buffers
2017-06-10 12:55:50 -07:00
Cameron Gutman
7ee9ea4e11
Fix RFI invalidating an extra frame each time
2017-05-21 10:11:07 -07:00
Cameron Gutman
bfd368769e
Force an IDR frame request when the decode unit queue overflows
2017-05-20 17:32:02 -07:00
Cameron Gutman
ec6c569130
Split reference frame invalidation support capabilities into codec-specific options
2017-05-15 23:11:37 -07:00
Cameron Gutman
f1adbc1e6b
Apparently we're back to 8 byte first frame headers on GFE 3.2
2016-12-13 20:24:34 -08:00
Cameron Gutman
bd825776b3
Add support for GFE 3.0.7
2016-10-05 17:31:19 -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
2103b62386
Cancel the pending IDR frame request if we got a spurious IDR frame after a stream discontinuity
2016-05-26 17:38:03 -05:00
Cameron Gutman
48a5d63045
Reorganize the folder structure and delete the Xcode build files
2016-03-31 07:22:03 -04:00