Sha256: cf540499deb3e69bd1b7fb6a966187372cbf6ac440eacc239e4264c50a293a4e

Contents?: true

Size: 698 Bytes

Versions: 5

Compression:

Stored size: 698 Bytes

Contents

require_relative '../boxes_reader'
require_relative '../../../helpers/stream_view'
require_relative 'ilst_data_box'

module FileData
  # Parsers for the 'ilst' box
  class IlstBoxParser
    def self.parse(view)
      size = view.read_value(4)
      index = view.read_value(4)

      db = find_data_box(view, size)
      data_box = db.nil? ? nil : IlstDataBoxParser.parse(db)

      IlstBox.new(index, data_box)
    end

    def self.find_data_box(parent_view, parent_size)
      view = Helpers::SubStreamView.new(parent_view.stream, parent_view.stream.pos, parent_size - 8)
      BoxesReader.read(view).find { |box| box.type == 'data' }
    end
  end

  IlstBox = Struct.new(:index, :data_box)
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
file_data-6.0.0 lib/file_data/formats/mpeg4/box_parsers/ilst_box.rb
file_data-5.2.3 lib/file_data/formats/mpeg4/box_parsers/ilst_box.rb
file_data-5.2.2 lib/file_data/formats/mpeg4/box_parsers/ilst_box.rb
file_data-5.2.1 lib/file_data/formats/mpeg4/box_parsers/ilst_box.rb
file_data-5.2.0 lib/file_data/formats/mpeg4/box_parsers/ilst_box.rb