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