예제 #1
0
 public MultiAngle(Stream stream)
 {
     NumberOfAngles = (byte)stream.ReadByte();
     _flagField     = (byte)stream.ReadByte();
     Angles         = new ClipNameWithRef[NumberOfAngles - 1];
     for (var i = 0; i < NumberOfAngles - 1; ++i)
     {
         Angles[i] = new ClipNameWithRef(stream);
     }
 }
예제 #2
0
        public SubPlayItem(Stream stream)
        {
            Length = (ushort)stream.BEInt16();
            var position = stream.Position;

            ClipName = new ClipName(stream);
            stream.Skip(3);
            _flagField     = (byte)stream.ReadByte();
            RefToSTCID     = (byte)stream.ReadByte();
            TimeInfo       = new TimeInfo(stream);
            SyncPlayItemID = (ushort)stream.BEInt16();
            SyncStartPTS   = stream.BEInt32();

            if (IsMultiClipEntries)
            {
                NumberOfMultiClipEntries = (byte)stream.ReadByte();
                MultiClipNameEntries     = new ClipNameWithRef[NumberOfMultiClipEntries - 1];
                for (var i = 0; i < NumberOfMultiClipEntries - 1; ++i)
                {
                    MultiClipNameEntries[i] = new ClipNameWithRef(stream);
                }
            }
            stream.Skip(Length - (stream.Position - position));
        }