class WahWah::Ogg::Page

  1. segment_table: number_page_segments Bytes containing the lacing values of all segments in this page. Each Byte contains one lacing value.

Constants

HEADER_FORMAT
HEADER_SIZE

Attributes

granule_position[R]
segments[R]

Public Class Methods

new(file_io) click to toggle source
# File lib/wahwah/ogg/page.rb, line 106
def initialize(file_io)
  header_content = file_io.read(HEADER_SIZE)
  @capture_pattern, @version, @granule_position, page_segments = header_content.unpack(HEADER_FORMAT) if header_content.size >= HEADER_SIZE

  return unless valid?

  segment_table = file_io.read(page_segments).unpack('C' * page_segments)
  @segments = segment_table.map { |segment_length| file_io.read(segment_length) }
end

Public Instance Methods

valid?() click to toggle source
# File lib/wahwah/ogg/page.rb, line 116
def valid?
  @capture_pattern == 'OggS' && @version == 0
end