Class: Ogg::Codecs::Opus
- Inherits:
-
Object
- Object
- Ogg::Codecs::Opus
- Extended by:
- VorbisComments
- Defined in:
- lib/ogg/codecs/opus.rb
Class Method Summary collapse
-
.decode_headers(reader) ⇒ Object
consume header and tag pages, return array of two hashes, info and tags.
- .extract_info(packet) ⇒ Object
-
.match?(header_packet) ⇒ Boolean
return true/false based on whether the header packet belongs to us.
-
.replace_tags(reader, writer, new_tags, vendor) ⇒ Object
consume pages with old tags/setup packets and rewrite newtags,setup packets return the number of pages written.
Methods included from VorbisComments
binary_size, pack_comments, unpack_comments
Class Method Details
.decode_headers(reader) ⇒ Object
consume header and tag pages, return array of two hashes, info and tags
11 12 13 14 15 16 |
# File 'lib/ogg/codecs/opus.rb', line 11 def decode_headers(reader) init_pkt, tag_pkt = reader.read_packets(2) # init_pkt, tag_pkt info = extract_info(init_pkt) info[:tag], info[:tag_vendor] = unpack_comments(tag_pkt, "OpusTags") info end |
.extract_info(packet) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ogg/codecs/opus.rb', line 25 def extract_info(packet) _, # opus magic signature _, # opus_version, channels, _, # pre skip _, # samplerate, _, # output gain _ = packet.unpack("a8CCvVvC") # channel map return { :channels => channels, :samplerate => 48000 } end |
.match?(header_packet) ⇒ Boolean
return true/false based on whether the header packet belongs to us
6 7 8 |
# File 'lib/ogg/codecs/opus.rb', line 6 def match?(header_packet) header_packet.start_with?("OpusHead") end |
.replace_tags(reader, writer, new_tags, vendor) ⇒ Object
consume pages with old tags/setup packets and rewrite newtags,setup packets return the number of pages written
20 21 22 23 |
# File 'lib/ogg/codecs/opus.rb', line 20 def (reader, writer, , vendor) _ = reader.read_packets(1) # tag_packet writer.write_packets(0, pack_comments(, vendor, "OpusTags")) end |