Module: MP4::Metadata::Memoize::Stbl::Chunks
- Defined in:
- lib/mp4/metadata/memoize/stbl/chunks.rb
Class Method Summary collapse
Class Method Details
.call(track_id, cache, stco, stsc) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/mp4/metadata/memoize/stbl/chunks.rb', line 7 def call(track_id, cache, stco, stsc) each_chunk(stsc, stco) do |chunk_index, samples_per_chunk, offset, description_index, sample_counter| cache.add_chunk( track_id: track_id, chunk_index: chunk_index, samples_per_chunk: samples_per_chunk, sample_counter: sample_counter, description_index: description_index, offset: offset, ) end end |
.each_chunk(stsc, stco) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mp4/metadata/memoize/stbl/chunks.rb', line 20 def each_chunk(stsc, stco) sample_counter = 0 stsc.chunk_count.times do |i| first_chunk = stsc.table[i].first_chunk.to_i samples_per_chunk = stsc.table[i].samples_per_chunk.to_i description_index = stsc.table[i].sample_description_index.to_i last_chunk = i.next < stsc.chunk_count ? stsc.table[i.next].first_chunk - 1 : stco.chunks_count (first_chunk..last_chunk).each do |chunk_index| sample_counter += samples_per_chunk yield( chunk_index, samples_per_chunk, stco.offsets[chunk_index.pred].to_i, description_index, sample_counter ) end end end |