コード例 #1
0
ファイル: TrackBox.cs プロジェクト: Genteure/GPUCyclops
        public override void Read(BoxReader reader)
        {
            using (new SizeChecker(this, reader)) {
                base.Read(reader);

                TrackHeaderBox.Read(reader);
                while (this.Size > (ulong)(reader.BaseStream.Position - (long)this.Offset))
                {
                    long    pos  = reader.BaseStream.Position;
                    BoxType next = reader.PeekNextBoxType();
                    if (next == BoxTypes.Edts)
                    {
                        EdtsBox = new EdtsBox();
                        EdtsBox.movieTimeScale = movieTimeScale;
                        EdtsBox.Read(reader);
                    }
                    else if (next == BoxTypes.TrackReference)
                    {
                        TrackReferenceBox = new TrackReferenceBox();
                        TrackReferenceBox.Read(reader);
                    }
                    else if (next == BoxTypes.Media)
                    {
                        MediaBox = new MediaBox(this);
                        MediaBox.Read(reader);
                    }
                    else
                    {
                        Box unknown = new Box(BoxTypes.Any);
                        unknown.Read(reader);
                        Debug.WriteLine(string.Format("Unknow box type {0} in Trak box, skipped", next.ToString()));
                    }
                }
            }
        }
コード例 #2
0
ファイル: TrackBox.cs プロジェクト: Genteure/GPUCyclops
 public override void Write(BoxWriter writer)
 {
     using (new SizeCalculator(this, writer))
     {
         base.Write(writer);
         TrackHeaderBox.Write(writer);
         if (EdtsBox != null)
         {
             EdtsBox.Write(writer);
             //this.Size -= EdtsBox.Size;
         }
         MediaBox.Write(writer);
         if (TrackReferenceBox != null)
         {
             TrackReferenceBox.Write(writer);
         }
     }
 }
コード例 #3
0
ファイル: TrackBox.cs プロジェクト: Genteure/GPUCyclops
        public override string ToString()
        {
            StringBuilder xml = new StringBuilder();

            xml.Append(base.ToString());

            xml.Append(TrackHeaderBox.ToString());
            if (MediaBox != null)
            {
                xml.Append(MediaBox.ToString());
            }
            if (TrackReferenceBox != null)
            {
                xml.Append(TrackReferenceBox.ToString());
            }
            if (EdtsBox != null)
            {
                xml.Append(EdtsBox.ToString());
            }
            xml.Append("</box>");
            return(xml.ToString());
        }
コード例 #4
0
ファイル: TrackBox.cs プロジェクト: ctapang/GPUCyclops
        public override void Read(BoxReader reader)
        {
            using (new SizeChecker(this, reader)) {
            base.Read(reader);

            TrackHeaderBox.Read(reader);
            while (this.Size > (ulong)(reader.BaseStream.Position - (long)this.Offset)) {
              long pos = reader.BaseStream.Position;
              BoxType next = reader.PeekNextBoxType();
              if (next == BoxTypes.Edts)
              {
              EdtsBox = new EdtsBox();
              EdtsBox.movieTimeScale = movieTimeScale;
              EdtsBox.Read(reader);
              }
              else if (next == BoxTypes.TrackReference)
              {
              TrackReferenceBox = new TrackReferenceBox();
              TrackReferenceBox.Read(reader);
              }
              else if (next == BoxTypes.Media)
              {
              MediaBox = new MediaBox(this);
              MediaBox.Read(reader);
              }
              else
              {
              Box unknown = new Box(BoxTypes.Any);
              unknown.Read(reader);
              Debug.WriteLine(string.Format("Unknow box type {0} in Trak box, skipped", next.ToString()));
              }
            }
              }
        }