Class: Ogg::Codecs::Speex
- Inherits:
-
Object
- Object
- Ogg::Codecs::Speex
- Extended by:
- VorbisComments
- Defined in:
- lib/ogg/codecs/speex.rb
Class Method Summary collapse
- .decode_headers(reader) ⇒ Object
- .extract_info(info_packet) ⇒ Object
- .match?(header_packet) ⇒ Boolean
- .replace_tags(reader, writer, new_tags, vendor) ⇒ Object
Methods included from VorbisComments
binary_size, pack_comments, unpack_comments
Class Method Details
.decode_headers(reader) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/ogg/codecs/speex.rb', line 10 def decode_headers(reader) init_packet, tag_packet = reader.read_packets(2) info = extract_info(init_packet) info[:tag], info[:tag_vendor] = unpack_comments(tag_packet) return info end |
.extract_info(info_packet) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/ogg/codecs/speex.rb', line 22 def extract_info(info_packet) _, #speex_string, _, #speex_version, _, #speex_version_id, _, #header_size, samplerate, _, #mode, _, #mode_bitstream_version, channels, nominal_bitrate, #framesize, vbr _, _ = info_packet.unpack("A8A20VVVVVVVVV") #not sure how to make sense of the bitrate info,picard doesn't show it either... return { :channels => channels, :samplerate => samplerate, :nominal_bitrate => nominal_bitrate } end |
.match?(header_packet) ⇒ Boolean
6 7 8 |
# File 'lib/ogg/codecs/speex.rb', line 6 def match?(header_packet) header_packet.start_with?("Speex") end |
.replace_tags(reader, writer, new_tags, vendor) ⇒ Object
17 18 19 20 |
# File 'lib/ogg/codecs/speex.rb', line 17 def (reader, writer, , vendor) _ = reader.read_packets(1) # tag_packet writer.write_packets(0, pack_comments(, vendor)) end |