public void ReadUe_TestCode_ValidResult() { const int testCode = 4; var bytes = new byte[] { (testCode + 1) << 3 }; var reader = new BitStreamReader(); reader.ReInitialize(new ArraySegment <byte>(bytes)); int code = reader.ReadUe(); Assert.AreEqual(testCode, code); }
private void ProcessSpsOrPps(ArraySegment <byte> byteSegment, bool hasStartMarker, int offset, Dictionary <int, byte[]> idToBytesMap) { _bitStreamReader.ReInitialize(hasStartMarker ? byteSegment.SubSegment(RawH264Frame.StartMarker.Length + offset) : byteSegment.SubSegment(offset)); int id = _bitStreamReader.ReadUe(); if (id == -1) { return; } if (hasStartMarker) { byteSegment = byteSegment.SubSegment(RawH264Frame.StartMarker.Length); } if (TryUpdateSpsOrPps(byteSegment, id, idToBytesMap)) { _updateSpsPpsBytes = true; } }