@Override public void _parseDetails(ByteBuffer content) { dataFormat = 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) { 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)); } }
bb.rewind(); long size = IsoTypeReader.readUInt32(bb); String type = IsoTypeReader.read4cc(bb); long fin = begin + size;
@Override public void parse(ReadableByteChannel dataSource, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { // Read first 20 bytes to determine whether the file is formatted according to QuickTime File Format. RewindableReadableByteChannel rewindableDataSource = new RewindableReadableByteChannel(dataSource, 20); ByteBuffer bb = ByteBuffer.allocate(20); int bytesRead = rewindableDataSource.read(bb); if (bytesRead == 20) { // If the second and the fifth 32-bit integers encode 'hdlr' and 'mdta' respectively then the MetaBox is // formatted according to QuickTime File Format. // See https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html bb.position(4); String second4cc = IsoTypeReader.read4cc(bb); bb.position(16); String fifth4cc = IsoTypeReader.read4cc(bb); if ("hdlr".equals(second4cc) && "mdta".equals(fifth4cc)) { quickTimeFormat = true; } } rewindableDataSource.rewind(); if (!quickTimeFormat) { bb = ByteBuffer.allocate(4); rewindableDataSource.read(bb); parseVersionAndFlags((ByteBuffer) bb.rewind()); } int bytesUsed = quickTimeFormat ? 0 : 4; initContainer(rewindableDataSource, contentSize - bytesUsed, boxParser); }
String type = IsoTypeReader.read4cc(header.get());
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); shouldBeZeroButAppleWritesHereSomeValue = IsoTypeReader.readUInt32(content); handlerType = IsoTypeReader.read4cc(content); a = IsoTypeReader.readUInt32(content); b = IsoTypeReader.readUInt32(content); c = IsoTypeReader.readUInt32(content); if (content.remaining() > 0) { name = IsoTypeReader.readString(content, content.remaining()); if (name.endsWith("\0")) { name = name.substring(0, name.length() - 1); zeroTerm = true; } else { zeroTerm = false; } } else { zeroTerm = false; //No string at all, not even zero term char } }
@Override protected void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); groupingType = IsoTypeReader.read4cc(content); if (this.getVersion() == 1) { groupingTypeParameter = IsoTypeReader.read4cc(content); } long entryCount = IsoTypeReader.readUInt32(content); while (entryCount-- > 0) { entries.add(new Entry(CastUtils.l2i(IsoTypeReader.readUInt32(content)), CastUtils.l2i(IsoTypeReader.readUInt32(content)))); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if ((getFlags() & 1) == 1) { auxInfoType = IsoTypeReader.read4cc(content); auxInfoTypeParameter = IsoTypeReader.read4cc(content); } defaultSampleInfoSize = (short) IsoTypeReader.readUInt8(content); sampleCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); if (defaultSampleInfoSize == 0) { sampleInfoSizes = new short[sampleCount]; for (int i = 0; i < sampleCount; i++) { sampleInfoSizes[i] = (short) IsoTypeReader.readUInt8(content); } } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); dataReferenceType = IsoTypeReader.read4cc(content); dataReferenceSize = CastUtils.l2i(IsoTypeReader.readUInt32(content)); dataReference = IsoTypeReader.readString(content, dataReferenceSize); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); schemeType = IsoTypeReader.read4cc(content); schemeVersion = IsoTypeReader.readUInt32(content); if ((getFlags() & 1) == 1) { schemeUri = IsoTypeReader.readString(content); } }
@Override protected void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); groupingType = IsoTypeReader.read4cc(content); if (this.getVersion() == 1) { defaultLength = CastUtils.l2i(IsoTypeReader.readUInt32(content)); } long entryCount = IsoTypeReader.readUInt32(content); while (entryCount-- > 0) { int length = defaultLength; if (this.getVersion() == 1) { if (defaultLength == 0) { length = CastUtils.l2i(IsoTypeReader.readUInt32(content)); } } else { length = content.limit() - content.position(); } ByteBuffer parseMe = content.slice(); parseMe.limit(length); groupEntries.add(parseGroupEntry(parseMe, groupingType)); int parsedBytes = this.getVersion() == 1 ? length : parseMe.position(); content.position(content.position() + parsedBytes); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if ((getFlags() & 1) == 1) { auxInfoType = IsoTypeReader.read4cc(content); auxInfoTypeParameter = IsoTypeReader.read4cc(content); } int entryCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); offsets = new long[entryCount]; for (int i = 0; i < entryCount; i++) { if (getVersion() == 0) { offsets[i] = IsoTypeReader.readUInt32(content); } else { offsets[i] = IsoTypeReader.readUInt64(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 protected void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); groupingType = IsoTypeReader.read4cc(content); if (this.getVersion() == 1) { groupingTypeParameter = IsoTypeReader.read4cc(content); } long entryCount = IsoTypeReader.readUInt32(content); while (entryCount-- > 0) { entries.add(new Entry(CastUtils.l2i(IsoTypeReader.readUInt32(content)), CastUtils.l2i(IsoTypeReader.readUInt32(content)))); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); dataReferenceType = IsoTypeReader.read4cc(content); dataReferenceSize = CastUtils.l2i(IsoTypeReader.readUInt32(content)); dataReference = IsoTypeReader.readString(content, dataReferenceSize); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); schemeType = IsoTypeReader.read4cc(content); schemeVersion = IsoTypeReader.readUInt32(content); if ((getFlags() & 1) == 1) { schemeUri = IsoTypeReader.readString(content); } }