# 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