Example #1
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
                base.Write(writer);
                if (Version == 1)
                {
                    writer.WriteUInt64(creationTime);
                    writer.WriteUInt64(modificationTime);
                    writer.WriteUInt32(TrackID);
                    writer.WriteUInt32((uint)0);
                    writer.WriteUInt64(Duration);
                }
                else
                {
                    writer.WriteUInt32((uint)creationTime);
                    writer.WriteUInt32((uint)modificationTime);
                    writer.WriteUInt32(TrackID);
                    writer.WriteUInt32((uint)0);
                    writer.WriteUInt32((uint)Duration);
                }

                for (int x = 0; x < 2; x++)
                {
                    writer.WriteUInt32((uint)0);
                }
                writer.Write(Layer);
                writer.Write(AlternateGroup);
                writer.Write(_volume);
                writer.Write((UInt16)0);
                this.Matrix.Write(writer);
                writer.Write(_width);
                writer.Write(_height);
            }
        }
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer)) {
                base.Write(writer);

                writer.WriteUInt32(TrackId);
                if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.BaseDataOffsetPresent))
                {
                    writer.WriteUInt64(BaseDataOffset);
                }
                if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.SampleDescriptionIndexPresent))
                {
                    writer.WriteUInt32(SampleDescriptionIndex);
                }
                if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleDurationPresent))
                {
                    writer.WriteUInt32(DefaultSampleDuration);
                }
                if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleSizePresent))
                {
                    writer.WriteUInt32(DefaultSampleSize);
                }
                if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleFlagsPresent))
                {
                    writer.WriteUInt32(DefaultSampleFlags);
                }
            }
        }
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     if (Version == 1)
         writer.WriteUInt64(FragmentDuration);
     else
         writer.WriteUInt32((uint)FragmentDuration);
     }
 }
Example #4
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
                base.Write(writer);

                if (Version == 1)
                {
                    writer.WriteUInt64(creationTime);
                    writer.WriteUInt64(modificationTime);
                    writer.WriteUInt32(TimeScale);
                    writer.WriteUInt64(Duration);
                }
                else
                {
                    writer.WriteUInt32((uint)creationTime);
                    writer.WriteUInt32((uint)modificationTime);
                    writer.WriteUInt32((uint)TimeScale);
                    writer.WriteUInt32((uint)Duration);
                }

                writer.Write(rate[0]);
                writer.Write(rate[1]);
                writer.Write(volume, 0, 2);

                writer.Write((short)0);
                for (int x = 0; x < 2; x++)
                {
                    writer.WriteUInt32((uint)0);
                }
                this.Matrix.Write(writer);
                for (int x = 0; x < 6; x++)
                {
                    writer.WriteUInt32((uint)0);
                }

                writer.WriteUInt32(NextTrackID);
            }
        }
Example #5
0
 public virtual void Write(BoxWriter writer)
 {
     Common.Logger.Instance.Info("[Box::Write] writing a box of type [" + this.Type + ", " + this.GetType().Name + "], size [" + this.Size + "], offset [" + Offset + "], details: " + this.ToString());
     if (this.expectedType == BoxTypes.Any)
     {
         return;
     }
     writer.WriteUInt32(this.size);
     writer.WriteBoxType(expectedType);
     if (this.size == 1)
     {
         writer.WriteUInt64(largeSize);
     }
 }
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         if (Version == 1)
         {
             writer.WriteUInt64(FragmentDuration);
         }
         else
         {
             writer.WriteUInt32((uint)FragmentDuration);
         }
     }
 }
Example #7
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
                base.Write(writer);
                if (Version == 1)
                {
                    writer.WriteUInt64(creationTime);
                    writer.WriteUInt64(modificationTime);
                    writer.WriteUInt32(TimeScale);
                    writer.WriteUInt64(Duration);
                }
                else
                {
                    writer.WriteUInt32((uint)creationTime);
                    writer.WriteUInt32((uint)modificationTime);
                    writer.WriteUInt32(TimeScale);
                    writer.WriteUInt32((uint)Duration);
                }

                writer.Write((Int16)language);
                writer.Write((Int16)0);
            }
        }
        public void Write(BoxWriter writer, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum)
        {
            if (version == 1) {
              ulong tmpTime = Time - BaseTime;
              writer.WriteUInt64(tmpTime);
              writer.WriteUInt64(MoofOffset);
            } else {
              writer.WriteUInt32((uint)Time);
              writer.WriteUInt32((uint)MoofOffset);
            }

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

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

              case 8:
                  //this.TrafNumber = reader.ReadByte();
                  writer.Write((byte)TrafNumber);
                  break;

              case 0x10:
                  //this.TrafNumber = reader.ReadUInt16();
                  writer.WriteUInt16((UInt16)TrafNumber);
                  break;
            }

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

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

              case 8:
                  //this.TrunNumber = reader.ReadByte();
                  writer.Write((byte)TrunNumber);
                  break;

              case 0x10:
                  //this.TrunNumber = reader.ReadUInt16();
                  writer.WriteUInt16((UInt16)TrunNumber);
                  break;
            }

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

              case 0x10:
                  //this.SampleNumber = reader.ReadUInt16();
                  writer.WriteUInt16((UInt16)SampleNumber);
                  break;

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

              case 0x20:
                  //this.SampleNumber = reader.ReadUInt32();
                  writer.WriteUInt32(SampleNumber);
                  return;
            }
        }
Example #9
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
            base.Write(writer);
            if (Version == 1)
            {
                writer.WriteUInt64(creationTime);
                writer.WriteUInt64(modificationTime);
                writer.WriteUInt32(TimeScale);
                writer.WriteUInt64(Duration);
            }
            else
            {
                writer.WriteUInt32((uint)creationTime);
                writer.WriteUInt32((uint)modificationTime);
                writer.WriteUInt32(TimeScale);
                writer.WriteUInt32((uint)Duration);
            }

            writer.Write((Int16)language);
            writer.Write((Int16)0);
            }
        }
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer)) {
            base.Write(writer);

            writer.WriteUInt32(TrackId);
            if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.BaseDataOffsetPresent))
            {
                writer.WriteUInt64(BaseDataOffset);
            }
            if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.SampleDescriptionIndexPresent))
            {
                writer.WriteUInt32(SampleDescriptionIndex);
            }
            if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleDurationPresent)) {
                writer.WriteUInt32(DefaultSampleDuration);
            }
            if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleSizePresent)) {
                writer.WriteUInt32(DefaultSampleSize);
            }
            if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleFlagsPresent)) {
                writer.WriteUInt32(DefaultSampleFlags);
            }
              }
        }
Example #11
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
            base.Write(writer);
            if (Version == 1)
            {
                writer.WriteUInt64(creationTime);
                writer.WriteUInt64(modificationTime);
                writer.WriteUInt32(TrackID);
                writer.WriteUInt32((uint)0);
                writer.WriteUInt64(Duration);
            }
            else
            {
                writer.WriteUInt32((uint)creationTime);
                writer.WriteUInt32((uint)modificationTime);
                writer.WriteUInt32(TrackID);
                writer.WriteUInt32((uint)0);
                writer.WriteUInt32((uint)Duration);
            }

            for (int x = 0; x < 2; x++) writer.WriteUInt32((uint)0);
            writer.Write(Layer);
            writer.Write(AlternateGroup);
            writer.Write(_volume);
            writer.Write((UInt16)0);
            this.Matrix.Write(writer);
            writer.Write(_width);
            writer.Write(_height);
            }
        }
Example #12
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
            base.Write(writer);

            if (Version == 1)
            {
                writer.WriteUInt64(creationTime);
                writer.WriteUInt64(modificationTime);
                writer.WriteUInt32(TimeScale);
                writer.WriteUInt64(Duration);
            }
            else
            {
                writer.WriteUInt32((uint)creationTime);
                writer.WriteUInt32((uint)modificationTime);
                writer.WriteUInt32((uint)TimeScale);
                writer.WriteUInt32((uint)Duration);
            }

            writer.Write(rate[0]);
            writer.Write(rate[1]);
            writer.Write(volume, 0, 2);

            writer.Write((short)0);
            for (int x = 0; x < 2; x++) writer.WriteUInt32((uint)0);
            this.Matrix.Write(writer);
            for (int x = 0; x < 6; x++) writer.WriteUInt32((uint)0);

            writer.WriteUInt32(NextTrackID);
            }
        }
Example #13
0
 public virtual void Write(BoxWriter writer)
 {
     Common.Logger.Instance.Info("[Box::Write] writing a box of type [" + this.Type + ", " + this.GetType().Name + "], size [" + this.Size + "], offset [" + Offset + "], details: " + this.ToString());
       if (this.expectedType == BoxTypes.Any)  return;
       writer.WriteUInt32(this.size);
       writer.WriteBoxType(expectedType);
       if (this.size == 1)
       {
     writer.WriteUInt64(largeSize);
       }
 }
Example #14
0
        public void Write(BoxWriter writer, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum)
        {
            if (version == 1)
            {
                ulong tmpTime = Time - BaseTime;
                writer.WriteUInt64(tmpTime);
                writer.WriteUInt64(MoofOffset);
            }
            else
            {
                writer.WriteUInt32((uint)Time);
                writer.WriteUInt32((uint)MoofOffset);
            }

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

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

            case 8:
                //this.TrafNumber = reader.ReadByte();
                writer.Write((byte)TrafNumber);
                break;

            case 0x10:
                //this.TrafNumber = reader.ReadUInt16();
                writer.WriteUInt16((UInt16)TrafNumber);
                break;
            }

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

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

            case 8:
                //this.TrunNumber = reader.ReadByte();
                writer.Write((byte)TrunNumber);
                break;

            case 0x10:
                //this.TrunNumber = reader.ReadUInt16();
                writer.WriteUInt16((UInt16)TrunNumber);
                break;
            }

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

            case 0x10:
                //this.SampleNumber = reader.ReadUInt16();
                writer.WriteUInt16((UInt16)SampleNumber);
                break;

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

            case 0x20:
                //this.SampleNumber = reader.ReadUInt32();
                writer.WriteUInt32(SampleNumber);
                return;
            }
        }