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); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); language = IsoTypeReader.readIso639(content); description = IsoTypeReader.readString(content); }