class BMFF::Box::TrackFragmentRandomAccess
vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2 autoindent:
Attributes
length_size_of_sample_num[RW]
length_size_of_traf_num[RW]
length_size_of_trun_num[RW]
moof_offset[RW]
number_of_entry[RW]
reserved1[RW]
sample_number[RW]
time[RW]
track_id[RW]
traf_number[RW]
trun_number[RW]
Public Instance Methods
parse_data()
click to toggle source
Calls superclass method
BMFF::Box::Full#parse_data
# File lib/bmff/box/track_fragment_random_access.rb, line 10 def parse_data super @track_id = io.get_uint32 tmp = io.get_uint32 @reserved1 = (tmp >> 6) @length_size_of_traf_num = (tmp >> 4) & 0x03 @length_size_of_trun_num = (tmp >> 2) & 0x03 @length_size_of_sample_num = (tmp & 0x03) @number_of_entry = io.get_uint32 @time = [] @moof_offset = [] @traf_number = [] @trun_number = [] @sample_number = [] @number_of_entry.times do if version == 1 @time << io.get_uint64 @moof_offset << io.get_uint64 else @time << io.get_uint32 @moof_offset << io.get_uint32 end @traf_number << get_variable_size_uint((@length_size_of_traf_num + 1) * 8) @trun_number << get_variable_size_uint((@length_size_of_trun_num + 1) * 8) @sample_number << get_variable_size_uint((@length_size_of_sample_num + 1) * 8) end end
Private Instance Methods
get_variable_size_uint(size)
click to toggle source
# File lib/bmff/box/track_fragment_random_access.rb, line 38 def get_variable_size_uint(size) case size when 8 io.get_uint8 when 16 io.get_uint16 when 24 io.get_uint24 when 32 io.get_uint32 else raise ArgumentError, "Unsupported field size." end end