public void writeBool(boolean b) { writeBits(b ? 1 : 0, 1); }
@Override protected void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(fscod, 2); bwb.writeBits(bsid, 5); bwb.writeBits(bsmod, 3); bwb.writeBits(acmod, 3); bwb.writeBits(lfeon, 1); bwb.writeBits(bitRateCode, 5); bwb.writeBits(reserved, 5); }
@Override protected void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(format_info, 32); bwb.writeBits(peak_data_rate, 15); bwb.writeBits(reserved, 1); bwb.writeBits(reserved2, 32); //To change body of implemented methods use File | Settings | File Templates. }
@Override public void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(dataRate, 13); bwb.writeBits(entries.size() - 1, 3); for (Entry e : entries) { bwb.writeBits(e.fscod, 2); bwb.writeBits(e.bsid, 5); bwb.writeBits(e.bsmod, 5); bwb.writeBits(e.acmod, 3); bwb.writeBits(e.lfeon, 1); bwb.writeBits(e.reserved, 3); bwb.writeBits(e.num_dep_sub, 4); if (e.num_dep_sub > 0) { bwb.writeBits(e.chan_loc, 9); } else { bwb.writeBits(e.reserved2, 1); } } }
@Override protected void getContent(ByteBuffer byteBuffer) { IsoTypeWriter.writeUInt32(byteBuffer, DTSSamplingFrequency); IsoTypeWriter.writeUInt32(byteBuffer, maxBitRate); IsoTypeWriter.writeUInt32(byteBuffer, avgBitRate); IsoTypeWriter.writeUInt8(byteBuffer, pcmSampleDepth); BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(frameDuration, 2); bwb.writeBits(streamConstruction, 5); bwb.writeBits(coreLFEPresent, 1); bwb.writeBits(coreLayout, 6); bwb.writeBits(coreSize, 14); bwb.writeBits(stereoDownmix, 1); bwb.writeBits(representationType, 3); bwb.writeBits(channelLayout, 16); bwb.writeBits(multiAssetFlag, 1); bwb.writeBits(LBRDurationMod, 1); bwb.writeBits(reservedBoxPresent, 1); bwb.writeBits(reserved, 5); }
public void writeBits(int i, int numBits) { assert i <= ((1 << numBits) - 1) : String.format("Trying to write a value bigger (%s) than the number bits (%s) allows. " + "Please mask the value before writing it and make your code is really working as intended.", i, (1 << numBits) - 1); int left = 8 - position % 8; if (numBits <= left) { int current = (buffer.get(initialPos + position / 8)); current = current < 0 ? current + 256 : current; current += i << (left - numBits); buffer.put(initialPos + position / 8, (byte) (current > 127 ? current - 256 : current)); position += numBits; } else { int bitsSecondWrite = numBits - left; writeBits(i >> bitsSecondWrite, left); writeBits(i & (1 << bitsSecondWrite) - 1, bitsSecondWrite); } buffer.position(initialPos + position / 8 + ((position % 8 > 0) ? 1 : 0)); }
out.writeBits(frameLengthFlag, 1); // frameLengthFlag = in.readBits(1); out.writeBits(dependsOnCoreCoder, 1); //= in.readBits(1); if (dependsOnCoreCoder == 1) { out.writeBits(coreCoderDelay, 14); // = in.readBits(14); out.writeBits(extensionFlag, 1); // = in.readBits(1); if (channelConfiguration == 0) { throw new UnsupportedOperationException("can't parse program_config_element yet"); out.writeBits(layerNr, 3);// = in.readBits(3); out.writeBits(numOfSubFrame, 5); // = in.readBits(5); out.writeBits(layer_length, 11); // = in.readBits(11); out.writeBits(extensionFlag3, 1); // = in.readBits(1); if (extensionFlag3 == 1) { throw new RuntimeException("not yet implemented");
IsoTypeWriter.writeUInt8(byteBuffer, avcLevelIndication); BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(lengthSizeMinusOnePaddingBits, 6); bwb.writeBits(lengthSizeMinusOne, 2); bwb.writeBits(numberOfSequenceParameterSetsPaddingBits, 3); bwb.writeBits(pictureParameterSets.size(), 5); for (ByteBuffer sequenceParameterSetNALUnit : sequenceParameterSets) { IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetNALUnit.limit()); bwb.writeBits(chromaFormatPaddingBits, 6); bwb.writeBits(chromaFormat, 2); bwb.writeBits(bitDepthLumaMinus8PaddingBits, 5); bwb.writeBits(bitDepthLumaMinus8, 3); bwb.writeBits(bitDepthChromaMinus8PaddingBits, 5); bwb.writeBits(bitDepthChromaMinus8, 3); for (ByteBuffer sequenceParameterSetExtNALUnit : sequenceParameterSetExts) { IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetExtNALUnit.limit());
BitWriterBuffer bitWriterBuffer = new BitWriterBuffer(out); writeAudioObjectType(originalAudioObjectType, bitWriterBuffer); bitWriterBuffer.writeBits(samplingFrequencyIndex, 4); bitWriterBuffer.writeBits(samplingFrequency, 24); bitWriterBuffer.writeBits(channelConfiguration, 4); bitWriterBuffer.writeBits(extensionSamplingFrequencyIndex, 4); if (extensionSamplingFrequencyIndex == 0xf) bitWriterBuffer.writeBits(extensionSamplingFrequency, 24); writeAudioObjectType(audioObjectType, bitWriterBuffer); if (audioObjectType == 22) bitWriterBuffer.writeBits(extensionChannelConfiguration, 4); bitWriterBuffer.writeBits(sacPayloadEmbedding, 1); throw new UnsupportedOperationException("can't write SpatialSpecificConfig yet"); bitWriterBuffer.writeBits(fillBits, 5); throw new UnsupportedOperationException("can't write ALSSpecificConfig yet"); case 27: case 39: bitWriterBuffer.writeBits(epConfig, 2); if (epConfig == 2 || epConfig == 3) { throw new UnsupportedOperationException("can't parse ErrorProtectionSpecificConfig yet"); bitWriterBuffer.writeBits(directMapping, 1); if (directMapping == 0) {
@Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); IsoTypeWriter.writeUInt32(byteBuffer, referenceId); IsoTypeWriter.writeUInt32(byteBuffer, timeScale); if (getVersion() == 0) { IsoTypeWriter.writeUInt32(byteBuffer, earliestPresentationTime); IsoTypeWriter.writeUInt32(byteBuffer, firstOffset); } else { IsoTypeWriter.writeUInt64(byteBuffer, earliestPresentationTime); IsoTypeWriter.writeUInt64(byteBuffer, firstOffset); } IsoTypeWriter.writeUInt16(byteBuffer, reserved); IsoTypeWriter.writeUInt16(byteBuffer, entries.size()); for (Entry entry : entries) { BitWriterBuffer b = new BitWriterBuffer(byteBuffer); b.writeBits(entry.getReferenceType(), 1); b.writeBits(entry.getReferencedSize(), 31); IsoTypeWriter.writeUInt32(byteBuffer, entry.getSubsegmentDuration()); b = new BitWriterBuffer(byteBuffer); b.writeBits(entry.getStartsWithSap(), 1); b.writeBits(entry.getSapType(), 3); b.writeBits(entry.getSapDeltaTime(), 28); } }
public void writeBool(boolean b) { writeBits(b ? 1 : 0, 1); }
@Override protected void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(fscod, 2); bwb.writeBits(bsid, 5); bwb.writeBits(bsmod, 3); bwb.writeBits(acmod, 3); bwb.writeBits(lfeon, 1); bwb.writeBits(bitRateCode, 5); bwb.writeBits(reserved, 5); }
@Override protected void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(format_info, 32); bwb.writeBits(peak_data_rate, 15); bwb.writeBits(reserved, 1); bwb.writeBits(reserved2, 32); //To change body of implemented methods use File | Settings | File Templates. }
@Override public void getContent(ByteBuffer byteBuffer) { BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(dataRate, 13); bwb.writeBits(entries.size() - 1, 3); for (Entry e : entries) { bwb.writeBits(e.fscod, 2); bwb.writeBits(e.bsid, 5); bwb.writeBits(e.bsmod, 5); bwb.writeBits(e.acmod, 3); bwb.writeBits(e.lfeon, 1); bwb.writeBits(e.reserved, 3); bwb.writeBits(e.num_dep_sub, 4); if (e.num_dep_sub > 0) { bwb.writeBits(e.chan_loc, 9); } else { bwb.writeBits(e.reserved2, 1); } } }
@Override protected void getContent(ByteBuffer byteBuffer) { IsoTypeWriter.writeUInt32(byteBuffer, DTSSamplingFrequency); IsoTypeWriter.writeUInt32(byteBuffer, maxBitRate); IsoTypeWriter.writeUInt32(byteBuffer, avgBitRate); IsoTypeWriter.writeUInt8(byteBuffer, pcmSampleDepth); BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(frameDuration, 2); bwb.writeBits(streamConstruction, 5); bwb.writeBits(coreLFEPresent, 1); bwb.writeBits(coreLayout, 6); bwb.writeBits(coreSize, 14); bwb.writeBits(stereoDownmix, 1); bwb.writeBits(representationType, 3); bwb.writeBits(channelLayout, 16); bwb.writeBits(multiAssetFlag, 1); bwb.writeBits(LBRDurationMod, 1); bwb.writeBits(reservedBoxPresent, 1); bwb.writeBits(reserved, 5); }
public void writeBits(int i, int numBits) { assert i <= ((1 << numBits) - 1) : String.format("Trying to write a value bigger (%s) than the number bits (%s) allows. " + "Please mask the value before writing it and make your code is really working as intended.", i, (1 << numBits) - 1); int left = 8 - position % 8; if (numBits <= left) { int current = (buffer.get(initialPos + position / 8)); current = current < 0 ? current + 256 : current; current += i << (left - numBits); buffer.put(initialPos + position / 8, (byte) (current > 127 ? current - 256 : current)); position += numBits; } else { int bitsSecondWrite = numBits - left; writeBits(i >> bitsSecondWrite, left); writeBits(i & (1 << bitsSecondWrite) - 1, bitsSecondWrite); } buffer.position(initialPos + position / 8 + ((position % 8 > 0) ? 1 : 0)); }
IsoTypeWriter.writeUInt8(byteBuffer, avcLevelIndication); BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); bwb.writeBits(lengthSizeMinusOnePaddingBits, 6); bwb.writeBits(lengthSizeMinusOne, 2); bwb.writeBits(numberOfSequenceParameterSetsPaddingBits, 3); bwb.writeBits(pictureParameterSets.size(), 5); for (ByteBuffer sequenceParameterSetNALUnit : sequenceParameterSets) { IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetNALUnit.limit()); bwb.writeBits(chromaFormatPaddingBits, 6); bwb.writeBits(chromaFormat, 2); bwb.writeBits(bitDepthLumaMinus8PaddingBits, 5); bwb.writeBits(bitDepthLumaMinus8, 3); bwb.writeBits(bitDepthChromaMinus8PaddingBits, 5); bwb.writeBits(bitDepthChromaMinus8, 3); for (ByteBuffer sequenceParameterSetExtNALUnit : sequenceParameterSetExts) { IsoTypeWriter.writeUInt16(byteBuffer, sequenceParameterSetExtNALUnit.limit());
@Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); IsoTypeWriter.writeUInt32(byteBuffer, referenceId); IsoTypeWriter.writeUInt32(byteBuffer, timeScale); if (getVersion() == 0) { IsoTypeWriter.writeUInt32(byteBuffer, earliestPresentationTime); IsoTypeWriter.writeUInt32(byteBuffer, firstOffset); } else { IsoTypeWriter.writeUInt64(byteBuffer, earliestPresentationTime); IsoTypeWriter.writeUInt64(byteBuffer, firstOffset); } IsoTypeWriter.writeUInt16(byteBuffer, reserved); IsoTypeWriter.writeUInt16(byteBuffer, entries.size()); for (Entry entry : entries) { BitWriterBuffer b = new BitWriterBuffer(byteBuffer); b.writeBits(entry.getReferenceType(), 1); b.writeBits(entry.getReferencedSize(), 31); IsoTypeWriter.writeUInt32(byteBuffer, entry.getSubsegmentDuration()); b = new BitWriterBuffer(byteBuffer); b.writeBits(entry.getStartsWithSap(), 1); b.writeBits(entry.getSapType(), 3); b.writeBits(entry.getSapDeltaTime(), 28); } }