Class: MP4::Metadata::Memoize::Stbl::DeltaCalculator
- Inherits:
-
Object
- Object
- MP4::Metadata::Memoize::Stbl::DeltaCalculator
- Defined in:
- lib/mp4/metadata/memoize/stbl/delta_calculator.rb
Instance Method Summary collapse
- #find_delta(sample_number) ⇒ Object
-
#initialize(stts_table) ⇒ DeltaCalculator
constructor
A new instance of DeltaCalculator.
Constructor Details
#initialize(stts_table) ⇒ DeltaCalculator
Returns a new instance of DeltaCalculator.
5 6 7 8 9 10 |
# File 'lib/mp4/metadata/memoize/stbl/delta_calculator.rb', line 5 def initialize(stts_table) @stts_table = stts_table.dup @stts_table_dup = stts_table.dup @samples_processed_count = 0 @cached_delta = nil end |
Instance Method Details
#find_delta(sample_number) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/mp4/metadata/memoize/stbl/delta_calculator.rb', line 12 def find_delta(sample_number) return @cached_delta if sample_number <= @samples_processed_count while (entry = @stts_table.shift) @samples_processed_count += entry.sample_count if sample_number <= @samples_processed_count @cached_delta = entry.fetch(:sample_delta) return @cached_delta end end raise "Delta not found for sample index: #{sample_number}" end |