class Ogg::Codecs::Vorbis
Public Class Methods
decode_headers(reader)
click to toggle source
consume header and tag pages, return array of two hashes, info and tags
# File lib/ogg/codecs/vorbis.rb, line 11 def decode_headers(reader) init_pkt, tag_pkt, _ = reader.read_packets(3) # init_pkt, tag_pkt, setup_pkt info = extract_info(init_pkt) info[:tag], info[:tag_vendor] = unpack_comments(tag_pkt, "\003vorbis") info end
extract_info(packet)
click to toggle source
# File lib/ogg/codecs/vorbis.rb, line 25 def extract_info(packet) _, #vorbis_string, _, # vorbis_version, channels, samplerate, upper_bitrate, nominal_bitrate, lower_bitrate = packet.unpack("a7VCV4") if nominal_bitrate == 0 if (upper_bitrate == 2**32 - 1) || (lower_bitrate == 2**32 - 1) nominal_bitrate = 0 else nominal_bitrate = ( upper_bitrate + lower_bitrate) / 2 end end return { :channels => channels, :samplerate => samplerate, :nominal_bitrate => nominal_bitrate } end
match?(header_packet)
click to toggle source
return true/false based on whether the header packet belongs to us
# File lib/ogg/codecs/vorbis.rb, line 6 def match?(header_packet) header_packet.start_with?("\001vorbis") end