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);
        }
Example #2
0
        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;
            }
        }