CSPspEmu.Hle.Formats.video.MpegPsDemuxer.GetNextPacketAndSync C# (CSharp) Method

GetNextPacketAndSync() public method

public GetNextPacketAndSync ( ) : ChunkType
return ChunkType
        public ChunkType GetNextPacketAndSync()
        {
            uint Value = 0xFFFFFFFF;
            int Byte;
            while ((Byte = Stream.ReadByte()) != -1)
            {
                Value <<= 8;
                Value |= (byte)Byte;
                if ((Value & 0xFFFFFF00) == 0x00000100)
                {
                    return (ChunkType)Value;
                }
            }
            return (ChunkType)0xFFFFFFFF;
        }

Usage Example

Example #1
0
 public void GetNextPacketAndSyncTest()
 {
     var MpegPsDemuxer = new MpegPsDemuxer(File.OpenRead("../../../TestInput/test.pmf").SliceWithLength(0x800));
     Assert.AreEqual(MpegPsDemuxer.ChunkType.Start, MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x1BB, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x1BF, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x1E0, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x109, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x127, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x128, (uint)MpegPsDemuxer.GetNextPacketAndSync());
     Assert.AreEqual((uint)0x106, (uint)MpegPsDemuxer.GetNextPacketAndSync());
 }