Class: PRbed::BytesParser

Inherits:
Object
  • Object
show all
Defined in:
lib/PRbed.rb

Instance Method Summary collapse

Constructor Details

#initialize(nsamples) ⇒ BytesParser

Returns a new instance of BytesParser.



17
18
19
20
# File 'lib/PRbed.rb', line 17

def initialize(nsamples)
  @nsamples = nsamples
  @bufsize = (@nsamples + 3) & ~3
end

Instance Method Details

#parse(bs) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/PRbed.rb', line 22

def parse(bs)
  a = Array.new(@bufsize, MISSING)
  i = 0
  bs.each_byte do |c|
    a[i    ] =  c & 0b00000011
    a[i + 1] = (c & 0b00001100) >> 2
    a[i + 2] = (c & 0b00110000) >> 4
    a[i + 3] = (c & 0b11000000) >> 6
    i += SAMPLES_PER_BYTE
  end
  a.pop(@bufsize - @nsamples)
  a
end