class BMFF::Box::CompactSampleSize

vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2 autoindent:

Attributes

entry_size[RW]
field_size[RW]
reserved1[RW]
sample_count[RW]

Public Instance Methods

parse_data() click to toggle source
Calls superclass method BMFF::Box::Full#parse_data
# File lib/bmff/box/compact_sample_size.rb, line 8
def parse_data
  super
  @reserved1 = io.get_uint24
  @field_size = io.get_uint8
  @sample_count = io.get_uint32
  @entry_size = []
  i = 0
  while i < @sample_count
    case @field_size
    when 4
      tmp = io.get_uint8
      @entry_size << (tmp >> 4)
      i += 1
      @entry_size << (tmp & 0x0F) if i < @sample_count
    when 8
      @entry_size << io.get_uint8
    when 16
      @entry_size << io.get_uint16
    else
      raise ArgumentError, "Unsupported field_size"
    end
    i += 1
  end
end