public void calculateMd5Checksum() throws IOException { this.in.seek(this.getDataPointer()); this.setCalculatedMd5(this.calculateMd5Checksum(this.in, this.getChunkSize())); }
public RcRiffDataChunk() { super(); this.setChunkId(RcRiffBwf.RC_RIFF_DATA_CHUNK_ID); }
@Override public long read(RandomAccessFile in, long ptr, long chunkSize) throws IOException { this.setPtr(ptr); this.setChunkSize(chunkSize); this.setDataInput(in); this.setDataPointer(this.in.getFilePointer()); this.in.seek(this.in.getFilePointer() + this.getChunkSize()); return this.getChunkSize(); }
@Override public long write(RandomAccessFile out) throws IOException, RcBwfException { // Write chunk id and chunk size long chunkHeaderSize = super.write(out); in.seek(this.getDataPointer()); byte buffer[] = new byte[1024]; int count; long bytesLeft = this.getChunkSize(); while (bytesLeft > 0) { count = this.in.read(buffer, 0, (int) Math.min((long) buffer.length, bytesLeft)); bytesLeft -= count; out.write(buffer, 0, count); } return chunkHeaderSize + this.getChunkSize(); }
public static RcAudioMd getRcAudioMd(RcRiffBwf rcRiffBwf) throws DatatypeConfigurationException { byte md5Bytes[] = rcRiffBwf.getRcRiffDataChunk().getCalculatedMd5(); String md5Hex = RcRiffMd5Chunk.bigEndianByteArrayToHexString(md5Bytes); String md5DateTime = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()).toXMLFormat(); rcAudioMdFileData.setFirstSampleOffsetElement((int) rcRiffBwf.getRcRiffDataChunk().getDataPointer()); long dataSize = rcRiffBwf.getRcRiffDataChunk().getChunkSize(); long blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); long channels = rcRiffBwf.getRcRiffFmtChunk().getChannels();
public long getDataSize() { return this.rcRiffDataChunk.getChunkSize(); }
public RandomAccessFile getData() throws IOException { this.in.seek(this.rcRiffDataChunk.getDataPointer()); return this.in; }
public void storeMd5() throws IOException { if (this.getRcRiffMd5Chunk() == null) { this.setRcRiffMd5Chunk(new RcRiffMd5Chunk()); } this.getRcRiffDataChunk().calculateMd5Checksum(); this.getRcRiffMd5Chunk().setStoredMd5( this.getRcRiffDataChunk().getCalculatedMd5()); } }
RcRiffDataChunk rcRiffDataChunk = new RcRiffDataChunk(); riffBytesRead += rcRiffDataChunk.read(this.in, ptr, chunkSize);
rcAudioFileMd.setFirstSampleOffset((int) rcRiffBwf.getRcRiffDataChunk().getDataPointer()); long dataSize = rcRiffBwf.getRcRiffDataChunk().getChunkSize(); int blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); int channels = rcRiffBwf.getRcRiffFmtChunk().getChannels();
public XMLGregorianCalendar getXmlDuration() throws DatatypeConfigurationException { long dataSize = this.getRcRiffDataChunk().getChunkSize(); long blockSize = this.getRcRiffFmtChunk().getBlockAlign(); long numSampleFrames = dataSize / blockSize; long samplesPerSec = this.getRcRiffFmtChunk().getSamplesPerSec(); long ms = (long) (numSampleFrames / (samplesPerSec / 1000D)); int hours = (int) (ms / (60 * 60 * 1000)); ms -= hours * 60 * 60 * 1000; int min = (int) (ms / (60 * 1000)); ms -= min * 60 * 1000; int sec = (int) (ms / 1000); ms -= sec * 1000; XMLGregorianCalendar duration = DatatypeFactory.newInstance().newXMLGregorianCalendarTime(hours, min, sec, (int) ms, DatatypeConstants.FIELD_UNDEFINED); return duration; }
rcRiffDataChunk.calculateMd5Checksum(); byte md5Bytes[] = rcRiffDataChunk.getCalculatedMd5(); String md5Hex = RcRiffMd5Chunk.bigEndianByteArrayToHexString(md5Bytes);
rcAudioFileMd.setFirstSampleOffset((int) rcRiffBwf.getRcRiffDataChunk().getDataPointer()); long dataSize = rcRiffBwf.getRcRiffDataChunk().getChunkSize(); int blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); int channels = rcRiffBwf.getRcRiffFmtChunk().getChannels();
rcRiffBwf.getRcRiffFmtChunk().getBitsPerSample(), rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(), (rcRiffBwf.getRcRiffDataChunk().getChunkSize() / rcRiffBwf.getRcRiffFmtChunk().getBlockAlign()) / (rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec() / 1000), observer, objIdx,
rcRiffBwf.getRcRiffFmtChunk().getBitsPerSample(), rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(), (rcRiffBwf.getRcRiffDataChunk().getChunkSize() / rcRiffBwf.getRcRiffFmtChunk().getBlockAlign()) / (rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec() / 1000), observer, objIndex,