public void Read(BoxReader reader)
 {
     uint num = reader.ReadByte();
     this.SampleDependsOn = (uint) ((num & 12) >> 2);
     this.SampleIsDependedOn = (uint) ((num & 0x30) >> 4);
     this.SampleHasRedundancy = (uint) ((num & 0xc0) >> 6);
 }
        public void Read(BoxReader reader)
        {
            uint num = reader.ReadByte();

            this.SampleDependsOn     = (uint)((num & 12) >> 2);
            this.SampleIsDependedOn  = (uint)((num & 0x30) >> 4);
            this.SampleHasRedundancy = (uint)((num & 0xc0) >> 6);
        }
        public void Read(BoxReader reader, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum)
        {
            if (version == 1)
            {
              ulong tmpTime = reader.ReadUInt64();
            //              if (tmpTime < LastTime) BaseTime = LastTime;
                this.Time = BaseTime + tmpTime;
                this.MoofOffset = reader.ReadUInt64();
                LastTime = Time;
            }
            else
            {
                this.Time = reader.ReadUInt32();
                this.MoofOffset = reader.ReadUInt32();
            }

            switch (((LengthSizeOfTrafNum + 1) * 8))
            {
                case 0x18:
                    this.TrafNumber = reader.ReadUInt24();
                    break;

                case 0x20:
                    this.TrafNumber = reader.ReadUInt32();
                    break;

                case 8:
                    this.TrafNumber = reader.ReadByte();
                    break;

                case 0x10:
                    this.TrafNumber = reader.ReadUInt16();
                    break;
            }

            switch (((LengthSizeOfTrunNum + 1) * 8))
            {
                case 0x18:
                    this.TrunNumber = reader.ReadUInt24();
                    break;

                case 0x20:
                    this.TrunNumber = reader.ReadUInt32();
                    break;

                case 8:
                    this.TrunNumber = reader.ReadByte();
                    break;

                case 0x10:
                    this.TrunNumber = reader.ReadUInt16();
                    break;
            }

            switch (((LengthSizeOfSampleNum + 1) * 8))
            {
                case 8:
                    this.SampleNumber = reader.ReadByte();
                    return;

                case 0x10:
                    this.SampleNumber = reader.ReadUInt16();
                    break;

                case 0x18:
                    this.SampleNumber = reader.ReadUInt24();
                    return;

                case 0x20:
                    this.SampleNumber = reader.ReadUInt32();
                    return;
            }
        }
Esempio n. 4
0
 public override void Read(BoxReader reader)
 {
     base.Read(reader);
     this.version = reader.ReadByte();
     this.flags = (uint) (((reader.ReadByte() << 0x10) | (reader.ReadByte() << 8)) | reader.ReadByte());
 }
Esempio n. 5
0
 public override void Read(BoxReader reader)
 {
     base.Read(reader);
     this.version = reader.ReadByte();
     this.flags   = (uint)(((reader.ReadByte() << 0x10) | (reader.ReadByte() << 8)) | reader.ReadByte());
 }
Esempio n. 6
0
        public void Read(BoxReader reader, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum)
        {
            if (version == 1)
            {
                ulong tmpTime = reader.ReadUInt64();
//              if (tmpTime < LastTime) BaseTime = LastTime;
                this.Time       = BaseTime + tmpTime;
                this.MoofOffset = reader.ReadUInt64();
                LastTime        = Time;
            }
            else
            {
                this.Time       = reader.ReadUInt32();
                this.MoofOffset = reader.ReadUInt32();
            }

            switch (((LengthSizeOfTrafNum + 1) * 8))
            {
            case 0x18:
                this.TrafNumber = reader.ReadUInt24();
                break;

            case 0x20:
                this.TrafNumber = reader.ReadUInt32();
                break;

            case 8:
                this.TrafNumber = reader.ReadByte();
                break;

            case 0x10:
                this.TrafNumber = reader.ReadUInt16();
                break;
            }

            switch (((LengthSizeOfTrunNum + 1) * 8))
            {
            case 0x18:
                this.TrunNumber = reader.ReadUInt24();
                break;

            case 0x20:
                this.TrunNumber = reader.ReadUInt32();
                break;

            case 8:
                this.TrunNumber = reader.ReadByte();
                break;

            case 0x10:
                this.TrunNumber = reader.ReadUInt16();
                break;
            }

            switch (((LengthSizeOfSampleNum + 1) * 8))
            {
            case 8:
                this.SampleNumber = reader.ReadByte();
                return;

            case 0x10:
                this.SampleNumber = reader.ReadUInt16();
                break;

            case 0x18:
                this.SampleNumber = reader.ReadUInt24();
                return;

            case 0x20:
                this.SampleNumber = reader.ReadUInt32();
                return;
            }
        }
        public override void Read(BoxReader reader)
        {
            using (new SizeChecker(this, reader))
              {
              base.Read(reader);
              predefined1 = reader.ReadByte(); // must be 01, configurationVersion
              profileIDC = reader.ReadByte(); // AVCProfileIndication
              constraintFlags = reader.ReadByte(); // profile_compatibility
              levelIDC = reader.ReadByte(); // AVCLevelIndication
              nalUnitLengthSizeByte = reader.ReadByte(); // first 6 bits are reserved and set to 1
              nalUnitLengthSize = (byte)((nalUnitLengthSizeByte & 0x3) + 1); // lengthSizeMinusOne

              seqParamCountByte = reader.ReadByte(); // first 3 bits are reserved and set to 1
              seqParamCount = (byte)(seqParamCountByte & 0x1F); // numOfSequenceParameterSets
              SPS = new SequenceParameterSet[seqParamCount];
              for (int i = 0; i < seqParamCount; i++)
              {
                seqParamLength = reader.ReadUInt16();
                seqParamSetData = new byte[seqParamLength];
                reader.Read(seqParamSetData, 0, seqParamSetData.Length);
                SPS[i] = ParseSPS(seqParamSetData);
              }

              picParamCount = reader.ReadByte();
              PPS = new PictureParameterSet[picParamCount];
              for (int i = 0; i < picParamCount; i++) {
                picParamLength = reader.ReadUInt16();
                picParamSetData = new byte[picParamLength];
                reader.Read(picParamSetData, 0, picParamSetData.Length);
                PPS[i] = ParsePPS(picParamSetData);
              }
              }
        }