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);
   }
 }
Пример #2
0
 @Override
 public void _parseDetails(ByteBuffer content) {
   parseVersionAndFlags(content);
   language = IsoTypeReader.readIso639(content);
   description = IsoTypeReader.readString(content);
 }