Class: MP4::Metadata::Memoize::Stbl::CompositionOffsetCalculator
- Inherits:
-
Object
- Object
- MP4::Metadata::Memoize::Stbl::CompositionOffsetCalculator
- Defined in:
- lib/mp4/metadata/memoize/stbl/composition_offset_calculator.rb
Instance Method Summary collapse
- #find_composition_offset(sample_number) ⇒ Object
-
#initialize(ctts_table) ⇒ CompositionOffsetCalculator
constructor
A new instance of CompositionOffsetCalculator.
Constructor Details
#initialize(ctts_table) ⇒ CompositionOffsetCalculator
Returns a new instance of CompositionOffsetCalculator.
5 6 7 8 9 10 |
# File 'lib/mp4/metadata/memoize/stbl/composition_offset_calculator.rb', line 5 def initialize(ctts_table) @ctts_table = ctts_table.dup @ctts_table_dup = ctts_table.dup @cached_total_samples = 0 @cached_composition_offset = nil end |
Instance Method Details
#find_composition_offset(sample_number) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mp4/metadata/memoize/stbl/composition_offset_calculator.rb', line 12 def find_composition_offset(sample_number) return nil if @ctts_table.nil? return @cached_composition_offset if sample_number <= @cached_total_samples while (entry = @ctts_table.shift) @cached_total_samples += entry.sample_count if sample_number <= @cached_total_samples @cached_composition_offset = entry.fetch(:composition_offset) return @cached_composition_offset end end raise "Sample Composition offset not found for sample index: #{sample_number}" end |