wms-stream-record

16:54:35.560 INFO  jd.cli.Main - Decompiling wms-stream-record.jar
package com.wowza.wms.stream.record;

import com.wowza.util.Base64;
import com.wowza.util.JSON;
import com.wowza.wms.application.WMSProperties;
import com.wowza.wms.stream.MediaStream;
import com.wowza.wms.stream.MediaStreamMap;

public class MediaStreamRecord
  extends MediaStream
{
  private RecordReceiver a = null;
  
  public MediaStreamRecord()
  {
    a = new RecordReceiver(this);
  }
  
  public void init(MediaStreamMap paramMediaStreamMap, int paramInt, WMSProperties paramWMSProperties)
  {
    super.init(paramMediaStreamMap, paramInt, paramWMSProperties);
    
    boolean bool1 = getProperties().getPropertyBoolean(JSON.copyValueOf("a}kirssXv,$", 11 * 5), false);
    boolean bool2 = getProperties().getPropertyBoolean(JSON.copyValueOf("pfgjtc_hcJb|Yyuw|_poQjxw~", 108 + 54), false);
    boolean bool3 = getProperties().getPropertyBoolean(Base64.endsWith(-41 - 38, "cwp{grVm}stK|wk\006.0\025-!#(\003,3\r>,#*"), false);
    boolean bool4 = getProperties().getPropertyBoolean(Base64.endsWith(117 + -105, "~hm`buG`qVw{{lvzhxz^ueklPlkbkfnn"), true);
    
    a.setVersionFile(bool1);
    a.setWaitForVideoKeyFrame(bool2);
    a.setAudioWaitForVideoKeyFrame(bool3);
    a.setUseCalculatedAudioTimecodes(bool4);
    a.init();
  }
  
  public void resetRecord()
  {
    a.resetRecord();
  }
  
  public void addVideoData(byte[] paramArrayOfByte, int paramInt1, int paramInt2)
  {
    long l = 0L;
    int i = 0;
    for (;; monitorenter)
    {
      try
      {
        l = videoTC;
        i = videoSize;
      }
      finally
      {
        Object localObject2;
        for (;;) {}
      }
      a.addVideoData(paramArrayOfByte, paramInt1, paramInt2, i, l); return;
    }
    throw ((Throwable)localObject2);
  }
  
  /* Error */
  public void addDataData(byte[] paramArrayOfByte, int paramInt1, int paramInt2)
  {
    // Byte code:
    //   0: lconst_0
    //   1: lstore 4
    //   3: iconst_0
    //   4: istore 6
    //   6: aload_0
    //   7: getfield 76	com/wowza/wms/stream/MediaStream:lock	Ljava/lang/Object;
    //   10: dup
    //   11: astore 7
    //   13: goto +11 -> 24
    //   16: astore 8
    //   18: aload 7
    //   20: monitorexit
    //   21: goto +22 -> 43
    //   24: monitorenter
    //   25: goto +24 -> 49
    //   28: aload_0
    //   29: getfield 13	com/wowza/wms/stream/record/MediaStreamRecord:a	Lcom/wowza/wms/stream/record/RecordReceiver;
    //   32: aload_1
    //   33: iload_2
    //   34: iload_3
    //   35: iload 6
    //   37: lload 4
    //   39: invokevirtual 96	com/wowza/wms/stream/record/RecordReceiver:addDataData	([BIIIJ)V
    //   42: return
    //   43: aload 8
    //   45: athrow
    //   46: goto -18 -> 28
    //   49: aload_0
    //   50: getfield 99	com/wowza/wms/stream/MediaStream:dataTC	J
    //   53: lstore 4
    //   55: aload_0
    //   56: getfield 102	com/wowza/wms/stream/MediaStream:dataSize	I
    //   59: istore 6
    //   61: aload 7
    //   63: monitorexit
    //   64: goto -18 -> 46
    // Line number table:
    //   Java source line #51	-> byte code offset #0
    //   Java source line #52	-> byte code offset #3
    //   Java source line #53	-> byte code offset #6
    //   Java source line #57	-> byte code offset #16
    //   Java source line #53	-> byte code offset #24
    //   Java source line #58	-> byte code offset #28
    //   Java source line #59	-> byte code offset #42
    //   Java source line #57	-> byte code offset #43
    //   Java source line #55	-> byte code offset #49
    //   Java source line #56	-> byte code offset #55
    //   Java source line #57	-> byte code offset #61
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	67	0	this	MediaStreamRecord
    //   0	67	1	paramArrayOfByte	byte[]
    //   0	67	2	paramInt1	int
    //   0	67	3	paramInt2	int
    //   1	53	4	l	long
    //   4	56	6	i	int
    //   11	51	7	localObject1	Object
    //   16	28	8	localObject2	Object
    // Exception table:
    //   from	to	target	type
    //   16	24	16	finally
    //   49	67	16	finally
  }
  
  public void addAudioData(byte[] paramArrayOfByte, int paramInt1, int paramInt2)
  {
    long l = 0L;
    int i = 0;
    Object localObject1;
    for (;;)
    {
      a.addAudioData(paramArrayOfByte, paramInt1, paramInt2, i, l);
      return;
      for (;;)
      {
        Object localObject2;
        throw ((Throwable)localObject2);
        for (;; monitorenter) {
          try
          {
            l = audioTC;
            i = audioSize;
            break;
          }
          finally {}
        }
      }
    }
  }
  
  public int getAudioMissing()
  {
    int i = 0;
    Object localObject1;
    for (;;)
    {
      return a.getAudioMissing(i);
      for (;;)
      {
        Object localObject2;
        throw ((Throwable)localObject2);
        for (;; monitorenter) {
          try
          {
            i = audioSize;
            break;
          }
          finally {}
        }
      }
    }
  }
  
  /* Error */
  public int getVideoMissing()
  {
    // Byte code:
    //   0: iconst_0
    //   1: istore_1
    //   2: aload_0
    //   3: getfield 76	com/wowza/wms/stream/MediaStream:lock	Ljava/lang/Object;
    //   6: dup
    //   7: astore_2
    //   8: goto +30 -> 38
    //   11: aload_0
    //   12: getfield 13	com/wowza/wms/stream/record/MediaStreamRecord:a	Lcom/wowza/wms/stream/record/RecordReceiver;
    //   15: iload_1
    //   16: invokevirtual 119	com/wowza/wms/stream/record/RecordReceiver:getVideoMissing	(I)I
    //   19: ireturn
    //   20: astore_3
    //   21: aload_2
    //   22: monitorexit
    //   23: goto +13 -> 36
    //   26: aload_0
    //   27: getfield 84	com/wowza/wms/stream/MediaStream:videoSize	I
    //   30: istore_1
    //   31: aload_2
    //   32: monitorexit
    //   33: goto +9 -> 42
    //   36: aload_3
    //   37: athrow
    //   38: monitorenter
    //   39: goto -13 -> 26
    //   42: goto -31 -> 11
    // Line number table:
    //   Java source line #85	-> byte code offset #0
    //   Java source line #86	-> byte code offset #2
    //   Java source line #90	-> byte code offset #11
    //   Java source line #89	-> byte code offset #20
    //   Java source line #88	-> byte code offset #26
    //   Java source line #89	-> byte code offset #31
    //   Java source line #86	-> byte code offset #38
    //   Java source line #89	-> byte code offset #42
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	45	0	this	MediaStreamRecord
    //   1	30	1	i	int
    //   7	25	2	localObject1	Object
    //   20	17	3	localObject2	Object
    // Exception table:
    //   from	to	target	type
    //   20	26	20	finally
    //   26	36	20	finally
  }
  
  /* Error */
  public int getDataMissing()
  {
    // Byte code:
    //   0: iconst_0
    //   1: istore_1
    //   2: aload_0
    //   3: getfield 76	com/wowza/wms/stream/MediaStream:lock	Ljava/lang/Object;
    //   6: dup
    //   7: astore_2
    //   8: goto +29 -> 37
    //   11: astore_3
    //   12: aload_2
    //   13: monitorexit
    //   14: goto +27 -> 41
    //   17: nop
    //   18: aload_0
    //   19: getfield 13	com/wowza/wms/stream/record/MediaStreamRecord:a	Lcom/wowza/wms/stream/record/RecordReceiver;
    //   22: iload_1
    //   23: invokevirtual 122	com/wowza/wms/stream/record/RecordReceiver:getDataMissing	(I)I
    //   26: ireturn
    //   27: aload_0
    //   28: getfield 102	com/wowza/wms/stream/MediaStream:dataSize	I
    //   31: istore_1
    //   32: aload_2
    //   33: monitorexit
    //   34: goto -17 -> 17
    //   37: monitorenter
    //   38: goto -11 -> 27
    //   41: aload_3
    //   42: athrow
    // Line number table:
    //   Java source line #95	-> byte code offset #0
    //   Java source line #96	-> byte code offset #2
    //   Java source line #99	-> byte code offset #11
    //   Java source line #100	-> byte code offset #18
    //   Java source line #98	-> byte code offset #27
    //   Java source line #99	-> byte code offset #32
    //   Java source line #96	-> byte code offset #37
    //   Java source line #99	-> byte code offset #41
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	43	0	this	MediaStreamRecord
    //   1	31	1	i	int
    //   7	26	2	localObject1	Object
    //   11	31	3	localObject2	Object
    // Exception table:
    //   from	to	target	type
    //   11	17	11	finally
    //   27	37	11	finally
  }
  
  public void publish()
  {
    a.publish();
    super.reset();
  }
  
  public void trim() {}
  
  public boolean play()
  {
    return false;
  }
  
  public void resetNoLookup() {}
  
  public void reset() {}
  
  public void updateLoggingValues()
  {
    super.updateLoggingValues();
    if (isPlay()) {}
    for (;; a.updateLoggingValues()) {
      return;
    }
  }
  
  public double length()
  {
    double d = 0.0D;
    if (isPlay()) {
      break label25;
    }
    for (;;)
    {
      return d;d = a.length(); continue;
      label25:
      d = super.length();
    }
  }
  
  public long size()
  {
    long l = 0L;
    if (isPlay()) {
      break label25;
    }
    for (;;)
    {
      return l;l = a.size(); continue;
      label25:
      l = super.size();
    }
  }
  
  public void startPublishing()
  {
    a.startPublishing();
  }
  
  public void stopPublishing()
  {
    a.stopPublishing();
  }
  
  public void setVersionFile(boolean paramBoolean)
  {
    a.setVersionFile(paramBoolean);
  }
  
  public void startAudioPacket()
  {
    a.startAudioPacket();
  }
  
  public void startVideoPacket()
  {
    a.startVideoPacket();
  }
  
  public void startDataPacket()
  {
    a.startDataPacket();
  }
  
  public int getPublishVideoCodecId()
  {
    return a.getVideoCodecId();
  }
  
  public int getPublishAudioCodecId()
  {
    return a.getAudioCodecId();
  }
  
  public void setPublishVideoCodecId(int paramInt)
  {
    a.setVideoCodecId(paramInt);
  }
  
  public void setPublishAudioCodecId(int paramInt)
  {
    a.setAudioCodecId(paramInt);
  }
}

/* Location:
 * Qualified Name:     com.wowza.wms.stream.record.MediaStreamRecord
 * Java Class Version: 6 (50.0)
 * JD-Core Version:    0.7.1
 */
package com.wowza.wms.stream.record;

import com.wowza.util.Base64;
import com.wowza.util.JSON;
import com.wowza.wms.stream.IMediaStream;
import com.wowza.wms.stream.IMediaWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MediaStreamRecordWriter
  implements Runnable
{
  boolean a = false;
  private IMediaStream b = null;
  private List c = null;
  private long d = 0L;
  private IMediaWriter e = null;
  
  public MediaStreamRecordWriter(IMediaStream paramIMediaStream, IMediaWriter paramIMediaWriter)
  {
    b = paramIMediaStream;
    c = new ArrayList();
    
    e = paramIMediaWriter;
  }
  
  /* Error */
  public void run()
  {
    // Byte code:
    //   0: aconst_null
    //   1: astore_1
    //   2: aconst_null
    //   3: astore_2
    //   4: aconst_null
    //   5: astore_3
    //   6: aconst_null
    //   7: astore 4
    //   9: aconst_null
    //   10: astore 5
    //   12: aconst_null
    //   13: astore 6
    //   15: aconst_null
    //   16: astore 7
    //   18: iconst_0
    //   19: istore 8
    //   21: iconst_0
    //   22: istore 9
    //   24: aload_0
    //   25: dup
    //   26: astore 10
    //   28: goto +54 -> 82
    //   31: aload_0
    //   32: dup
    //   33: getfield 32	com/wowza/wms/stream/record/MediaStreamRecordWriter:e	Lcom/wowza/wms/stream/IMediaWriter;
    //   36: invokeinterface 44 1 0
    //   41: putfield 30	com/wowza/wms/stream/record/MediaStreamRecordWriter:d	J
    //   44: goto +317 -> 361
    //   47: aload_0
    //   48: getfield 32	com/wowza/wms/stream/record/MediaStreamRecordWriter:e	Lcom/wowza/wms/stream/IMediaWriter;
    //   51: aload_1
    //   52: aload_2
    //   53: aload_3
    //   54: aload 4
    //   56: aload 5
    //   58: aload 6
    //   60: aload 7
    //   62: iload 8
    //   64: iload 9
    //   66: invokeinterface 48 10 0
    //   71: iload 9
    //   73: ifeq +288 -> 361
    //   76: goto -45 -> 31
    //   79: goto -32 -> 47
    //   82: monitorenter
    //   83: goto +12 -> 95
    //   86: aload 10
    //   88: monitorexit
    //   89: goto -10 -> 79
    //   92: goto +304 -> 396
    //   95: aload_0
    //   96: getfield 28	com/wowza/wms/stream/record/MediaStreamRecordWriter:c	Ljava/util/List;
    //   99: invokeinterface 54 1 0
    //   104: ifle +6 -> 110
    //   107: goto +18 -> 125
    //   110: aload_0
    //   111: iconst_0
    //   112: putfield 24	com/wowza/wms/stream/record/MediaStreamRecordWriter:a	Z
    //   115: aload_0
    //   116: invokevirtual 57	java/lang/Object:notify	()V
    //   119: aload 10
    //   121: monitorexit
    //   122: goto -30 -> 92
    //   125: aload_0
    //   126: getfield 28	com/wowza/wms/stream/record/MediaStreamRecordWriter:c	Ljava/util/List;
    //   129: iconst_0
    //   130: invokeinterface 61 2 0
    //   135: checkcast 63	java/util/Map
    //   138: astore 11
    //   140: aload 11
    //   142: iconst_5
    //   143: bipush 57
    //   145: imul
    //   146: ldc 65
    //   148: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   151: invokeinterface 74 2 0
    //   156: checkcast 50	java/util/List
    //   159: astore_1
    //   160: aload 11
    //   162: bipush 31
    //   164: iconst_3
    //   165: imul
    //   166: ldc 76
    //   168: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   171: invokeinterface 74 2 0
    //   176: checkcast 50	java/util/List
    //   179: astore_2
    //   180: aload 11
    //   182: sipush 1111
    //   185: sipush 162
    //   188: idiv
    //   189: ldc 78
    //   191: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   194: invokeinterface 74 2 0
    //   199: checkcast 50	java/util/List
    //   202: astore_3
    //   203: aload 11
    //   205: bipush 13
    //   207: bipush 42
    //   209: iadd
    //   210: ldc 80
    //   212: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   215: invokeinterface 74 2 0
    //   220: checkcast 50	java/util/List
    //   223: astore 4
    //   225: aload 11
    //   227: sipush 971
    //   230: sipush 184
    //   233: idiv
    //   234: ldc 82
    //   236: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   239: invokeinterface 74 2 0
    //   244: checkcast 50	java/util/List
    //   247: astore 5
    //   249: aload 11
    //   251: bipush 9
    //   253: bipush -5
    //   255: isub
    //   256: ldc 84
    //   258: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   261: invokeinterface 74 2 0
    //   266: checkcast 50	java/util/List
    //   269: astore 6
    //   271: aload 11
    //   273: bipush 38
    //   275: bipush -33
    //   277: isub
    //   278: ldc 86
    //   280: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   283: invokeinterface 74 2 0
    //   288: checkcast 50	java/util/List
    //   291: astore 7
    //   293: aload 11
    //   295: bipush 12
    //   297: bipush 109
    //   299: iadd
    //   300: ldc 88
    //   302: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   305: invokeinterface 74 2 0
    //   310: checkcast 90	java/lang/Boolean
    //   313: invokevirtual 94	java/lang/Boolean:booleanValue	()Z
    //   316: istore 8
    //   318: aload 11
    //   320: sipush 188
    //   323: bipush 57
    //   325: idiv
    //   326: ldc 96
    //   328: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   331: invokeinterface 74 2 0
    //   336: checkcast 90	java/lang/Boolean
    //   339: invokevirtual 94	java/lang/Boolean:booleanValue	()Z
    //   342: istore 9
    //   344: aload_0
    //   345: getfield 28	com/wowza/wms/stream/record/MediaStreamRecordWriter:c	Ljava/util/List;
    //   348: iconst_0
    //   349: invokeinterface 99 2 0
    //   354: pop
    //   355: goto -269 -> 86
    //   358: aload 12
    //   360: athrow
    //   361: goto -361 -> 0
    //   364: astore 12
    //   366: aload 10
    //   368: monitorexit
    //   369: goto -11 -> 358
    //   372: return
    //   373: astore_1
    //   374: ldc 101
    //   376: invokestatic 107	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   379: bipush 72
    //   381: bipush 61
    //   383: iadd
    //   384: ldc 109
    //   386: invokestatic 71	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   389: aload_1
    //   390: invokevirtual 115	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   393: goto -21 -> 372
    //   396: goto -24 -> 372
    // Line number table:
    //   Java source line #31	-> byte code offset #0
    //   Java source line #32	-> byte code offset #2
    //   Java source line #33	-> byte code offset #4
    //   Java source line #34	-> byte code offset #6
    //   Java source line #35	-> byte code offset #9
    //   Java source line #36	-> byte code offset #12
    //   Java source line #37	-> byte code offset #15
    //   Java source line #38	-> byte code offset #18
    //   Java source line #39	-> byte code offset #21
    //   Java source line #41	-> byte code offset #24
    //   Java source line #69	-> byte code offset #31
    //   Java source line #67	-> byte code offset #47
    //   Java source line #68	-> byte code offset #71
    //   Java source line #65	-> byte code offset #79
    //   Java source line #41	-> byte code offset #82
    //   Java source line #65	-> byte code offset #86
    //   Java source line #63	-> byte code offset #92
    //   Java source line #43	-> byte code offset #95
    //   Java source line #61	-> byte code offset #110
    //   Java source line #62	-> byte code offset #115
    //   Java source line #63	-> byte code offset #119
    //   Java source line #45	-> byte code offset #125
    //   Java source line #47	-> byte code offset #140
    //   Java source line #48	-> byte code offset #160
    //   Java source line #49	-> byte code offset #180
    //   Java source line #50	-> byte code offset #203
    //   Java source line #51	-> byte code offset #225
    //   Java source line #52	-> byte code offset #249
    //   Java source line #53	-> byte code offset #271
    //   Java source line #54	-> byte code offset #293
    //   Java source line #55	-> byte code offset #318
    //   Java source line #57	-> byte code offset #344
    //   Java source line #58	-> byte code offset #355
    //   Java source line #65	-> byte code offset #358
    //   Java source line #122	-> byte code offset #361
    //   Java source line #65	-> byte code offset #364
    //   Java source line #128	-> byte code offset #372
    //   Java source line #124	-> byte code offset #373
    //   Java source line #126	-> byte code offset #374
    //   Java source line #127	-> byte code offset #396
    // Exception table:
    //   from	to	target	type
    //   86	92	364	finally
    //   95	358	364	finally
    //   364	372	364	finally
    //   0	372	373	java/lang/Exception
  }
  
  public long getDuration()
  {
    return d;
  }
  
  public void setDuration(long paramLong)
  {
    d = paramLong;
  }
  
  public boolean isRunning()
  {
    return a;
  }
  
  public void setRunning(boolean paramBoolean)
  {
    a = paramBoolean;
  }
  
  public void add(List paramList1, List paramList2, List paramList3, List paramList4, List paramList5, List paramList6, List paramList7, boolean paramBoolean1, boolean paramBoolean2)
  {
    HashMap localHashMap = new HashMap();
    
    localHashMap.put(JSON.copyValueOf("~5%+,\024$%,-=9", 11 * 29), paramList1);
    localHashMap.put(JSON.copyValueOf("}eik`@pqxqae", 43 * 33), paramList2);
    localHashMap.put(JSON.copyValueOf("kqesCuv}rlj", 14 - -1), paramList3);
    localHashMap.put(Base64.endsWith(53 + -50, "bqaoh\\Jy"), paramList4);
    localHashMap.put(Base64.endsWith('?' / '�', "umach\\Jy"), paramList5);
    localHashMap.put(Base64.endsWith(12 - 35, "-+?-\031\r<"), paramList6);
    localHashMap.put(JSON.copyValueOf("agsi]s{i~", '?' / '?'), paramList7);
    localHashMap.put(Base64.endsWith(41 - 20, "|eQqkio"), new Boolean(paramBoolean1));
    localHashMap.put(Base64.endsWith(-9 - -54, "d}Cqbf"), new Boolean(paramBoolean2));
    
    c.add(localHashMap);
  }
}

/* Location:
 * Qualified Name:     com.wowza.wms.stream.record.MediaStreamRecordWriter
 * Java Class Version: 6 (50.0)
 * JD-Core Version:    0.7.1
 */
package com.wowza.wms.stream.record;

import com.wowza.util.Base64;
import com.wowza.util.JSON;
import com.wowza.wms.amf.AMFData;
import com.wowza.wms.amf.AMFDataList;
import com.wowza.wms.amf.AMFDataMixedArray;
import com.wowza.wms.amf.AMFDataObj;
import com.wowza.wms.application.WMSProperties;
import com.wowza.wms.logging.WMSLogger;
import com.wowza.wms.logging.WMSLoggerFactory;
import com.wowza.wms.stream.IMediaStream;
import com.wowza.wms.stream.IMediaWriter;
import com.wowza.wms.stream.MediaStreamMap;
import com.wowza.wms.stream.MediaWriterFactory;
import com.wowza.wms.vhost.IVHost;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class RecordReceiver
{
  public static final int RECORD_CHUNKTIME = 5000;
  public static final int MAX_WAITING_PACKETS = 100000;
  
  class RecordPacket
  {
    ByteBuffer a = null;
    int b = -1;
    long c = -1L;
    long d = -1L;
    long e = -1L;
    
    public RecordPacket(ByteBuffer paramByteBuffer, long paramLong1, long paramLong2, int paramInt)
    {
      a = paramByteBuffer;
      c = paramLong1;
      d = paramLong2;
      b = paramInt;
      e = System.currentTimeMillis();
    }
    
    public RecordPacket(ByteBuffer paramByteBuffer, long paramLong1, long paramLong2)
    {
      this(paramByteBuffer, paramLong1, paramLong2, -1);
    }
  }
  
  class CommitData
  {
    List<RecordReceiver.RecordPacket> a = null;
    List<RecordReceiver.RecordPacket> b = null;
    List<RecordReceiver.RecordPacket> c = null;
    boolean d = false;
    long e = -1L;
    
    CommitData() {}
    
    public void init()
    {
      if (d) {}
      for (;;)
      {
        return;a = new ArrayList();b = new ArrayList();c = new ArrayList();d = true;
      }
    }
    
    public void addAudio(RecordReceiver.RecordPacket paramRecordPacket)
    {
      init();
      a.add(paramRecordPacket);
      if (e >= 0L) {}
      for (;; e = c) {
        return;
      }
    }
    
    public void addVideo(RecordReceiver.RecordPacket paramRecordPacket)
    {
      init();
      b.add(paramRecordPacket);
      if (e >= 0L) {}
      for (;; e = c) {
        return;
      }
    }
    
    public void addData(RecordReceiver.RecordPacket paramRecordPacket)
    {
      init();
      c.add(paramRecordPacket);
      if (e >= 0L) {}
      for (;; e = c) {
        return;
      }
    }
    
    public boolean isInited()
    {
      return d;
    }
  }
  
  IMediaStream a = null;
  private ByteBuffer b = null;
  private ByteBuffer c = null;
  private ByteBuffer d = null;
  private int e = 100000;
  private int f = 5000;
  private List<RecordPacket> g = new LinkedList();
  private List<RecordPacket> h = new LinkedList();
  private List<RecordPacket> i = new LinkedList();
  private long j = 0L;
  private long k = 0L;
  private long l = 0L;
  private Object m = new Object();
  private long n = -1L;
  private long o = -1L;
  private long p = -1L;
  private boolean q = true;
  private boolean r = false;
  private boolean s = false;
  private boolean t = false;
  private long u = -1L;
  private long v = 0L;
  private ThreadPoolExecutor w = null;
  private MediaStreamRecordWriter x = null;
  private IMediaWriter y = null;
  private boolean z = true;
  private boolean _ = false;
  private boolean aa = false;
  private boolean ab = false;
  private boolean ac = false;
  private boolean ad = true;
  private Object ae = new Object();
  private int af = -1;
  private int ag = -1;
  private boolean ah = false;
  private boolean ai = true;
  
  public RecordReceiver(IMediaStream paramIMediaStream)
  {
    a = paramIMediaStream;
  }
  
  public void init()
  {
    z = true;
    
    WMSProperties localWMSProperties = a.getProperties();
    if (localWMSProperties == null) {}
    for (;;)
    {
      return;ah = localWMSProperties.getPropertyBoolean(JSON.copyValueOf("v`ehzmNnnxi]ur}apBd~l|i", '?' / 89), ah);e = localWMSProperties.getPropertyInt(Base64.endsWith(44 - 25, "aqvye|T{cK|wkioeSefmb|z"), e);f = localWMSProperties.getPropertyInt(JSON.copyValueOf("wcdg{nFecLzvwwa@|{r", '?' / '?'), f);
    }
  }
  
  private final ThreadPoolExecutor a()
  {
    if (w != null) {}
    for (;; w = new ThreadPoolExecutor(1, 1, 3000L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue())) {
      return w;
    }
  }
  
  /* Error */
  private final void b()
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 118	com/wowza/wms/stream/record/RecordReceiver:w	Ljava/util/concurrent/ThreadPoolExecutor;
    //   4: ifnull +59 -> 63
    //   7: goto +46 -> 53
    //   10: astore_1
    //   11: ldc 2
    //   13: invokestatic 204	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   16: new 206	java/lang/StringBuilder
    //   19: dup
    //   20: invokespecial 207	java/lang/StringBuilder:<init>	()V
    //   23: ldc -47
    //   25: sipush 469
    //   28: bipush 76
    //   30: idiv
    //   31: invokestatic 159	com/wowza/util/JSON:copyValueOf	(Ljava/lang/String;I)Ljava/lang/String;
    //   34: invokevirtual 213	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   37: aload_1
    //   38: invokevirtual 217	java/lang/Exception:toString	()Ljava/lang/String;
    //   41: invokevirtual 213	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   44: invokevirtual 218	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   47: invokevirtual 224	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;)V
    //   50: goto +13 -> 63
    //   53: aload_0
    //   54: getfield 118	com/wowza/wms/stream/record/RecordReceiver:w	Ljava/util/concurrent/ThreadPoolExecutor;
    //   57: invokevirtual 227	java/util/concurrent/ThreadPoolExecutor:shutdown	()V
    //   60: goto +9 -> 69
    //   63: aload_0
    //   64: aconst_null
    //   65: putfield 118	com/wowza/wms/stream/record/RecordReceiver:w	Ljava/util/concurrent/ThreadPoolExecutor;
    //   68: return
    //   69: goto -6 -> 63
    // Line number table:
    //   Java source line #161	-> byte code offset #0
    //   Java source line #167	-> byte code offset #10
    //   Java source line #169	-> byte code offset #11
    //   Java source line #165	-> byte code offset #53
    //   Java source line #172	-> byte code offset #63
    //   Java source line #173	-> byte code offset #68
    //   Java source line #170	-> byte code offset #69
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	72	0	this	RecordReceiver
    //   10	28	1	localException	Exception
    // Exception table:
    //   from	to	target	type
    //   53	63	10	java/lang/Exception
  }
  
  private final IMediaWriter a(IMediaStream paramIMediaStream)
  {
    String str = paramIMediaStream.getExt().toLowerCase();
    IMediaWriter localIMediaWriter = MediaWriterFactory.getInstance(paramIMediaStream.getStreams().getVHost().getMediaWriters(), str, paramIMediaStream);
    localIMediaWriter.setVersionFile(aa);
    localIMediaWriter.setWaitForVideoKeyFrame(ab);
    localIMediaWriter.setAudioWaitForVideoKeyFrame(ac);
    localIMediaWriter.setUseCalculatedAudioTimecodes(ad);
    
    return localIMediaWriter;
  }
  
  public void startPublishing()
  {
    if (z) {}
    for (;; resetRecord())
    {
      z = true;
      _ = true; return;
    }
  }
  
  public void stopPublishing() {}
  
  public void resetRecord()
  {
    Object localObject1;
    for (;;)
    {
      ai = true;
      
      n = -1L;
      o = -1L;
      p = -1L;
      
      q = true;
      r = false;
      s = false;
      t = false;
      u = -1L;
      
      y = null;
      x = null;
      return;
      for (;;)
      {
        try
        {
          g = new LinkedList();
          h = new LinkedList();
          i = new LinkedList();
          
          j = 0L;
          k = 0L;
          l = 0L;
        }
        finally {}
        continue;
        for (;;)
        {
          Object localObject2;
          throw ((Throwable)localObject2);
        }
      }
    }
  }
  
  /* Error */
  private final void c()
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 122	com/wowza/wms/stream/record/RecordReceiver:y	Lcom/wowza/wms/stream/IMediaWriter;
    //   4: ifnull +34 -> 38
    //   7: goto +70 -> 77
    //   10: return
    //   11: astore_1
    //   12: ldc 2
    //   14: invokestatic 204	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   17: bipush 47
    //   19: bipush 23
    //   21: imul
    //   22: ldc_w 282
    //   25: invokestatic 173	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   28: aload_1
    //   29: invokevirtual 285	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   32: goto -22 -> 10
    //   35: goto -25 -> 10
    //   38: aload_0
    //   39: dup
    //   40: dup
    //   41: getfield 69	com/wowza/wms/stream/record/RecordReceiver:a	Lcom/wowza/wms/stream/IMediaStream;
    //   44: invokespecial 287	com/wowza/wms/stream/record/RecordReceiver:a	(Lcom/wowza/wms/stream/IMediaStream;)Lcom/wowza/wms/stream/IMediaWriter;
    //   47: putfield 122	com/wowza/wms/stream/record/RecordReceiver:y	Lcom/wowza/wms/stream/IMediaWriter;
    //   50: aload_0
    //   51: new 289	com/wowza/wms/stream/record/MediaStreamRecordWriter
    //   54: dup
    //   55: aload_0
    //   56: getfield 69	com/wowza/wms/stream/record/RecordReceiver:a	Lcom/wowza/wms/stream/IMediaStream;
    //   59: aload_0
    //   60: getfield 122	com/wowza/wms/stream/record/RecordReceiver:y	Lcom/wowza/wms/stream/IMediaWriter;
    //   63: invokespecial 292	com/wowza/wms/stream/record/MediaStreamRecordWriter:<init>	(Lcom/wowza/wms/stream/IMediaStream;Lcom/wowza/wms/stream/IMediaWriter;)V
    //   66: putfield 120	com/wowza/wms/stream/record/RecordReceiver:x	Lcom/wowza/wms/stream/record/MediaStreamRecordWriter;
    //   69: aload_0
    //   70: lconst_0
    //   71: putfield 116	com/wowza/wms/stream/record/RecordReceiver:v	J
    //   74: goto -39 -> 35
    //   77: return
    // Line number table:
    //   Java source line #230	-> byte code offset #0
    //   Java source line #243	-> byte code offset #10
    //   Java source line #239	-> byte code offset #11
    //   Java source line #241	-> byte code offset #12
    //   Java source line #242	-> byte code offset #35
    //   Java source line #235	-> byte code offset #38
    //   Java source line #236	-> byte code offset #50
    //   Java source line #237	-> byte code offset #69
    //   Java source line #231	-> byte code offset #77
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	78	0	this	RecordReceiver
    //   11	18	1	localException	Exception
    // Exception table:
    //   from	to	target	type
    //   38	77	11	java/lang/Exception
  }
  
  public void startVideoPacket()
  {
    if (c == null) {}
    for (;;)
    {
      return;WMSLoggerFactory.getLogger(null).warn(Base64.endsWith(6 + 105, "\03552=!0\00734=0,>.s-+asvUmachXhi`iy4/Fxvv{5fv{ro<ngqc!kpwpc)"));c = null;
    }
  }
  
  /* Error */
  public void addVideoData(byte[] arg1, int arg2, int arg3, int arg4, long arg5)
  {
    // Byte code:
    //   0: aload_0
    //   1: invokespecial 302	com/wowza/wms/stream/record/RecordReceiver:c	()V
    //   4: goto +33 -> 37
    //   7: return
    //   8: astore 7
    //   10: ldc 2
    //   12: invokestatic 204	com/wowza/wms/logging/WMSLoggerFactory:getLogger	(Ljava/lang/Class;)Lcom/wowza/wms/logging/WMSLogger;
    //   15: bipush 28
    //   17: bipush 73
    //   19: iadd
    //   20: ldc_w 304
    //   23: invokestatic 173	com/wowza/util/Base64:endsWith	(ILjava/lang/String;)Ljava/lang/String;
    //   26: aload 7
    //   28: invokevirtual 285	com/wowza/wms/logging/WMSLogger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   31: goto -24 -> 7
    //   34: goto -27 -> 7
    //   37: aload_0
    //   38: getfield 73	com/wowza/wms/stream/record/RecordReceiver:c	Ljava/nio/ByteBuffer;
    //   41: ifnonnull +88 -> 129
    //   44: goto +17 -> 61
    //   47: iload 4
    //   49: ifle +36 -> 85
    //   52: goto +54 -> 106
    //   55: goto +30 -> 85
    //   58: aload 9
    //   60: athrow
    //   61: aload_0
    //   62: iload 4
    //   64: invokestatic 310	java/nio/ByteBuffer:allocate	(I)Ljava/nio/ByteBuffer;
    //   67: putfield 73	com/wowza/wms/stream/record/RecordReceiver:c	Ljava/nio/ByteBuffer;
    //   70: goto +59 -> 129
    //   73: aload_0
    //   74: iload 7
    //   76: putfield 138	com/wowza/wms/stream/record/RecordReceiver:af	I
    //   79: aload 8
    //   81: monitorexit
    //   82: goto -27 -> 55
    //   85: aload_0
    //   86: lload 5
    //   88: invokespecial 313	com/wowza/wms/stream/record/RecordReceiver:a	(J)V
    //   91: goto -57 -> 34
    //   94: astore 9
    //   96: aload 8
    //   98: monitorexit
    //   99: goto -41 -> 58
    //   102: monitorenter
    //   103: goto -30 -> 73
    //   106: aload_0
    //   107: getfield 73	com/wowza/wms/stream/record/RecordReceiver:c	Ljava/nio/ByteBuffer;
    //   110: iconst_0
    //   111: invokevirtual 317	java/nio/ByteBuffer:get	(I)B
    //   114: bipush 15
    //   116: iand
    //   117: istore 7
    //   119: aload_0
    //   120: getfield 136	com/wowza/wms/stream/record/RecordReceiver:ae	Ljava/lang/Object;
    //   123: dup
    //   124: astore 8
    //   126: goto -24 -> 102
    //   129: aload_0
    //   130: getfield 73	com/wowza/wms/stream/record/RecordReceiver:c	Ljava/nio/ByteBuffer;
    //   133: aload_1
    //   134: iload_2
    //   135: iload_3
    //   136: invokevirtual 321	java/nio/ByteBuffer:put	([BII)Ljava/nio/ByteBuffer;
    //   139: pop
    //   140: aload_0
    //   141: getfield 73	com/wowza/wms/stream/record/RecordReceiver:c	Ljava/nio/ByteBuffer;
    //   144: invokevirtual 325	java/nio/ByteBuffer:position	()I
    //   147: iload 4
    //   149: if_icmpne -115 -> 34
    //   152: goto -105 -> 47
    // Line number table:
    //   Java source line #256	-> byte code offset #0
    //   Java source line #279	-> byte code offset #7
    //   Java source line #275	-> byte code offset #8
    //   Java source line #277	-> byte code offset #10
    //   Java source line #278	-> byte code offset #34
    //   Java source line #259	-> byte code offset #37
    //   Java source line #264	-> byte code offset #47
    //   Java source line #270	-> byte code offset #55
    //   Java source line #260	-> byte code offset #61
    //   Java source line #269	-> byte code offset #73
    //   Java source line #270	-> byte code offset #79
    //   Java source line #272	-> byte code offset #85
    //   Java source line #270	-> byte code offset #94
    //   Java source line #267	-> byte code offset #102
    //   Java source line #266	-> byte code offset #106
    //   Java source line #267	-> byte code offset #119
    //   Java source line #261	-> byte code offset #129
    //   Java source line #262	-> byte code offset #140
    // Exception table:
    //   from	to	target	type
    //   37	155	8	java/lang/Exception
    //   73	85	94	finally
    //   94	102	94	finally
  }
  
  public void startDataPacket()
  {
    if (d == null) {}
    for (;;)
    {
      return;WMSLoggerFactory.getLogger(null).warn(JSON.copyValueOf("\030./\"<+\002416=#3%v*.:.)\032>4 \022\"'.#3ri\016*8,n?1296 u%.6:z2/.+:.", 13 - -61));d = null;
    }
  }
  
  public void addDataData(byte[] paramArrayOfByte, int paramInt1, int paramInt2, int paramInt3, long paramLong)
  {
    c();
    for (;;)
    {
      return;
      try
      {
        if (d != null)
        {
          label19:
          d.put(paramArrayOfByte, paramInt1, paramInt2);
          if (d.position() != paramInt3) {
            continue;
          }
        }
        label542:
        for (;;)
        {
          try
          {
            d.flip();
            byte[] arrayOfByte = d.array();
            int i1;
            if (arrayOfByte == null)
            {
              continue;
              AMFDataList localAMFDataList;
              if (localAMFDataList.get(0).getType() != 2) {
                break label542;
              }
              Iterator localIterator;
              String str3;
              AMFData localAMFData;
              Object localObject;
              List localList;
              String str2;
              if (localIterator.hasNext())
              {
                continue;
                if (localAMFDataList.get(1).getType() != 2)
                {
                  continue;y.putMetaData(str3, localAMFData); continue;localObject = (AMFDataObj)localAMFDataList.get(2);localList = ((AMFDataObj)localObject).getKeys();localIterator = localList.iterator();
                }
                else
                {
                  String str1 = localAMFDataList.getString(0);
                  str2 = localAMFDataList.getString(1);
                  if (!str1.equals(JSON.copyValueOf("\027+<.\037=)?\0312 /&", 57 * 15))) {
                    break label542;
                  }
                  continue;
                }
              }
              else
              {
                break label542;
              }
              break label542;
              continue;i1 = 0;
              int i2;
              if (localAMFDataList.get(2).getType() == 3)
              {
                continue;
                break label542;
                if (localIterator.hasNext())
                {
                  continue;
                  break label542;
                  localAMFDataList = new AMFDataList(arrayOfByte, i2, arrayOfByte.length - i2);
                  if (localAMFDataList.size() >= 3) {
                    continue;
                  }
                  continue;
                  break label542;
                  str3 = (String)localIterator.next();
                  localAMFData = ((AMFDataMixedArray)localObject).get(str3);
                  if (y != null) {
                    continue;
                  }
                }
                else
                {
                  break label542;
                }
                continue;i2 = 0;
                if (arrayOfByte[0] != 0) {
                  continue;
                }
                continue;y.putMetaData(str3, localAMFData); continue;str3 = (String)localIterator.next();localAMFData = ((AMFDataObj)localObject).get(str3);
                if (y == null) {
                  continue;
                }
                continue;localObject = (AMFDataMixedArray)localAMFDataList.get(2);
                localList = ((AMFDataMixedArray)localObject).getKeys();
                localIterator = localList.iterator(); continue;
              }
              else
              {
                if (localAMFDataList.get(2).getType() != 8) {
                  break label542;
                }
                continue;
                break label542;
                if (!str2.equals(Base64.endsWith(25 * 11, "|zXscy]{o}"))) {
 
1 2 3 4

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