code: public void setGranulePosition(long position) {
          currentGranulePosition = position;
          for(OggPage p : buffer) {
              p.setGranulePosition(position);
          }
      }
docs: Sets the current granule position.
  The granule position will be applied to all
  un-flushed packets, and all future packets.
  As such, you should normally either call a flush
  just before or just after this call.