BogdanovKirill / RtspClientSharp

Pure C# RTSP client for .NET Standard without external dependencies and with true async nature. I welcome contributions.
MIT License
694 stars 284 forks source link

fixed IndexOfBytes bug #125

Open rokenbuzz opened 2 years ago

rokenbuzz commented 2 years ago

ArrayUtils IndexOfBytes needs to move its startIndex back if a partially successful match ends up mismatching. Otherwise a match that starts within this attempted match will be missed. I noticed this happen in H264Slicer.Slice. It missed a second nal unit start marker (0001) because the bytes contained 00001 which matched the start marker up to 000 and correctly gave up the match when the next 0 didn't match the needed 1. But then it continued without moving the start index back, so missed the 0001 match and returned -1. My video still played regardless. The nal unit type was type 8 and I'm not sure what that impacts. I added a test case to cover this.