class BMFF::Box::Base
vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2 autoindent:
Attributes
io[RW]
largesize[RW]
offset[RW]
parent[RW]
size[RW]
type[RW]
usertype[RW]
Public Class Methods
register_box(*boxtypes)
click to toggle source
# File lib/bmff/box/base.rb, line 8 def self.register_box(*boxtypes) boxtypes.each do |boxtype| BMFF::Box::Map.register_box(boxtype, self) end end
register_uuid_box(uuid)
click to toggle source
# File lib/bmff/box/base.rb, line 14 def self.register_uuid_box(uuid) BMFF::Box::Map.register_uuid_box(uuid, self) end
Public Instance Methods
actual_size()
click to toggle source
# File lib/bmff/box/base.rb, line 18 def actual_size return largesize if size == 1 return nil if size == 0 return size end
container?()
click to toggle source
# File lib/bmff/box/base.rb, line 61 def container? false end
eob?()
click to toggle source
end of box?
# File lib/bmff/box/base.rb, line 32 def eob? if actual_size return io.pos >= offset + actual_size else return io.eof? end end
parse()
click to toggle source
# File lib/bmff/box/base.rb, line 48 def parse parse_data if actual_size if io.pos > offset + actual_size raise RangeError, "Given box size is smaller than expected." end end seek_to_end end
parse_data()
click to toggle source
# File lib/bmff/box/base.rb, line 58 def parse_data end
remaining_size()
click to toggle source
# File lib/bmff/box/base.rb, line 24 def remaining_size if actual_size return (offset + actual_size) - io.pos end nil end
root()
click to toggle source
# File lib/bmff/box/base.rb, line 65 def root ancestor = parent ancestor = ancestor.parent while ancestor.respond_to?(:parent) && ancestor.parent ancestor end
seek_to_end()
click to toggle source
# File lib/bmff/box/base.rb, line 40 def seek_to_end if actual_size io.pos = offset + actual_size else io.seek(0, IO::SEEK_END) end end