@Override protected void _parseDetails(ByteBuffer content) { baseBitRate = IsoTypeReader.readUInt32(content); maxBitRate = IsoTypeReader.readUInt32(content); avgBitRate = IsoTypeReader.readUInt32(content); tierBaseBitRate = IsoTypeReader.readUInt32(content); tierMaxBitRate = IsoTypeReader.readUInt32(content); tierAvgBitRate = IsoTypeReader.readUInt32(content); }
@Override public void _parseDetails(ByteBuffer content) { a = IsoTypeReader.readUInt32(content); b = IsoTypeReader.readUInt32(content); c = IsoTypeReader.readUInt32(content); d = IsoTypeReader.readUInt32(content); }
public SampleFlags(ByteBuffer bb) { long a = IsoTypeReader.readUInt32(bb); reserved = (byte) ((a & 0xF0000000) >> 28); isLeading = (byte) ((a & 0x0C000000) >> 26); sampleDependsOn = (byte) ((a & 0x03000000) >> 24); sampleIsDependedOn = (byte) ((a & 0x00C00000) >> 22); sampleHasRedundancy = (byte) ((a & 0x00300000) >> 20); samplePaddingValue = (byte) ((a & 0x000e0000) >> 17); sampleIsDifferenceSample = ((a & 0x00010000) >> 16) > 0; sampleDegradationPriority = (int) (a & 0x0000ffff); }
@Override public void _parseDetails(ByteBuffer content) { bufferSizeDb = IsoTypeReader.readUInt32(content); maxBitrate = IsoTypeReader.readUInt32(content); avgBitrate = IsoTypeReader.readUInt32(content); }
public static long readUInt64(ByteBuffer byteBuffer) { long result = 0; // thanks to Erik Nicolas for finding a bug! Cast to long is definitivly needed result += readUInt32(byteBuffer) << 32; if (result < 0) { throw new RuntimeException("I don't know how to deal with UInt64! long is not sufficient and I don't want to use BigInt"); } result += readUInt32(byteBuffer); return result; }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); trackId = IsoTypeReader.readUInt32(content); defaultSampleDescriptionIndex = IsoTypeReader.readUInt32(content); defaultSampleDuration = IsoTypeReader.readUInt32(content); defaultSampleSize = IsoTypeReader.readUInt32(content); defaultSampleFlags = new SampleFlags(content); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); sampleSize = IsoTypeReader.readUInt32(content); sampleCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); if (sampleSize == 0) { sampleSizes = new long[sampleCount]; for (int i = 0; i < sampleCount; i++) { sampleSizes[i] = IsoTypeReader.readUInt32(content); } } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); dataRate = IsoTypeReader.readUInt32(content); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); int entryCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); sampleNumber = new long[entryCount]; for (int i = 0; i < entryCount; i++) { sampleNumber[i] = IsoTypeReader.readUInt32(content); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); maxPduSize = IsoTypeReader.readUInt16(content); avgPduSize = IsoTypeReader.readUInt16(content); maxBitrate = IsoTypeReader.readUInt32(content); avgBitrate = IsoTypeReader.readUInt32(content); IsoTypeReader.readUInt32(content); // reserved! }
public static long readUInt48(ByteBuffer byteBuffer) { long result = (long) readUInt16(byteBuffer) << 32; if (result < 0) { throw new RuntimeException("I don't know how to deal with UInt64! long is not sufficient and I don't want to use BigInt"); } result += readUInt32(byteBuffer); return result; } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); entries = new LinkedList<Entry>(); while (content.remaining() >= 8) { Entry entry = new Entry(IsoTypeReader.readUInt32(content), IsoTypeReader.readUInt32(content)); entries.add(entry); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); sequenceNumber = IsoTypeReader.readUInt32(content); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); mfraSize = IsoTypeReader.readUInt32(content); }
@Override protected void _parseDetails(ByteBuffer content) { while (content.remaining() >= 4) { trackIds = Mp4Arrays.copyOfAndAppend(trackIds, new long[]{IsoTypeReader.readUInt32(content)}); } }
@Override public void _parseDetails(ByteBuffer content) { majorBrand = IsoTypeReader.read4cc(content); minorVersion = IsoTypeReader.readUInt32(content); int compatibleBrandsCount = content.remaining() / 4; compatibleBrands = new LinkedList<String>(); for (int i = 0; i < compatibleBrandsCount; i++) { compatibleBrands.add(IsoTypeReader.read4cc(content)); } }
@Override public void _parseDetails(ByteBuffer content) { majorBrand = IsoTypeReader.read4cc(content); minorVersion = IsoTypeReader.readUInt32(content); int compatibleBrandsCount = content.remaining() / 4; compatibleBrands = new LinkedList<String>(); for (int i = 0; i < compatibleBrandsCount; i++) { compatibleBrands.add(IsoTypeReader.read4cc(content)); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if (getVersion() == 0x01) { fragmentAbsoluteTime = IsoTypeReader.readUInt64(content); fragmentAbsoluteDuration = IsoTypeReader.readUInt64(content); } else { fragmentAbsoluteTime = IsoTypeReader.readUInt32(content); fragmentAbsoluteDuration = IsoTypeReader.readUInt32(content); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); int entryCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); entries = new LinkedList<Entry>(); for (int i = 0; i < entryCount; i++) { entries.add(new Entry(this, content)); } }
@Override protected void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); byte[] systemIdBytes = new byte[16]; content.get(systemIdBytes); systemId = UUIDConverter.convert(systemIdBytes); int dataSize = CastUtils.l2i(IsoTypeReader.readUInt32(content)); protectionSpecificHeader = ProtectionSpecificHeader.createFor(systemId, content); }