示例#1
0
 public override void Read()
 {
     _configurationVersion = Br.ReadByte();
     _profile = Br.ReadByte();
     _profileCompatibility = Br.ReadByte();
     _level          = Br.ReadByte();
     _naluLengthSize = Br.ReadByte();
     _naluLengthSize = (byte)(1 + (_naluLengthSize & 0x03));
     _seqCount       = Br.ReadByte();
     _seqCount       = (byte)(_seqCount & 0x1f);
     for (int i = 0; i < _seqCount; i++)
     {
         AVCCParameter parameter;
         parameter.Size = Br.ReadUInt16();
         parameter.Data = null;
         if (parameter.Size > 0)
         {
             parameter.Data = Br.ReadBytes(parameter.Size);
         }
         _seqParameters.Add(parameter);
     }
     _picCount = Br.ReadByte();
     for (int i = 0; i < _seqCount; i++)
     {
         AVCCParameter parameter;
         parameter.Size = Br.ReadUInt16();
         parameter.Data = null;
         if (parameter.Size > 0)
         {
             parameter.Data = Br.ReadBytes(parameter.Size);
         }
         _picParameters.Add(parameter);
     }
 }
示例#2
0
 public override void ReadData()
 {
     while (Br.BaseStream.GetAvaliableByteCounts() > 0)
     {
         Entries.Add(new Entry(Br.ReadByte()));
     }
 }
示例#3
0
 public override void Read()
 {
     Version = Br.ReadByte();
     Br.Read(Flags, 0, 3);
     ReadData();
     base.Read();
 }
示例#4
0
        public override void ReadData()
        {
            byte   tagType          = 0;
            uint   length           = 0;
            Action ReadTagAndLength = () =>
            {
                tagType = Br.ReadByte();
                length  = Br.ReadUInt32();
            };

            ReadTagAndLength();
            _MP4ESDescrTag_ID = Br.ReadUInt16();
            if (tagType == MP4ESDescrTag)
            {
                _MP4ESDescrTag_Priority = Br.ReadByte();
            }
            ReadTagAndLength();
            if (tagType == MP4DecConfigDescrTag)
            {
                _MP4DecConfigDescrTag_ObjectTypeID = Br.ReadByte();
                _MP4DecConfigDescrTag_StreamType   = Br.ReadByte();
                _MP4DecConfigDescrTag_BufferSizeDB = Br.ReadU24();
                _MP4DecConfigDescrTag_MaxBitRate   = Br.ReadUInt32();
                _MP4DecConfigDescrTag_AvgBitRate   = Br.ReadUInt32();
                ReadTagAndLength();
                if (tagType == MP4UnknownTag)
                {
                    if (tagType == MP4DecSpecificDescrTag)
                    {
                        //iso14496-3
                        //http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio
                        ExtraDataStart  = Br.BaseStream.Position;
                        ExtraDataLength = length;
                        SkipRead(false);
                    }
                }
            }
        }
示例#5
0
 public override void ReadData()
 {
     _reserved                     = Br.ReadUInt16();
     _referenceIndex               = Br.ReadUInt16();
     _qtVideoEncodingVersion       = Br.ReadUInt16();
     _qtVideoEncodingRevisionLevel = Br.ReadUInt16();
     _qtVideoEncodingVendor        = Br.ReadUInt32();
     _qtVideoTemporalQuality       = Br.ReadUInt32();
     _qtVideoSpatialQuality        = Br.ReadUInt32();
     _videoFramePixelSize          = Br.ReadUInt32();
     _horizontalDpi                = Br.ReadUInt32();
     _verticalDpi                  = Br.ReadUInt32();
     _qtVideoDataSize              = Br.ReadUInt32();
     _videoFrameCount              = Br.ReadUInt16();
     _videoEncoderNameLength       = Br.ReadByte();
     if (_videoEncoderNameLength < 31)
     {
         _videoEncoderNameLength = 31;
     }
     _videoEncoderName    = ReadString(_videoEncoderNameLength);
     _videoPixelDepth     = Br.ReadUInt16();
     _qtVideoColorTableId = Br.ReadUInt16();
 }
示例#6
0
 public override void Read()
 {
     Version = Br.ReadByte();
     Flags   = Br.Read24();
     ReadData();
 }