@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); } }
public Entry(EditListBox editListBox, ByteBuffer bb) { if (editListBox.getVersion() == 1) { segmentDuration = IsoTypeReader.readUInt64(bb); mediaTime = bb.getLong(); mediaRate = IsoTypeReader.readFixedPoint1616(bb); } else { segmentDuration = IsoTypeReader.readUInt32(bb); mediaTime = bb.getInt(); mediaRate = IsoTypeReader.readFixedPoint1616(bb); } this.editListBox = editListBox; }
byteChannel.read(header.get()); header.get().position(8); size = IsoTypeReader.readUInt64(header.get()); contentSize = size - 16; } else if (size == 0) {
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if (getVersion() == 1) { baseMediaDecodeTime = IsoTypeReader.readUInt64(content); } else { baseMediaDecodeTime = IsoTypeReader.readUInt32(content); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); fragmentDuration = getVersion() == 1 ? IsoTypeReader.readUInt64(content) : IsoTypeReader.readUInt32(content); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); int entryCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); chunkOffsets = new long[entryCount]; for (int i = 0; i < entryCount; i++) { chunkOffsets[i] = IsoTypeReader.readUInt64(content); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); int fragmentCount = IsoTypeReader.readUInt8(content); for (int i = 0; i < fragmentCount; i++) { Entry entry = new Entry(); if (getVersion() == 0x01) { entry.fragmentAbsoluteTime = IsoTypeReader.readUInt64(content); entry.fragmentAbsoluteDuration = IsoTypeReader.readUInt64(content); } else { entry.fragmentAbsoluteTime = IsoTypeReader.readUInt32(content); entry.fragmentAbsoluteDuration = IsoTypeReader.readUInt32(content); } entries.add(entry); } }
@Override public void parse(ReadableByteChannel dataSource, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { ByteBuffer content = ByteBuffer.allocate(CastUtils.l2i(contentSize)); dataSource.read(content); content.position(6); dataReferenceIndex = IsoTypeReader.readUInt16(content); displayFlags = content.getInt(); textJustification = content.getInt(); backgroundR = IsoTypeReader.readUInt16(content); backgroundG = IsoTypeReader.readUInt16(content); backgroundB = IsoTypeReader.readUInt16(content); defaultTextBox = IsoTypeReader.readUInt64(content); reserved1 = IsoTypeReader.readUInt64(content); fontNumber = content.getShort(); fontFace = content.getShort(); reserved2 = content.get(); reserved3 = content.getShort(); foregroundR = IsoTypeReader.readUInt16(content); foregroundG = IsoTypeReader.readUInt16(content); foregroundB = IsoTypeReader.readUInt16(content); if (content.remaining() > 0) { int length = IsoTypeReader.readUInt8(content); byte[] myFontName = new byte[length]; content.get(myFontName); fontName = new String(myFontName); } else { fontName = null; } // initContainer(); there are no child boxes!? }
public static long read(ByteBuffer bb, int bytes) { switch (bytes) { case 1: return IsoTypeReader.readUInt8(bb); case 2: return IsoTypeReader.readUInt16(bb); case 3: return IsoTypeReader.readUInt24(bb); case 4: return IsoTypeReader.readUInt32(bb); case 8: return IsoTypeReader.readUInt64(bb); default: throw new RuntimeException("I don't know how to read " + bytes + " bytes"); } } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if (getVersion() == 1) { creationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); modificationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); timescale = IsoTypeReader.readUInt32(content); duration = content.getLong(); } else { creationTime = DateHelper.convert(IsoTypeReader.readUInt32(content)); modificationTime = DateHelper.convert(IsoTypeReader.readUInt32(content)); timescale = IsoTypeReader.readUInt32(content); duration = content.getInt(); } if (duration < -1) { LOG.warn("mdhd duration is not in expected range"); } language = IsoTypeReader.readIso639(content); IsoTypeReader.readUInt16(content); }
parseVersionAndFlags(content); if (getVersion() == 1) { creationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); modificationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); timescale = IsoTypeReader.readUInt32(content); duration = content.getLong();
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); trackId = IsoTypeReader.readUInt32(content); long temp = IsoTypeReader.readUInt32(content); reserved = (int) (temp >> 6); lengthSizeOfTrafNum = ((int) (temp & 0x3F) >> 4) + 1; lengthSizeOfTrunNum = ((int) (temp & 0xC) >> 2) + 1; lengthSizeOfSampleNum = ((int) (temp & 0x3)) + 1; long numberOfEntries = IsoTypeReader.readUInt32(content); entries = new ArrayList<Entry>(); for (int i = 0; i < numberOfEntries; i++) { Entry entry = new Entry(); if (getVersion() == 1) { entry.time = IsoTypeReader.readUInt64(content); entry.moofOffset = IsoTypeReader.readUInt64(content); } else { entry.time = IsoTypeReader.readUInt32(content); entry.moofOffset = IsoTypeReader.readUInt32(content); } entry.trafNumber = IsoTypeReaderVariable.read(content, lengthSizeOfTrafNum); entry.trunNumber = IsoTypeReaderVariable.read(content, lengthSizeOfTrunNum); entry.sampleNumber = IsoTypeReaderVariable.read(content, lengthSizeOfSampleNum); entries.add(entry); } }
@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) { parseVersionAndFlags(content); if (getVersion() == 1) { creationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); modificationTime = DateHelper.convert(IsoTypeReader.readUInt64(content)); trackId = IsoTypeReader.readUInt32(content); IsoTypeReader.readUInt32(content); duration = content.getLong(); } else { creationTime = DateHelper.convert(IsoTypeReader.readUInt32(content)); modificationTime = DateHelper.convert(IsoTypeReader.readUInt32(content)); trackId = IsoTypeReader.readUInt32(content); IsoTypeReader.readUInt32(content); duration = content.getInt(); } // 196 if (duration < -1) { LOG.warn("tkhd duration is not in expected range"); } IsoTypeReader.readUInt32(content); IsoTypeReader.readUInt32(content); layer = IsoTypeReader.readUInt16(content); // 204 alternateGroup = IsoTypeReader.readUInt16(content); volume = IsoTypeReader.readFixedPoint88(content); IsoTypeReader.readUInt16(content); // 212 matrix = Matrix.fromByteBuffer(content); width = IsoTypeReader.readFixedPoint1616(content); // 248 height = IsoTypeReader.readFixedPoint1616(content); }
@Override protected void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); referenceId = IsoTypeReader.readUInt32(content); timeScale = IsoTypeReader.readUInt32(content); if (getVersion() == 0) { earliestPresentationTime = IsoTypeReader.readUInt32(content); firstOffset = IsoTypeReader.readUInt32(content); } else { earliestPresentationTime = IsoTypeReader.readUInt64(content); firstOffset = IsoTypeReader.readUInt64(content); } reserved = IsoTypeReader.readUInt16(content); int numEntries = IsoTypeReader.readUInt16(content); for (int i = 0; i < numEntries; i++) { BitReaderBuffer b = new BitReaderBuffer(content); Entry e = new Entry(); e.setReferenceType((byte) b.readBits(1)); e.setReferencedSize(b.readBits(31)); e.setSubsegmentDuration(IsoTypeReader.readUInt32(content)); b = new BitReaderBuffer(content); e.setStartsWithSap((byte) b.readBits(1)); e.setSapType((byte) b.readBits(3)); e.setSapDeltaTime(b.readBits(28)); entries.add(e); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); trackId = IsoTypeReader.readUInt32(content); if ((getFlags() & 0x1) == 1) { //baseDataOffsetPresent baseDataOffset = IsoTypeReader.readUInt64(content); } if ((getFlags() & 0x2) == 0x2) { //sampleDescriptionIndexPresent sampleDescriptionIndex = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x8) == 0x8) { //defaultSampleDurationPresent defaultSampleDuration = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x10) == 0x10) { //defaultSampleSizePresent defaultSampleSize = IsoTypeReader.readUInt32(content); } if ((getFlags() & 0x20) == 0x20) { //defaultSampleFlagsPresent defaultSampleFlags = new SampleFlags(content); } if ((getFlags() & 0x10000) == 0x10000) { //durationIsEmpty durationIsEmpty = true; } if ((getFlags() & 0x20000) == 0x20000) { //defaultBaseIsMoof defaultBaseIsMoof = true; } }
@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); } }
public Entry(EditListBox editListBox, ByteBuffer bb) { if (editListBox.getVersion() == 1) { segmentDuration = IsoTypeReader.readUInt64(bb); mediaTime = bb.getLong(); mediaRate = IsoTypeReader.readFixedPoint1616(bb); } else { segmentDuration = IsoTypeReader.readUInt32(bb); mediaTime = bb.getInt(); mediaRate = IsoTypeReader.readFixedPoint1616(bb); } this.editListBox = editListBox; }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); fragmentDuration = getVersion() == 1 ? IsoTypeReader.readUInt64(content) : IsoTypeReader.readUInt32(content); }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); int entryCount = CastUtils.l2i(IsoTypeReader.readUInt32(content)); chunkOffsets = new long[entryCount]; for (int i = 0; i < entryCount; i++) { chunkOffsets[i] = IsoTypeReader.readUInt64(content); } }