public void getBox(WritableByteChannel writableByteChannel) throws IOException { ByteBuffer bb = ByteBuffer.allocate(16); long size = getSize(); if (isSmallBox(size)) { IsoTypeWriter.writeUInt32(bb, size); } else { IsoTypeWriter.writeUInt32(bb, 1); } bb.put(IsoFile.fourCCtoBytes("mdat")); if (isSmallBox(size)) { bb.put(new byte[8]); } else { IsoTypeWriter.writeUInt64(bb, size); } bb.rewind(); writableByteChannel.write(bb); if (writableByteChannel instanceof GatheringByteChannel) { List<ByteBuffer> nuSamples = unifyAdjacentBuffers(samples); int STEPSIZE = 1024; for (int i = 0; i < Math.ceil((double) nuSamples.size() / STEPSIZE); i++) { List<ByteBuffer> sublist = nuSamples.subList( i * STEPSIZE, // start (i + 1) * STEPSIZE < nuSamples.size() ? (i + 1) * STEPSIZE : nuSamples.size()); // end ByteBuffer sampleArray[] = sublist.toArray(new ByteBuffer[sublist.size()]); do { ((GatheringByteChannel) writableByteChannel).write(sampleArray); } while (sampleArray[sampleArray.length - 1].remaining() > 0); } // System.err.println(bytesWritten); } else { for (ByteBuffer sample : samples) { sample.rewind(); writableByteChannel.write(sample); } } }
public void getBox(WritableByteChannel writableByteChannel) throws IOException { ByteBuffer bb = ByteBuffer.allocate(16); long size = getSize(); if (isSmallBox(size)) { IsoTypeWriter.writeUInt32(bb, size); } else { IsoTypeWriter.writeUInt32(bb, 1); } bb.put(IsoFile.fourCCtoBytes("mdat")); if (isSmallBox(size)) { bb.put(new byte[8]); } else { IsoTypeWriter.writeUInt64(bb, size); } bb.rewind(); writableByteChannel.write(bb); for (List<Sample> samples : chunkList) { for (Sample sample : samples) { sample.writeTo(writableByteChannel); } } }
public TitleBox() { super(IsoFile.fourCCtoBytes(TYPE)); }
public AppleDataReferenceBox() { super(IsoFile.fourCCtoBytes(TYPE)); }
protected void getContent(IsoOutputStream isos) throws IOException { isos.write(IsoFile.fourCCtoBytes(classificationEntity)); isos.writeUInt16(classificationTableIndex); isos.writeIso639(language); isos.writeStringZeroTerm(classificationInfo); }
public ClassificationBox() { super(IsoFile.fourCCtoBytes(TYPE)); }
public MutableDrmInformationBox() { super(IsoFile.fourCCtoBytes(TYPE)); }
public TrackFragmentRandomAccessBox() { super(IsoFile.fourCCtoBytes(TYPE)); }
public AppleLosslessSpecificBox() { super(IsoFile.fourCCtoBytes("alac")); }