private static long[] copy(OggFile in, OggFile out) throws IOException {
		OggPacketReader r = in.getPacketReader();
		
		ArrayList<Long> copyCRCs = new ArrayList<Long>();
		
		OggPacket p = null;
		OggPacket pp = null;
		OggPacketWriter w = null;
		while( (p = r.getNextPacket()) != null ) {
			if(w == null) {
				w = out.getPacketWriter(p.getSid());
				copyCRCs.add(p._getParent().getChecksum());
			}
			
			if(pp != null && pp.getSequenceNumber() != p.getSequenceNumber()) {
				w.flush();
				copyCRCs.add(p._getParent().getChecksum());
			}
			
			long oldGranule = p.getGranulePosition();
			w.bufferPacket(p);
			w.setGranulePosition(oldGranule);
			
			pp = p;
		}
		
		w.close();
		out.close();
		
		// Grab the checksums
		long[] ret = new long[copyCRCs.size()];
		for(int i=0; i<ret.length; i++) {
			ret[i] = copyCRCs.get(i);
		}
		return ret;
	}