public void _parseDetails(ByteBuffer paramByteBuffer) { parseVersionAndFlags(paramByteBuffer); int i = IsoTypeReader.readUInt8(paramByteBuffer); this.offsetSize = (i >>> 4); this.lengthSize = (i & 0xF); int j = IsoTypeReader.readUInt8(paramByteBuffer); this.baseOffsetSize = (j >>> 4); if (getVersion() == 1) this.indexSize = (j & 0xF); int k = IsoTypeReader.readUInt16(paramByteBuffer); for (int l = 0; l < k; ++l) this.items.add(new Item(paramByteBuffer)); }
@Override public void parse(DataSource dataSource, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { ByteBuffer content = ByteBuffer.allocate(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!? }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); entryCount = IsoTypeReader.readUInt32(content); for (int i = 0; i < entryCount; i++) { SampleEntry sampleEntry = new SampleEntry(); sampleEntry.setSampleDelta(IsoTypeReader.readUInt32(content)); int subsampleCount = IsoTypeReader.readUInt16(content); for (int j = 0; j < subsampleCount; j++) { SampleEntry.SubsampleEntry subsampleEntry = new SampleEntry.SubsampleEntry(); subsampleEntry.setSubsampleSize( getVersion() == 1 ? IsoTypeReader.readUInt32(content) : IsoTypeReader.readUInt16(content)); subsampleEntry.setSubsamplePriority(IsoTypeReader.readUInt8(content)); subsampleEntry.setDiscardable(IsoTypeReader.readUInt8(content)); subsampleEntry.setReserved(IsoTypeReader.readUInt32(content)); sampleEntry.addSubsampleEntry(subsampleEntry); } entries.add(sampleEntry); } }
public static BaseDescriptor createFrom(int objectTypeIndication, ByteBuffer bb) throws IOException { int tag = IsoTypeReader.readUInt8(bb); Map<Integer, Class<? extends BaseDescriptor>> tagMap = descriptorRegistry.get(objectTypeIndication); if (tagMap == null) { tagMap = descriptorRegistry.get(-1); } Class<? extends BaseDescriptor> aClass = tagMap.get(tag); // if (tag == 0x00) { // log.warning("Found illegal tag 0x00! objectTypeIndication " + // Integer.toHexString(objectTypeIndication) + // " and tag " + Integer.toHexString(tag) + " using: " + aClass); // aClass = BaseDescriptor.class; // } BaseDescriptor baseDescriptor; if (aClass == null || aClass.isInterface() || Modifier.isAbstract(aClass.getModifiers())) { log.warning( "No ObjectDescriptor found for objectTypeIndication " + Integer.toHexString(objectTypeIndication) + " and tag " + Integer.toHexString(tag) + " found: " + aClass); baseDescriptor = new UnknownDescriptor(); } else { try { baseDescriptor = aClass.newInstance(); } catch (Exception e) { log.log( Level.SEVERE, "Couldn't instantiate BaseDescriptor class " + aClass + " for objectTypeIndication " + objectTypeIndication + " and tag " + tag, e); throw new RuntimeException(e); } } baseDescriptor.parse(tag, bb); return baseDescriptor; }
@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 _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); maxSamplePerFrame = IsoTypeReader.readUInt32(content); unknown1 = IsoTypeReader.readUInt8(content); sampleSize = IsoTypeReader.readUInt8(content); historyMult = IsoTypeReader.readUInt8(content); initialHistory = IsoTypeReader.readUInt8(content); kModifier = IsoTypeReader.readUInt8(content); channels = IsoTypeReader.readUInt8(content); unknown2 = IsoTypeReader.readUInt16(content); maxCodedFrameSize = IsoTypeReader.readUInt32(content); bitRate = IsoTypeReader.readUInt32(content); sampleRate = IsoTypeReader.readUInt32(content); }
public void parseDetail(ByteBuffer paramByteBuffer) throws IOException { this.esId = IsoTypeReader.readUInt16(paramByteBuffer); int i = IsoTypeReader.readUInt8(paramByteBuffer); this.streamDependenceFlag = (i >>> 7); this.URLFlag = (0x1 & i >>> 6); this.oCRstreamFlag = (0x1 & i >>> 5); this.streamPriority = (i & 0x1F); if (this.streamDependenceFlag == 1) this.dependsOnEsId = IsoTypeReader.readUInt16(paramByteBuffer); if (this.URLFlag == 1) { this.URLLength = IsoTypeReader.readUInt8(paramByteBuffer); this.URLString = IsoTypeReader.readString(paramByteBuffer, this.URLLength); } if (this.oCRstreamFlag == 1) this.oCREsId = IsoTypeReader.readUInt16(paramByteBuffer); int j = 1 + (2 + (1 + getSizeBytes())); int k; label130: int i1; label152: int i5; long l3; Integer localInteger3; label267: label311: long l2; Integer localInteger2; label411: label455: label472: BaseDescriptor localBaseDescriptor1; long l1; Integer localInteger1; if (this.streamDependenceFlag == 1) { k = 2; int l = j + k; if (this.URLFlag != 1) break label620; i1 = 1 + this.URLLength; int i2 = i1 + l; int i3 = this.oCRstreamFlag; int i4 = 0; if (i3 == 1) i4 = 2; i5 = i2 + i4; int i6 = paramByteBuffer.position(); if (getSize() > i5 + 2) { BaseDescriptor localBaseDescriptor3 = ObjectDescriptorFactory.createFrom(-1, paramByteBuffer); l3 = paramByteBuffer.position() - i6; Logger localLogger3 = log; StringBuilder localStringBuilder3 = new StringBuilder().append(localBaseDescriptor3).append(" - ESDescriptor1 read: ").append(l3).append(", size: "); if (localBaseDescriptor3 == null) break label626; localInteger3 = Integer.valueOf(localBaseDescriptor3.getSize()); localLogger3.finer(localInteger3); if (localBaseDescriptor3 == null) break label632; int i11 = localBaseDescriptor3.getSize(); paramByteBuffer.position(i6 + i11); i5 += i11; if (localBaseDescriptor3 instanceof DecoderConfigDescriptor) this.decoderConfigDescriptor = ((DecoderConfigDescriptor)localBaseDescriptor3); } int i7 = paramByteBuffer.position(); if (getSize() <= i5 + 2) break label662; BaseDescriptor localBaseDescriptor2 = ObjectDescriptorFactory.createFrom(-1, paramByteBuffer); l2 = paramByteBuffer.position() - i7; Logger localLogger2 = log; StringBuilder localStringBuilder2 = new StringBuilder().append(localBaseDescriptor2).append(" - ESDescriptor2 read: ").append(l2).append(", size: "); if (localBaseDescriptor2 == null) break label644; localInteger2 = Integer.valueOf(localBaseDescriptor2.getSize()); localLogger2.finer(localInteger2); if (localBaseDescriptor2 == null) break label650; int i10 = localBaseDescriptor2.getSize(); paramByteBuffer.position(i7 + i10); i5 += i10; if (localBaseDescriptor2 instanceof SLConfigDescriptor) this.slConfigDescriptor = ((SLConfigDescriptor)localBaseDescriptor2); if (getSize() - i5 <= 2) return; int i8 = paramByteBuffer.position(); localBaseDescriptor1 = ObjectDescriptorFactory.createFrom(-1, paramByteBuffer); l1 = paramByteBuffer.position() - i8; Logger localLogger1 = log; StringBuilder localStringBuilder1 = new StringBuilder().append(localBaseDescriptor1).append(" - ESDescriptor3 read: ").append(l1).append(", size: "); if (localBaseDescriptor1 == null) break label673; localInteger1 = Integer.valueOf(localBaseDescriptor1.getSize()); label555: localLogger1.finer(localInteger1); if (localBaseDescriptor1 == null) break label679; int i9 = localBaseDescriptor1.getSize(); paramByteBuffer.position(i8 + i9); i5 += i9; } while (true) { this.otherDescriptors.add(localBaseDescriptor1); break label472: k = 0; break label130: label620: i1 = 0; break label152: label626: localInteger3 = null; break label267: label632: i5 = (int)(l3 + i5); break label311: label644: localInteger2 = null; break label411: label650: i5 = (int)(l2 + i5); break label455: label662: log.warning("SLConfigDescriptor is missing!"); break label472: label673: localInteger1 = null; break label555: label679: i5 = (int)(l1 + i5); } }