File: IsoSampleEntry.cs

package info (click to toggle)
banshee 0.11.2%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 11,976 kB
  • ctags: 9,958
  • sloc: cs: 54,529; xml: 21,240; sh: 8,835; ansic: 2,040; makefile: 1,248
file content (66 lines) | stat: -rw-r--r-- 2,844 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
namespace TagLib.Mpeg4
{
   public class IsoSampleEntry : Box
   {
      //////////////////////////////////////////////////////////////////////////
      // private properties
      //////////////////////////////////////////////////////////////////////////
      private ushort data_reference_index;
      
      
      //////////////////////////////////////////////////////////////////////////
      // public methods
      //////////////////////////////////////////////////////////////////////////
      public IsoSampleEntry (BoxHeader header, Box parent) : base (header, parent)
      {
         File.Seek (base.DataPosition + 6);
         data_reference_index   = (ushort) File.ReadBlock (2).ToShort ();
      }
      
      
      //////////////////////////////////////////////////////////////////////////
      // public properties
      //////////////////////////////////////////////////////////////////////////
      public             ushort DataReferenceIndex {get {return data_reference_index;}}
      protected override long   DataPosition       {get {return base.DataPosition + 8;}}
      protected override ulong  DataSize           {get {return base.DataSize - 8;}}
   }
   
   // Audio Sequences
   public class IsoAudioSampleEntry : IsoSampleEntry
   {
      //////////////////////////////////////////////////////////////////////////
      // private properties
      //////////////////////////////////////////////////////////////////////////
      private ushort channel_count;
      private ushort sample_size;
      private uint   sample_rate;
      
      
      //////////////////////////////////////////////////////////////////////////
      // public methods
      //////////////////////////////////////////////////////////////////////////
      public IsoAudioSampleEntry (BoxHeader header, Box parent) : base (header, parent)
      {
         File.Seek (base.DataPosition + 8);
         channel_count = (ushort) File.ReadBlock (2).ToShort ();
         sample_size   = (ushort) File.ReadBlock (2).ToShort ();
         
         File.Seek (base.DataPosition + 16);
         sample_rate   = (uint)   File.ReadBlock (4).ToUInt  ();
      }
      
      
      //////////////////////////////////////////////////////////////////////////
      // public properties
      //////////////////////////////////////////////////////////////////////////
      public             ushort ChannelCount {get {return channel_count;}}
      public             ushort SampleSize   {get {return sample_size;}}
      public             uint   SampleRate   {get {return sample_rate >> 16;}}
      
      public    override bool   HasChildren  {get {return true;}}
      
      protected override long   DataPosition {get {return base.DataPosition + 20;}}
      protected override ulong  DataSize     {get {return base.DataSize - 20;}}
   }
}