wms-mediareader-mp3

16:54:11.235 INFO  jd.cli.Main - Decompiling wms-mediareader-mp3.jar
package com.wowza.wms.mediareader.mp3;

import com.wowza.wms.stream.IMediaReaderStreamPosition;

public class MP3StreamPosition
  implements IMediaReaderStreamPosition
{
  long a = -1L;
  long b = -1L;
  
  public MP3StreamPosition(long paramLong1, long paramLong2)
  {
    a = paramLong1;
    b = paramLong2;
  }
  
  public MP3StreamPosition() {}
  
  /* Error */
  public boolean isValid()
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 19	com/wowza/wms/mediareader/mp3/MP3StreamPosition:a	J
    //   4: lconst_0
    //   5: lcmp
    //   6: iflt +7 -> 13
    //   9: goto +8 -> 17
    //   12: ireturn
    //   13: iconst_0
    //   14: goto -2 -> 12
    //   17: iconst_1
    //   18: goto -6 -> 12
    // Line number table:
    //   Java source line #22	-> byte code offset #0
  }
  
  public long getFilePos()
  {
    return a;
  }
  
  public void setFilePos(long paramLong)
  {
    a = paramLong;
  }
  
  public long getSample()
  {
    return b;
  }
  
  public void setSample(long paramLong)
  {
    b = paramLong;
  }
}

/* Location:
 * Qualified Name:     com.wowza.wms.mediareader.mp3.MP3StreamPosition
 * Java Class Version: 6 (50.0)
 * JD-Core Version:    0.7.1
 */
package com.wowza.wms.mediareader.mp3;

import com.wowza.io.IRandomAccessReader;
import com.wowza.io.ScheduledRandomAccessReaderWrapper;
import com.wowza.util.Base64;
import com.wowza.util.JSON;
import com.wowza.wms.amf.AMFObj;
import com.wowza.wms.application.IApplicationInstance;
import com.wowza.wms.application.WMSProperties;
import com.wowza.wms.client.IClient;
import com.wowza.wms.logging.WMSLogger;
import com.wowza.wms.logging.WMSLoggerFactory;
import com.wowza.wms.media.mp3.model.idtags.ID3V2FrameAttachedPicture;
import com.wowza.wms.stream.FastPlaySettings;
import com.wowza.wms.stream.IMediaReader;
import com.wowza.wms.stream.IMediaReaderStreamPosition;
import com.wowza.wms.stream.IMediaStream;
import com.wowza.wms.stream.MediaReaderItem;
import com.wowza.wms.stream.file.PlaylistCursor;
import com.wowza.wms.stream.file.PlaylistReaderWriteResults;
import com.wowza.wms.stream.file.PlaylistWriteControl;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javazoom.jl.decoder.Bitstream;
import javazoom.jl.decoder.Header;

public class MediaReaderMP3
  implements IMediaReader
{
  public static final int SYNCBLOCKSIZE = 10240;
  protected IRandomAccessReader fileStream = null;
  protected ScheduledRandomAccessReaderWrapper fileReader = null;
  protected Bitstream bitstream = null;
  protected boolean errorReported = false;
  protected IMediaStream stream = null;
  protected Object lock = new Object();
  protected String mediaReaderType = Base64.endsWith(19 - -3, "{g+");
  protected String mediaReaderExt = Base64.endsWith(-18 - -32, "c#");
  protected byte[] syncHeader;
  protected byte[] packetHeader;
  protected byte[] workBuffer;
  protected MediaReaderItem mediaReaderItem = null;
  protected MediaReaderMP3NodeData nodeData = null;
  protected int frequency = 0;
  protected int bitrate = 0;
  protected int samplesPerFrame = 0;
  protected long streamSize = 0L;
  protected long headerOffset = 0L;
  protected long tailOffset = 0L;
  protected long maxFrames = 0L;
  protected long duration = -1L;
  protected long length = 0L;
  protected int channels = 0;
  protected int layers = 3;
  protected List metaData = null;
  protected boolean justID3Tags = false;
  protected boolean readID3Tags = true;
  protected boolean readAttachedPictures = true;
  protected String basePath = "";
  protected String mediaName = "";
  protected String mediaExtension = Base64.endsWith(25 * 5, "0.l");
  protected long currentSample = 0L;
  protected boolean bitrateErrorSent = false;
  protected int readAheadSize = 16384;
  protected int readAheadTrigger = readAheadSize / 2;
  protected String randomAccessReaderClass = Base64.endsWith('?' / '�', "fij&~e|vl f?VzfpucJxtsp_|cdqpV`gcm{");
  protected IApplicationInstance appInstance = null;
  protected boolean calculateMoreAccurateFrameSize = false;
  protected int calculateMoreAccurateFrameWindow = 100;
  protected boolean isVBR = false;
  protected long saveLastAudioPos = 0L;
  protected int saveLastAudioSize = 0;
  protected Header h = null;
  protected Map<Integer, ID3V2FrameAttachedPicture> attachedPictures = new HashMap();
  
  public MediaReaderMP3()
  {
    syncHeader = new byte[4];
    packetHeader = new byte[1];
    workBuffer = new byte[12];
    
    packetHeader[0] = 47;
  }
  
  public void setProperties(WMSProperties paramWMSProperties)
  {
    justID3Tags = paramWMSProperties.getPropertyBoolean(Base64.endsWith(51 * 23, "xf$RlioUY-Kafq"), false);
    readID3Tags = paramWMSProperties.getPropertyBoolean(Base64.endsWith(34 - 46, "9%e\005=8>\022\030n\n>gr"), readID3Tags);
    readAttachedPictures = paramWMSProperties.getPropertyBoolean(JSON.copyValueOf("<\"`\006073\031-.:?5;;\020(!717#4", 40 - -41), readAttachedPictures);
    readAheadSize = paramWMSProperties.getPropertyInt(Base64.endsWith(113 + -73, "ey9YiljNxtswG|lr"), readAheadSize);
    readAheadTrigger = (readAheadSize / 2);
    readAheadTrigger = paramWMSProperties.getPropertyInt(JSON.copyValueOf("-1q\021!$\"\006 ,+/\030?'(74 ", 74 + -10), readAheadTrigger);
    randomAccessReaderClass = paramWMSProperties.getPropertyStr(Base64.endsWith(23 * 55, "#3=0:;\026;:?(/\017;>ddp@hdut"), randomAccessReaderClass);
    calculateMoreAccurateFrameSize = paramWMSProperties.getPropertyBoolean(JSON.copyValueOf("~sctnbp`KhzlKhox|ndtTauxsDqc", 56 + -27), calculateMoreAccurateFrameSize);
    calculateMoreAccurateFrameWindow = paramWMSProperties.getPropertyInt(Base64.endsWith(59 + 10, "&'++<&*8(\003 \"4\02307 $6,<\034)=0;\b)/&,3"), calculateMoreAccurateFrameWindow);
    if (!WMSLoggerFactory.getLogger(MediaReaderMP3.class).isDebugEnabled()) {}
    for (;;)
    {
      return;WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(JSON.copyValueOf("I`bni[ojhh|B@\"<~d&Dry}[sy|zLi{g9$", '?' / 82) + readAheadSize);WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(Base64.endsWith(7 * 39, "\\ww}tDry}iQM-1mq1QadbF`lkoXghwt`)4") + readAheadTrigger);WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(Base64.endsWith(74 + 121, "\016!!/&\032,+/)?\003\037c?#g\037#$,\020\036h\b<9,za") + justID3Tags);WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(Base64.endsWith(11 * 5, "Z}}szNx{%3\017\023wk+7{\033/*(\004\n|\00405 nu") + readID3Tags);WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(JSON.copyValueOf("NaaofZlkoiC_#?`vuqWclxysyyNvcuwqav<'", '?' / 125) + readAttachedPictures);WMSLoggerFactory.getLogger(MediaReaderMP3.class).debug(Base64.endsWith('?' / '�', "NaaofZlkoiC_#?`rzqyzYzy~onLzaegqGigt{3*") + randomAccessReaderClass);
    }
  }
  
  public void setMediaReaderItem(MediaReaderItem paramMediaReaderItem)
  {
    mediaReaderItem = paramMediaReaderItem;
  }
  
  /* Error */
  public void init(IApplicationInstance arg1, IMediaStream arg2, String arg3, String arg4, String arg5)
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_1
    //   2: putfield 160	com/wowza/wms/mediareader/mp3/MediaReaderMP3:appInstance	Lcom/wowza/wms/application/IApplicationInstance;
    //   5: aload_0
    //   6: aload_2
    //   7: putfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   10: aload_0
    //   11: aload_2
    //   12: ifnonnull +118 -> 130
    //   15: goto +119 -> 134
    //   18: putfield 86	com/wowza/wms/mediareader/mp3/MediaReaderMP3:lock	Ljava/lang/Object;
    //   21: aload_0
    //   22: dup
    //   23: getfield 96	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaReaderType	Ljava/lang/String;
    //   26: invokevirtual 275	java/lang/String:toLowerCase	()Ljava/lang/String;
    //   29: putfield 96	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaReaderType	Ljava/lang/String;
    //   32: aload_0
    //   33: dup
    //   34: getfield 96	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaReaderType	Ljava/lang/String;
    //   37: putfield 100	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaReaderExt	Ljava/lang/String;
    //   40: aload_0
    //   41: aload 4
    //   43: putfield 140	com/wowza/wms/mediareader/mp3/MediaReaderMP3:basePath	Ljava/lang/String;
    //   46: aload_0
    //   47: aload 5
    //   49: putfield 142	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaName	Ljava/lang/String;
    //   52: aload_0
    //   53: dup
    //   54: getfield 102	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaReaderItem	Lcom/wowza/wms/stream/MediaReaderItem;
    //   57: invokevirtual 280	com/wowza/wms/stream/MediaReaderItem:getFileExtension	()Ljava/lang/String;
    //   60: putfield 146	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaExtension	Ljava/lang/String;
    //   63: aload_0
    //   64: dup
    //   65: getfield 160	com/wowza/wms/mediareader/mp3/MediaReaderMP3:appInstance	Lcom/wowza/wms/application/IApplicationInstance;
    //   68: aload_0
    //   69: getfield 158	com/wowza/wms/mediareader/mp3/MediaReaderMP3:randomAccessReaderClass	Ljava/lang/String;
    //   72: aload_0
    //   73: getfield 140	com/wowza/wms/mediareader/mp3/MediaReaderMP3:basePath	Ljava/lang/String;
    //   76: aload_0
    //   77: getfield 142	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaName	Ljava/lang/String;
    //   80: aload_0
    //   81: getfield 146	com/wowza/wms/mediareader/mp3/MediaReaderMP3:mediaExtension	Ljava/lang/String;
    //   84: aload_0
    //   85: getfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   88: invokestatic 286	com/wowza/io/RandomAccessReaderFactory:createInstance	(Lcom/wowza/wms/application/IApplicationInstance;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/wowza/wms/stream/IMediaStream;)Lcom/wowza/io/IRandomAccessReader;
    //   91: putfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   94: aload_0
    //   95: new 288	com/wowza/io/ScheduledRandomAccessReaderWrapper
    //   98: dup
    //   99: aload_0
    //   100: getfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   103: aload_0
    //   104: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   107: aload_0
    //   108: getfield 152	com/wowza/wms/mediareader/mp3/MediaReaderMP3:readAheadSize	I
    //   111: aload_0
    //   112: getfield 154	com/wowza/wms/mediareader/mp3/MediaReaderMP3:readAheadTrigger	I
    //   115: invokespecial 291	com/wowza/io/ScheduledRandomAccessReaderWrapper:<init>	(Lcom/wowza/wms/stream/IMediaStream;Lcom/wowza/io/IRandomAccessReader;II)V
    //   118: putfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   121: aload_1
    //   122: aload_0
    //   123: aload_2
    //   124: invokeinterface 297 3 0
    //   129: return
    //   130: aload_2
    //   131: goto -113 -> 18
    //   134: aload_0
    //   135: getfield 86	com/wowza/wms/mediareader/mp3/MediaReaderMP3:lock	Ljava/lang/Object;
    //   138: goto -120 -> 18
    // Line number table:
    //   Java source line #126	-> byte code offset #0
    //   Java source line #127	-> byte code offset #5
    //   Java source line #128	-> byte code offset #10
    //   Java source line #129	-> byte code offset #21
    //   Java source line #130	-> byte code offset #32
    //   Java source line #131	-> byte code offset #40
    //   Java source line #132	-> byte code offset #46
    //   Java source line #133	-> byte code offset #52
    //   Java source line #135	-> byte code offset #63
    //   Java source line #136	-> byte code offset #94
    //   Java source line #138	-> byte code offset #121
    //   Java source line #139	-> byte code offset #129
    //   Java source line #128	-> byte code offset #130
  }
  
  /* Error */
  public void open(String paramString1, String paramString2)
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 86	com/wowza/wms/mediareader/mp3/MediaReaderMP3:lock	Ljava/lang/Object;
    //   4: dup
    //   5: astore_3
    //   6: goto +10 -> 16
    //   9: astore 5
    //   11: aload_3
    //   12: monitorexit
    //   13: goto +7 -> 20
    //   16: monitorenter
    //   17: goto +8 -> 25
    //   20: aload 5
    //   22: athrow
    //   23: nop
    //   24: return
    //   25: aload_0
    //   26: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   29: invokeinterface 308 1 0
    //   34: ifeq +24 -> 58
    //   37: goto +6 -> 43
    //   40: goto +89 -> 129
    //   43: aload_0
    //   44: invokevirtual 311	com/wowza/wms/mediareader/mp3/MediaReaderMP3:close	()V
    //   47: goto +11 -> 58
    //   50: aload_0
    //   51: iconst_1
    //   52: putfield 82	com/wowza/wms/mediareader/mp3/MediaReaderMP3:errorReported	Z
    //   55: goto +74 -> 129
    //   58: aload_0
    //   59: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   62: invokeinterface 313 1 0
    //   67: aload_0
    //   68: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   71: invokevirtual 314	com/wowza/io/ScheduledRandomAccessReaderWrapper:open	()V
    //   74: aload_0
    //   75: new 316	javazoom/jl/decoder/Bitstream
    //   78: dup
    //   79: aload_0
    //   80: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   83: invokespecial 319	javazoom/jl/decoder/Bitstream:<init>	(Lcom/wowza/io/IRandomAccessReader;)V
    //   86: putfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   89: aload_0
    //   90: iconst_0
    //   91: putfield 82	com/wowza/wms/mediareader/mp3/MediaReaderMP3:errorReported	Z
    //   94: aload_0
    //   95: getfield 160	com/wowza/wms/mediareader/mp3/MediaReaderMP3:appInstance	Lcom/wowza/wms/application/IApplicationInstance;
    //   98: aload_0
    //   99: dup
    //   100: getfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   103: invokeinterface 322 3 0
    //   108: aload_0
    //   109: invokevirtual 325	com/wowza/wms/mediareader/mp3/MediaReaderMP3:readMetadata	()V
    //   112: aload_0
    //   113: getfield 160	com/wowza/wms/mediareader/mp3/MediaReaderMP3:appInstance	Lcom/wowza/wms/application/IApplicationInstance;
    //   116: aload_0
    //   117: dup
    //   118: getfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   121: invokeinterface 328 3 0
    //   126: goto -86 -> 40
    //   129: aload_3
    //   130: monitorexit
    //   131: goto -108 -> 23
    //   134: ldc 2
    //   136: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   139: bipush 63
    //   141: bipush 32
    //   143: isub
    //   144: ldc_w 330
    //   147: invokestatic 94	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   150: aload 4
    //   152: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   155: goto -105 -> 50
    //   158: astore 4
    //   160: aload_0
    //   161: getfield 82	com/wowza/wms/mediareader/mp3/MediaReaderMP3:errorReported	Z
    //   164: ifne -114 -> 50
    //   167: goto -33 -> 134
    // Line number table:
    //   Java source line #147	-> byte code offset #0
    //   Java source line #169	-> byte code offset #9
    //   Java source line #147	-> byte code offset #16
    //   Java source line #169	-> byte code offset #20
    //   Java source line #170	-> byte code offset #24
    //   Java source line #149	-> byte code offset #25
    //   Java source line #168	-> byte code offset #40
    //   Java source line #150	-> byte code offset #43
    //   Java source line #167	-> byte code offset #50
    //   Java source line #154	-> byte code offset #58
    //   Java source line #155	-> byte code offset #67
    //   Java source line #156	-> byte code offset #74
    //   Java source line #157	-> byte code offset #89
    //   Java source line #159	-> byte code offset #94
    //   Java source line #160	-> byte code offset #108
    //   Java source line #161	-> byte code offset #112
    //   Java source line #169	-> byte code offset #129
    //   Java source line #166	-> byte code offset #134
    //   Java source line #163	-> byte code offset #158
    //   Java source line #165	-> byte code offset #160
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	170	0	this	MediaReaderMP3
    //   0	170	1	paramString1	String
    //   0	170	2	paramString2	String
    //   5	125	3	localObject1	Object
    //   150	1	4	localThrowable	Throwable
    //   158	1	4	localException	Exception
    //   9	12	5	localObject2	Object
    // Exception table:
    //   from	to	target	type
    //   9	16	9	finally
    //   25	170	9	finally
    //   58	129	158	java/lang/Exception
  }
  
  /* Error */
  public void close()
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 86	com/wowza/wms/mediareader/mp3/MediaReaderMP3:lock	Ljava/lang/Object;
    //   4: dup
    //   5: astore_1
    //   6: goto +20 -> 26
    //   9: aload_0
    //   10: getfield 160	com/wowza/wms/mediareader/mp3/MediaReaderMP3:appInstance	Lcom/wowza/wms/application/IApplicationInstance;
    //   13: aload_0
    //   14: dup
    //   15: getfield 84	com/wowza/wms/mediareader/mp3/MediaReaderMP3:stream	Lcom/wowza/wms/stream/IMediaStream;
    //   18: invokeinterface 339 3 0
    //   23: goto +248 -> 271
    //   26: monitorenter
    //   27: goto +5 -> 32
    //   30: aload_3
    //   31: athrow
    //   32: aload_0
    //   33: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   36: ifnull +85 -> 121
    //   39: goto +90 -> 129
    //   42: aload_0
    //   43: iconst_0
    //   44: putfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   47: aload_0
    //   48: iconst_0
    //   49: putfield 110	com/wowza/wms/mediareader/mp3/MediaReaderMP3:samplesPerFrame	I
    //   52: aload_0
    //   53: lconst_0
    //   54: putfield 112	com/wowza/wms/mediareader/mp3/MediaReaderMP3:streamSize	J
    //   57: aload_0
    //   58: lconst_0
    //   59: putfield 118	com/wowza/wms/mediareader/mp3/MediaReaderMP3:maxFrames	J
    //   62: aload_0
    //   63: lconst_0
    //   64: putfield 114	com/wowza/wms/mediareader/mp3/MediaReaderMP3:headerOffset	J
    //   67: aload_0
    //   68: lconst_0
    //   69: putfield 116	com/wowza/wms/mediareader/mp3/MediaReaderMP3:tailOffset	J
    //   72: aload_0
    //   73: ldc2_w 119
    //   76: putfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   79: aload_0
    //   80: lconst_0
    //   81: putfield 124	com/wowza/wms/mediareader/mp3/MediaReaderMP3:length	J
    //   84: aload_0
    //   85: iconst_0
    //   86: putfield 108	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitrate	I
    //   89: aload_1
    //   90: monitorexit
    //   91: goto +153 -> 244
    //   94: astore_2
    //   95: ldc 2
    //   97: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   100: ldc_w 341
    //   103: bipush 123
    //   105: bipush -110
    //   107: iadd
    //   108: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   111: aload_2
    //   112: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   115: goto +62 -> 177
    //   118: goto -76 -> 42
    //   121: aload_0
    //   122: aconst_null
    //   123: putfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   126: goto +16 -> 142
    //   129: aload_0
    //   130: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   133: invokevirtual 342	javazoom/jl/decoder/Bitstream:close	()V
    //   136: goto -15 -> 121
    //   139: goto +38 -> 177
    //   142: aload_0
    //   143: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   146: ifnull -7 -> 139
    //   149: aconst_null
    //   150: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   153: ldc_w 344
    //   156: bipush -45
    //   158: bipush -18
    //   160: isub
    //   161: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   164: invokevirtual 253	com/wowza/wms/logging/WMSLogger:debug	(Ljava/lang/String;)V
    //   167: aload_0
    //   168: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   171: invokevirtual 345	com/wowza/io/ScheduledRandomAccessReaderWrapper:close	()V
    //   174: goto -35 -> 139
    //   177: aload_0
    //   178: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   181: ifnull -63 -> 118
    //   184: aconst_null
    //   185: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   188: ldc_w 347
    //   191: bipush 55
    //   193: bipush 31
    //   195: imul
    //   196: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   199: invokevirtual 253	com/wowza/wms/logging/WMSLogger:debug	(Ljava/lang/String;)V
    //   202: aload_0
    //   203: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   206: invokeinterface 348 1 0
    //   211: goto -93 -> 118
    //   214: astore_2
    //   215: ldc 2
    //   217: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   220: ldc_w 350
    //   223: bipush 9
    //   225: bipush 25
    //   227: imul
    //   228: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   231: aload_2
    //   232: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   235: goto -193 -> 42
    //   238: astore_3
    //   239: aload_1
    //   240: monitorexit
    //   241: goto -211 -> 30
    //   244: goto -235 -> 9
    //   247: return
    //   248: astore_1
    //   249: ldc 2
    //   251: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   254: ldc_w 352
    //   257: bipush 75
    //   259: dup
    //   260: iadd
    //   261: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   264: aload_1
    //   265: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   268: goto -21 -> 247
    //   271: goto -24 -> 247
    // Line number table:
    //   Java source line #176	-> byte code offset #0
    //   Java source line #217	-> byte code offset #9
    //   Java source line #176	-> byte code offset #26
    //   Java source line #215	-> byte code offset #30
    //   Java source line #178	-> byte code offset #32
    //   Java source line #206	-> byte code offset #42
    //   Java source line #207	-> byte code offset #47
    //   Java source line #208	-> byte code offset #52
    //   Java source line #209	-> byte code offset #57
    //   Java source line #210	-> byte code offset #62
    //   Java source line #211	-> byte code offset #67
    //   Java source line #212	-> byte code offset #72
    //   Java source line #213	-> byte code offset #79
    //   Java source line #214	-> byte code offset #84
    //   Java source line #215	-> byte code offset #89
    //   Java source line #189	-> byte code offset #94
    //   Java source line #191	-> byte code offset #95
    //   Java source line #204	-> byte code offset #118
    //   Java source line #180	-> byte code offset #121
    //   Java source line #179	-> byte code offset #129
    //   Java source line #192	-> byte code offset #139
    //   Java source line #183	-> byte code offset #142
    //   Java source line #185	-> byte code offset #149
    //   Java source line #186	-> byte code offset #167
    //   Java source line #195	-> byte code offset #177
    //   Java source line #197	-> byte code offset #184
    //   Java source line #198	-> byte code offset #202
    //   Java source line #201	-> byte code offset #214
    //   Java source line #203	-> byte code offset #215
    //   Java source line #215	-> byte code offset #238
    //   Java source line #223	-> byte code offset #247
    //   Java source line #219	-> byte code offset #248
    //   Java source line #221	-> byte code offset #249
    //   Java source line #222	-> byte code offset #271
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	274	0	this	MediaReaderMP3
    //   5	235	1	localObject1	Object
    //   248	17	1	localException1	Exception
    //   94	18	2	localException2	Exception
    //   214	18	2	localException3	Exception
    //   30	1	3	localObject2	Object
    //   238	1	3	localObject3	Object
    // Exception table:
    //   from	to	target	type
    //   142	177	94	java/lang/Exception
    //   177	214	214	java/lang/Exception
    //   32	238	238	finally
    //   238	244	238	finally
    //   0	247	248	java/lang/Exception
  }
  
  public boolean isOpen()
  {
    if (fileStream == null) {
      return false;
    }
    return fileStream.isOpen();
  }
  
  /* Error */
  protected void readMetadata()
    throws Exception
  {
    // Byte code:
    //   0: aload_0
    //   1: dup
    //   2: getfield 76	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileStream	Lcom/wowza/io/IRandomAccessReader;
    //   5: invokeinterface 355 1 0
    //   10: putfield 124	com/wowza/wms/mediareader/mp3/MediaReaderMP3:length	J
    //   13: aload_0
    //   14: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   17: invokevirtual 359	javazoom/jl/decoder/Bitstream:readFrame	()Ljavazoom/jl/decoder/Header;
    //   20: astore_1
    //   21: aload_1
    //   22: ifnull +741 -> 763
    //   25: goto +42 -> 67
    //   28: aload_1
    //   29: invokevirtual 365	javazoom/jl/decoder/Header:mode	()I
    //   32: tableswitch	default:+159->191, 0:+200->232, 1:+141->173, 2:+133->165, 3:+177->209
    //   64: nop
    //   65: nop
    //   66: athrow
    //   67: aload_0
    //   68: aload_1
    //   69: invokevirtual 367	javazoom/jl/decoder/Header:frequency	()I
    //   72: putfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   75: aload_0
    //   76: aload_1
    //   77: invokevirtual 369	javazoom/jl/decoder/Header:bitrate	()I
    //   80: putfield 108	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitrate	I
    //   83: aload_0
    //   84: aload_1
    //   85: invokevirtual 372	javazoom/jl/decoder/Header:samples_per_frame	()I
    //   88: putfield 110	com/wowza/wms/mediareader/mp3/MediaReaderMP3:samplesPerFrame	I
    //   91: aload_0
    //   92: dup
    //   93: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   96: invokevirtual 375	javazoom/jl/decoder/Bitstream:header_pos	()I
    //   99: i2l
    //   100: putfield 114	com/wowza/wms/mediareader/mp3/MediaReaderMP3:headerOffset	J
    //   103: aload_0
    //   104: dup
    //   105: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   108: invokevirtual 378	javazoom/jl/decoder/Bitstream:tail_size	()I
    //   111: i2l
    //   112: putfield 116	com/wowza/wms/mediareader/mp3/MediaReaderMP3:tailOffset	J
    //   115: aload_0
    //   116: dup
    //   117: getfield 124	com/wowza/wms/mediareader/mp3/MediaReaderMP3:length	J
    //   120: aload_0
    //   121: getfield 114	com/wowza/wms/mediareader/mp3/MediaReaderMP3:headerOffset	J
    //   124: lsub
    //   125: aload_0
    //   126: getfield 116	com/wowza/wms/mediareader/mp3/MediaReaderMP3:tailOffset	J
    //   129: lsub
    //   130: putfield 112	com/wowza/wms/mediareader/mp3/MediaReaderMP3:streamSize	J
    //   133: aload_0
    //   134: aload_1
    //   135: invokevirtual 381	javazoom/jl/decoder/Header:vbr	()Z
    //   138: putfield 166	com/wowza/wms/mediareader/mp3/MediaReaderMP3:isVBR	Z
    //   141: aload_0
    //   142: aload_1
    //   143: aload_0
    //   144: getfield 112	com/wowza/wms/mediareader/mp3/MediaReaderMP3:streamSize	J
    //   147: l2i
    //   148: invokevirtual 385	javazoom/jl/decoder/Header:max_number_of_frames	(I)I
    //   151: i2l
    //   152: putfield 118	com/wowza/wms/mediareader/mp3/MediaReaderMP3:maxFrames	J
    //   155: aload_0
    //   156: getfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   159: ifle +65 -> 224
    //   162: goto +78 -> 240
    //   165: aload_0
    //   166: iconst_2
    //   167: putfield 126	com/wowza/wms/mediareader/mp3/MediaReaderMP3:channels	I
    //   170: goto +21 -> 191
    //   173: aload_0
    //   174: iconst_2
    //   175: putfield 126	com/wowza/wms/mediareader/mp3/MediaReaderMP3:channels	I
    //   178: goto +13 -> 191
    //   181: aload_0
    //   182: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   185: invokevirtual 388	javazoom/jl/decoder/Bitstream:closeFrame	()V
    //   188: goto +575 -> 763
    //   191: aload_0
    //   192: aload_1
    //   193: invokevirtual 391	javazoom/jl/decoder/Header:layer	()I
    //   196: putfield 128	com/wowza/wms/mediareader/mp3/MediaReaderMP3:layers	I
    //   199: aload_0
    //   200: getfield 134	com/wowza/wms/mediareader/mp3/MediaReaderMP3:readID3Tags	Z
    //   203: ifeq -22 -> 181
    //   206: goto +11 -> 217
    //   209: aload_0
    //   210: iconst_1
    //   211: putfield 126	com/wowza/wms/mediareader/mp3/MediaReaderMP3:channels	I
    //   214: goto -23 -> 191
    //   217: aload_0
    //   218: invokevirtual 394	com/wowza/wms/mediareader/mp3/MediaReaderMP3:decodeID3V2Tags	()V
    //   221: goto -40 -> 181
    //   224: aload_0
    //   225: lconst_0
    //   226: putfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   229: goto -201 -> 28
    //   232: aload_0
    //   233: iconst_2
    //   234: putfield 126	com/wowza/wms/mediareader/mp3/MediaReaderMP3:channels	I
    //   237: goto -46 -> 191
    //   240: aload_0
    //   241: ldc2_w 395
    //   244: aload_0
    //   245: getfield 110	com/wowza/wms/mediareader/mp3/MediaReaderMP3:samplesPerFrame	I
    //   248: i2d
    //   249: dmul
    //   250: aload_0
    //   251: getfield 118	com/wowza/wms/mediareader/mp3/MediaReaderMP3:maxFrames	J
    //   254: l2d
    //   255: dmul
    //   256: aload_0
    //   257: getfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   260: i2d
    //   261: ddiv
    //   262: invokestatic 402	java/lang/Math:round	(D)J
    //   265: putfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   268: goto -240 -> 28
    //   271: ldc 2
    //   273: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   276: bipush 51
    //   278: bipush -64
    //   280: isub
    //   281: ldc_w 404
    //   284: invokestatic 94	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   287: aload_1
    //   288: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   291: goto +589 -> 880
    //   294: aload_0
    //   295: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   298: invokevirtual 407	javazoom/jl/decoder/Bitstream:rewind	()V
    //   301: ldc2_w 119
    //   304: lstore_1
    //   305: iconst_0
    //   306: istore_3
    //   307: iconst_0
    //   308: istore 4
    //   310: goto +107 -> 417
    //   313: aload_0
    //   314: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   317: invokevirtual 388	javazoom/jl/decoder/Bitstream:closeFrame	()V
    //   320: goto +97 -> 417
    //   323: goto +107 -> 430
    //   326: aload_0
    //   327: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   330: invokevirtual 410	com/wowza/io/ScheduledRandomAccessReaderWrapper:getFilePointer	()J
    //   333: lload_1
    //   334: lsub
    //   335: l2i
    //   336: istore 5
    //   338: iload_3
    //   339: iload 5
    //   341: iadd
    //   342: istore_3
    //   343: iinc 4 1
    //   346: iload 4
    //   348: aload_0
    //   349: getfield 164	com/wowza/wms/mediareader/mp3/MediaReaderMP3:calculateMoreAccurateFrameWindow	I
    //   352: if_icmple +40 -> 392
    //   355: goto +74 -> 429
    //   358: aload_0
    //   359: ldc2_w 395
    //   362: aload_0
    //   363: getfield 110	com/wowza/wms/mediareader/mp3/MediaReaderMP3:samplesPerFrame	I
    //   366: i2d
    //   367: dmul
    //   368: aload_0
    //   369: getfield 118	com/wowza/wms/mediareader/mp3/MediaReaderMP3:maxFrames	J
    //   372: l2d
    //   373: dmul
    //   374: aload_0
    //   375: getfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   378: i2d
    //   379: ddiv
    //   380: invokestatic 402	java/lang/Math:round	(D)J
    //   383: putfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   386: goto +314 -> 700
    //   389: goto +311 -> 700
    //   392: aload_0
    //   393: getfield 78	com/wowza/wms/mediareader/mp3/MediaReaderMP3:fileReader	Lcom/wowza/io/ScheduledRandomAccessReaderWrapper;
    //   396: invokevirtual 410	com/wowza/io/ScheduledRandomAccessReaderWrapper:getFilePointer	()J
    //   399: lstore_1
    //   400: aload_0
    //   401: getfield 80	com/wowza/wms/mediareader/mp3/MediaReaderMP3:bitstream	Ljavazoom/jl/decoder/Bitstream;
    //   404: invokevirtual 359	javazoom/jl/decoder/Bitstream:readFrame	()Ljavazoom/jl/decoder/Header;
    //   407: astore 5
    //   409: aload 5
    //   411: ifnonnull -98 -> 313
    //   414: goto -91 -> 323
    //   417: lload_1
    //   418: lconst_0
    //   419: lcmp
    //   420: ifle -28 -> 392
    //   423: goto -97 -> 326
    //   426: goto +274 -> 700
    //   429: nop
    //   430: iload 4
    //   432: ifgt +6 -> 438
    //   435: goto -46 -> 389
    //   438: iload_3
    //   439: i2d
    //   440: iload 4
    //   442: i2d
    //   443: ddiv
    //   444: dstore 5
    //   446: dload 5
    //   448: dconst_0
    //   449: dcmpg
    //   450: ifgt +6 -> 456
    //   453: goto -27 -> 426
    //   456: aload_0
    //   457: dup
    //   458: getfield 112	com/wowza/wms/mediareader/mp3/MediaReaderMP3:streamSize	J
    //   461: l2d
    //   462: dload 5
    //   464: ddiv
    //   465: invokestatic 402	java/lang/Math:round	(D)J
    //   468: l2i
    //   469: i2l
    //   470: putfield 118	com/wowza/wms/mediareader/mp3/MediaReaderMP3:maxFrames	J
    //   473: aload_0
    //   474: getfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   477: ifle +223 -> 700
    //   480: goto -122 -> 358
    //   483: aload_0
    //   484: getfield 166	com/wowza/wms/mediareader/mp3/MediaReaderMP3:isVBR	Z
    //   487: ifne +264 -> 751
    //   490: goto -196 -> 294
    //   493: new 412	com/wowza/wms/amf/AMFDataList
    //   496: dup
    //   497: invokespecial 413	com/wowza/wms/amf/AMFDataList:<init>	()V
    //   500: astore 4
    //   502: aload 4
    //   504: new 415	com/wowza/wms/amf/AMFDataItem
    //   507: dup
    //   508: ldc_w 417
    //   511: bipush 75
    //   513: bipush -27
    //   515: iadd
    //   516: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   519: invokespecial 419	com/wowza/wms/amf/AMFDataItem:<init>	(Ljava/lang/String;)V
    //   522: invokevirtual 423	com/wowza/wms/amf/AMFDataList:add	(Lcom/wowza/wms/amf/AMFData;)V
    //   525: aload 4
    //   527: aload_1
    //   528: invokevirtual 423	com/wowza/wms/amf/AMFDataList:add	(Lcom/wowza/wms/amf/AMFData;)V
    //   531: aload 4
    //   533: invokevirtual 427	com/wowza/wms/amf/AMFDataList:serialize	()[B
    //   536: astore 5
    //   538: aload_0
    //   539: getfield 130	com/wowza/wms/mediareader/mp3/MediaReaderMP3:metaData	Ljava/util/List;
    //   542: aload 5
    //   544: invokestatic 433	java/nio/ByteBuffer:wrap	([B)Ljava/nio/ByteBuffer;
    //   547: invokeinterface 438 2 0
    //   552: pop
    //   553: goto +396 -> 949
    //   556: aload_0
    //   557: getfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   560: lconst_0
    //   561: lcmp
    //   562: ifle -69 -> 493
    //   565: goto +334 -> 899
    //   568: ldc 2
    //   570: invokestatic 227	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   573: ldc_w 440
    //   576: bipush 55
    //   578: bipush 25
    //   580: swap
    //   581: imul
    //   582: invokestatic 203	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   585: aload_1
    //   586: invokevirtual 334	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   589: goto +232 -> 821
    //   592: astore_1
    //   593: aload_0
    //   594: getfield 82	com/wowza/wms/mediareader/mp3/MediaReaderMP3:errorReported	Z
    //   597: ifne +344 -> 941
    //   600: goto +128 -> 728
    //   603: astore_1
    //   604: aload_0
    //   605: getfield 82	com/wowza/wms/mediareader/mp3/MediaReaderMP3:errorReported	Z
    //   608: ifne +272 -> 880
    //   611: goto -340 -> 271
    //   614: new 442	com/wowza/wms/amf/AMFDataObj
    //   617: dup
    //   618: invokespecial 443	com/wowza/wms/amf/AMFDataObj:<init>	()V
    //   621: astore_1
    //   622: aload_0
    //   623: getfield 122	com/wowza/wms/mediareader/mp3/MediaReaderMP3:duration	J
    //   626: l2d
    //   627: ldc2_w 395
    //   630: ddiv
    //   631: dstore_2
    //   632: aload_1
    //   633: sipush 231
    //   636: bipush 62
    //   638: idiv
    //   639: ldc_w 445
    //   642: invokestatic 94	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   645: new 415	com/wowza/wms/amf/AMFDataItem
    //   648: dup
    //   649: dload_2
    //   650: invokespecial 448	com/wowza/wms/amf/AMFDataItem:<init>	(D)V
    //   653: invokevirtual 452	com/wowza/wms/amf/AMFDataObj:put	(Ljava/lang/String;Lcom/wowza/wms/amf/AMFData;)V
    //   656: aload_1
    //   657: bipush 50
    //   659: bipush 38
    //   661: iadd
    //   662: ldc_w 454
    //   665: invokestatic 94	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   668: new 415	com/wowza/wms/amf/AMFDataItem
    //   671: dup
    //   672: sipush 449
    //   675: bipush 120
    //   677: idiv
    //   678: ldc_w 456
    //   681: invokestatic 94	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   684: invokespecial 419	com/wowza/wms/amf/AMFDataItem:<init>	(Ljava/lang/String;)V
    //   687: invokevirtual 452	com/wowza/wms/amf/AMFDataObj:put	(Ljava/lang/String;Lcom/wowza/wms/amf/AMFData;)V
    //   690: aload_0
    //   691: getfield 106	com/wowza/wms/mediareader/mp3/MediaReaderMP3:frequency	I
    //   694: ifle +9 -> 703
    //   697: goto +93 -> 790
    //   700: go
1 2 3 4 5 6

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2019. Infinite Loop Ltd