Sha256: 3eedc0911ae423a5ea345033ff16b7f4f9dbf698bbc4de7546059a33c33739b7

Contents?: true

Size: 640 Bytes

Versions: 5

Compression:

Stored size: 640 Bytes

Contents

require_relative '../../../helpers/sized_field'

module FileData
  # Parser for the 'keys' box
  class KeysBoxParser
    def self.parse(view)
      view.read_value(1) # version field
      view.read_value(3) # flags field

      entry_count = view.read_value(4)
      Array.new(entry_count) { |index| parse_key(view, index) }
    end

    def self.parse_key(view, index)
      key_view = Helpers::SizedField.create_view(view, 4)
      namespace = key_view.read_ascii(4)
      value = key_view.read_ascii(key_view.remaining_bytes)

      Key.new(index + 1, namespace, value)
    end
  end

  Key = Struct.new(:index, :namespace, :value)
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/keys_box.rb
file_data-5.2.3 lib/file_data/formats/mpeg4/box_parsers/keys_box.rb
file_data-5.2.2 lib/file_data/formats/mpeg4/box_parsers/keys_box.rb
file_data-5.2.1 lib/file_data/formats/mpeg4/box_parsers/keys_box.rb
file_data-5.2.0 lib/file_data/formats/mpeg4/box_parsers/keys_box.rb