コード例 #1
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer)) {
         base.Write(writer);
         writer.Write(UserType);
         writer.Write(UserData);
     }
 }
コード例 #2
0
ファイル: UserUniqueIDBox.cs プロジェクト: ctapang/GPUCyclops
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer)) {
     base.Write(writer);
                 writer.Write(UserType);
                 writer.Write(UserData);
             }
 }
コード例 #3
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write((short)Balance);
     writer.Write((short)0);
     }
 }
コード例 #4
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write((short)Balance);
         writer.Write((short)0);
     }
 }
コード例 #5
0
ファイル: FullBox.cs プロジェクト: ctapang/GPUCyclops
 public override void Write(BoxWriter writer)
 {
     base.Write(writer);
       writer.Write(version);
       byte a = (byte)((flags >> 0x16) & 0xFF);
       byte b = (byte)((flags >> 0x08) & 0xFF);
       byte c = (byte)((flags) & 0xFF);
       writer.Write(a);
       writer.Write(b);
       writer.Write(c);
 }
コード例 #6
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write(MaxPDUSize);
         writer.Write(AvgPDUSize);
         writer.Write(MaxBitrate);
         writer.Write(AvgBitrate);
         writer.Write((short)0);
     }
 }
コード例 #7
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write(MaxPDUSize);
         writer.Write(AvgPDUSize);
         writer.Write(MaxBitrate);
         writer.Write(AvgBitrate);
         writer.Write((short)0);
     }
 }
コード例 #8
0
        public override void Write(BoxWriter writer)
        {
            base.Write(writer);
            writer.Write(version);
            byte a = (byte)((flags >> 0x16) & 0xFF);
            byte b = (byte)((flags >> 0x08) & 0xFF);
            byte c = (byte)((flags) & 0xFF);

            writer.Write(a);
            writer.Write(b);
            writer.Write(c);
        }
コード例 #9
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write((Int32)0);
         writer.Write(handler_type, 0, 4);
         for (int i = 0; i < 3; i++)
         {
             writer.Write((Int32)0);
         }
         writer.WriteNullTerminatedString(Name);
     }
 }
コード例 #10
0
 public void Write(BoxWriter writer)
 {
     if ((SampleDependsOn > 3) || (SampleIsDependedOn > 3) || (SampleHasRedundancy > 3))
     throw new Exception("Invalid sdtp box value.");
       byte data = (byte)((SampleHasRedundancy << 6) | (SampleIsDependedOn << 4) | (SampleDependsOn << 2));
       writer.Write(data);
 }
コード例 #11
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write(_contents, 0, _contents.Length);
     }
 }
コード例 #12
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
     base.Write(writer);
     writer.Write(_contents, 0, _contents.Length);
       }
 }
コード例 #13
0
ファイル: FreeBox.cs プロジェクト: ctapang/GPUCyclops
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
     base.Write(writer);
     if (data != null)
       writer.Write(data, 0, data.Length);
       }
 }
コード例 #14
0
        public void Write(BoxWriter writer)
        {
            if ((SampleDependsOn > 3) || (SampleIsDependedOn > 3) || (SampleHasRedundancy > 3))
            {
                throw new Exception("Invalid sdtp box value.");
            }
            byte data = (byte)((SampleHasRedundancy << 6) | (SampleIsDependedOn << 4) | (SampleDependsOn << 2));

            writer.Write(data);
        }
コード例 #15
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         for (int i = 0; i < trackID.Length; i++)
         {
             writer.Write(trackID[i]);
         }
     }
 }
コード例 #16
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         for (int i = 0; i < trackID.Length; i++)
         {
             writer.Write(trackID[i]);
         }
     }
 }
コード例 #17
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         if (data != null)
         {
             writer.Write(data, 0, data.Length);
         }
     }
 }
コード例 #18
0
ファイル: TrackHeaderBox.cs プロジェクト: Genteure/GPUCyclops
        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);
            }
        }
コード例 #19
0
ファイル: MovieHeaderBox.cs プロジェクト: Genteure/GPUCyclops
        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);
            }
        }
コード例 #20
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer)) {
                base.Write(writer);

                writer.Write(major_brand);
                writer.WriteUInt32(minor_version);
                foreach (uint brand in compatible_brands)
                {
                    writer.WriteUInt32(brand);
                }
            }
        }
コード例 #21
0
ファイル: MediaHeaderBox.cs プロジェクト: Genteure/GPUCyclops
        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);
            }
        }
コード例 #22
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         writer.Write(entryCount);
         for (int i = 0; i < entryCount; i++)
         {
             if (Version == 0)
             {
                 writer.Write((uint)editList[i].segmentDuration);
                 writer.Write((int)editList[i].mediaTime);
             }
             else // must be 1
             {
                 writer.Write(editList[i].segmentDuration);
                 writer.Write(editList[i].mediaTime);
             }
             writer.Write(editList[i].mediaRateInteger);
             writer.Write(editList[i].mediaRateFraction);
         }
     }
 }
コード例 #23
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;
            }
        }
コード例 #24
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write((Int32)0);
     writer.Write(handler_type, 0, 4);
     for (int i = 0; i < 3; i++) writer.Write((Int32)0);
     writer.WriteNullTerminatedString(Name);
     }
 }
コード例 #25
0
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer))
            {
            base.Write(writer);
            writer.Write((UInt16)0);
            writer.Write((UInt16)0);
            writer.Write((UInt32)0);
            writer.Write((UInt32)0);
            writer.Write((UInt32)0);

            writer.Write(Width);
            writer.Write(Height);
            writer.Write(HorizResolution);
            writer.Write(VertResolution);
            writer.Write((UInt32)0);
            writer.Write(FrameCount);
            writer.Write((ushort)CompressorName.Length);
            int padding = 30 - CompressorName.Length;
            writer.Write(CompressorName.ToCharArray());
            writer.Write(new char[padding]);
            writer.Write(Depth);
            writer.Write((UInt16)0xFFFF);
            if (CleanApertureBox != null)
                CleanApertureBox.Write(writer);
            if (PixelAspectRatioBox != null)
              PixelAspectRatioBox.Write(writer);
            if (AvcCBox != null)
            {
              AvcCBox.Write(writer);
              if (Uuid != null)
                Uuid.Write(writer);
            }
            if (PrivDataFullBox != null)
                PrivDataFullBox.Write(writer);
            if (PrivDataBox != null)
                PrivDataBox.Write(writer);
            }
        }
コード例 #26
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write(allStrings);
     if (bitRateBox != null)
         bitRateBox.Write(writer);
     }
 }
コード例 #27
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
       base.Write(writer);
       writer.Write(codecPrivateData, 0, codecPrivateData.Length);
       }
 }
コード例 #28
0
 public override void Write(BoxWriter writer)
 {
     //using (new SizeCalculator(this, writer))
     //{
     base.Write(writer);
     writer.Write(new byte[6]);
     writer.Write(DataReferenceIndex);
     //}
 }
コード例 #29
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write((UInt32)0);
     writer.Write((UInt32)0);
     writer.Write(ChannelCount);
     writer.Write(SampleSize);
     writer.Write(PreDefined);
     writer.Write((UInt16)0);
     writer.Write(SampleRate << 16);
     if (PrivDataFullBox != null)
         PrivDataFullBox.Write(writer);
     if (PrivDataBox != null)
         PrivDataBox.Write(writer);
     }
 }
コード例 #30
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;
            }
        }
コード例 #31
0
ファイル: FileTypeBox.cs プロジェクト: ctapang/GPUCyclops
        public override void Write(BoxWriter writer)
        {
            using (new SizeCalculator(this, writer)) {
            base.Write(writer);

            writer.Write(major_brand);
            writer.WriteUInt32(minor_version);
            foreach (uint brand in compatible_brands) {
              writer.WriteUInt32(brand);
            }
              }
        }
コード例 #32
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
       base.Write(writer);
       writer.Write(predefined1);
       writer.Write(profileIDC);
       writer.Write(constraintFlags);
       writer.Write(levelIDC);
       writer.Write(nalUnitLengthSizeByte);
       writer.Write(seqParamCountByte);
       writer.Write(seqParamLength);
       if (seqParamLength > 0)
       {
         writer.Write(seqParamSetData, 0, seqParamSetData.Length);
       }
       writer.Write(picParamCount);
       writer.Write(picParamLength);
       if (picParamLength > 0)
       {
         writer.Write(picParamSetData, 0, picParamSetData.Length);
       }
       }
 }
コード例 #33
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write(bufferSizeDB);
     writer.Write(maxBitrate);
     writer.Write(avgBitrate);
     }
 }
コード例 #34
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write(allStrings); // FIXME: this is not correct (it appears this should be done in derived class)
     }
 }
コード例 #35
0
ファイル: TrackHeaderBox.cs プロジェクト: ctapang/GPUCyclops
        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);
            }
        }
コード例 #36
0
ファイル: MovieHeaderBox.cs プロジェクト: ctapang/GPUCyclops
        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);
            }
        }
コード例 #37
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
     base.Write(writer);
     writer.Write(UserType.GetBytes(), 0, 16);
     writer.Write(Contents, 0, Contents.Length);
       }
 }
コード例 #38
0
ファイル: EdtsBox.cs プロジェクト: ctapang/GPUCyclops
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
       {
     base.Write(writer);
     writer.Write(entryCount);
     for (int i = 0; i < entryCount; i++)
     {
       if (Version == 0)
       {
     writer.Write((uint)editList[i].segmentDuration);
     writer.Write((int)editList[i].mediaTime);
       }
       else // must be 1
       {
     writer.Write(editList[i].segmentDuration);
     writer.Write(editList[i].mediaTime);
       }
       writer.Write(editList[i].mediaRateInteger);
       writer.Write(editList[i].mediaRateFraction);
     }
       }
 }
コード例 #39
0
ファイル: MediaHeaderBox.cs プロジェクト: ctapang/GPUCyclops
        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);
            }
        }
コード例 #40
0
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
     base.Write(writer);
     writer.Write(EntryCount);
     foreach (SampleEntry entry in Entries)
         entry.Write(writer);
     }
 }