Object
Writes pages or packets to an output io
# File lib/ogg/writer.rb, line 23 def write_packets(granule_pos, *packets) written_pages_count = 1 page = Page.new(@bitstream_serial_no, granule_pos) packets.each do |packet| io = StringIO.new(packet) while !io.eof? do page.segments << io.read(255) if (page.segments.length == 255) page.granule_pos = -1 write_page(page) page = Page.new(@bitstream_serial_no, granule_pos) written_pages_count += 1 end end #If our packet was an exact multiple of 255 we need to put in an empty closing segment if (page.segments.length == 0 || page.segments.last.length == 255) page.segments << "" end end #we always need to flush the final page. write_page(page) written_pages_count end
Generated with the Darkfish Rdoc Generator 2.