class com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread extends java.lang.Thread
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread
  super_class: java.lang.Thread
{
  private final java.util.concurrent.BlockingQueue<com.sun.media.jfxmedia.events.PlayerEvent> eventQueue;
    descriptor: Ljava/util/concurrent/BlockingQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/BlockingQueue<Lcom/sun/media/jfxmedia/events/PlayerEvent;>;

  private volatile boolean stopped;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  final com.sun.media.jfxmediaimpl.NativeMediaPlayer this$0;
    descriptor: Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.sun.media.jfxmediaimpl.NativeMediaPlayer);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
         0: .line 387
            aload 0 /* this */
            aload 1
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 0 /* this */
            invokespecial java.lang.Thread.<init>:()V
         1: .line 383
            aload 0 /* this */
         2: .line 384
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
         3: .line 385
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.stopped:Z
         4: .line 388
            aload 0 /* this */
            ldc "JFXMedia Player EventQueueThread"
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.setName:(Ljava/lang/String;)V
         5: .line 389
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.setDaemon:(Z)V
         6: .line 390
            return
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
         0: .line 394
            goto 38
         1: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.PlayerEvent
            astore 1 /* evt */
        start local 1 // com.sun.media.jfxmedia.events.PlayerEvent evt
         2: .line 400
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.stopped:Z
            ifne 38
         3: .line 401
            aload 1 /* evt */
            instanceof com.sun.media.jfxmedia.events.NewFrameEvent
            ifeq 10
         4: .line 403
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmedia.events.NewFrameEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleRendererEvents:(Lcom/sun/media/jfxmedia/events/NewFrameEvent;)V
         5: .line 404
            goto 38
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread com.sun.media.jfxmedia.events.PlayerEvent
      StackMap stack: java.lang.Throwable
         6: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         7: .line 405
            iconst_4
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 38
         8: .line 406
            iconst_4
            new java.lang.StringBuilder
            dup
            ldc "Caught exception in HandleRendererEvents: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* t */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
        end local 2 // java.lang.Throwable t
         9: .line 409
            goto 38
      StackMap locals:
      StackMap stack:
        10: aload 1 /* evt */
            instanceof com.sun.media.jfxmedia.events.PlayerStateEvent
            ifeq 13
        11: .line 410
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmedia.events.PlayerStateEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleStateEvents:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        12: .line 411
            goto 38
      StackMap locals:
      StackMap stack:
        13: aload 1 /* evt */
            instanceof com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent
            ifeq 16
        14: .line 412
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleFrameSizeChangedEvents:(Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$FrameSizeChangedEvent;)V
        15: .line 413
            goto 38
      StackMap locals:
      StackMap stack:
        16: aload 1 /* evt */
            instanceof com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent
            ifeq 19
        17: .line 414
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleTrackEvents:(Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$TrackEvent;)V
        18: .line 415
            goto 38
      StackMap locals:
      StackMap stack:
        19: aload 1 /* evt */
            instanceof com.sun.media.jfxmedia.events.MarkerEvent
            ifeq 22
        20: .line 416
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmedia.events.MarkerEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleMarkerEvents:(Lcom/sun/media/jfxmedia/events/MarkerEvent;)V
        21: .line 417
            goto 38
      StackMap locals:
      StackMap stack:
        22: aload 1 /* evt */
            instanceof com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent
            ifeq 25
        23: .line 418
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleWarningEvents:(Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$WarningEvent;)V
        24: .line 419
            goto 38
      StackMap locals:
      StackMap stack:
        25: aload 1 /* evt */
            instanceof com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent
            ifeq 28
        26: .line 420
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandlePlayerTimeEvents:(Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$PlayerTimeEvent;)V
        27: .line 421
            goto 38
      StackMap locals:
      StackMap stack:
        28: aload 1 /* evt */
            instanceof com.sun.media.jfxmedia.events.BufferProgressEvent
            ifeq 31
        29: .line 422
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmedia.events.BufferProgressEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleBufferEvents:(Lcom/sun/media/jfxmedia/events/BufferProgressEvent;)V
        30: .line 423
            goto 38
      StackMap locals:
      StackMap stack:
        31: aload 1 /* evt */
            instanceof com.sun.media.jfxmedia.events.AudioSpectrumEvent
            ifeq 34
        32: .line 424
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmedia.events.AudioSpectrumEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleAudioSpectrumEvents:(Lcom/sun/media/jfxmedia/events/AudioSpectrumEvent;)V
        33: .line 425
            goto 38
      StackMap locals:
      StackMap stack:
        34: aload 1 /* evt */
            instanceof com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent
            ifeq 38
        35: .line 426
            aload 0 /* this */
            aload 1 /* evt */
            checkcast com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleErrorEvents:(Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$MediaErrorEvent;)V
        end local 1 // com.sun.media.jfxmedia.events.PlayerEvent evt
        36: .line 429
            goto 38
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread
      StackMap stack: java.lang.Exception
        37: pop
        38: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.stopped:Z
            ifeq 1
        39: .line 438
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.clear:()V
        40: .line 439
            return
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   41     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            2   36     1   evt  Lcom/sun/media/jfxmedia/events/PlayerEvent;
            7    9     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Throwable
           1    36      37  Class java.lang.Exception

  private void HandleRendererEvents(com.sun.media.jfxmedia.events.NewFrameEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/NewFrameEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.NewFrameEvent evt
         0: .line 442
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.isFirstFrame:Z
            ifeq 10
         1: .line 445
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            iconst_0
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.isFirstFrame:Z
         2: .line 446
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 447
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 1 /* evt */
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
         4: .line 448
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.getTimestamp:()D
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameTime:D
         5: .line 449
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.holdFrame:()V
         6: .line 446
            aload 2
            monitorexit
         7: goto 19
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread com.sun.media.jfxmedia.events.NewFrameEvent java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
            ifnull 19
        11: .line 452
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameTime:D
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.getTimestamp:()D
            dcmpl
            ifeq 19
        12: .line 461
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        13: .line 462
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
        14: .line 463
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aconst_null
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.firstFrameEvent:Lcom/sun/media/jfxmedia/events/NewFrameEvent;
        15: .line 461
            aload 2
            monitorexit
        16: goto 19
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread com.sun.media.jfxmedia.events.NewFrameEvent java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.videoUpdateListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
        20: goto 26
        21: .line 469
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.VideoRendererListener
            astore 3 /* l */
        start local 3 // com.sun.media.jfxmedia.events.VideoRendererListener l
        22: .line 470
            aload 3 /* l */
            ifnull 25
        23: .line 471
            aload 3 /* l */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.VideoRendererListener.videoFrameUpdated:(Lcom/sun/media/jfxmedia/events/NewFrameEvent;)V
        24: .line 472
            goto 26
        25: .line 473
      StackMap locals: com.sun.media.jfxmedia.events.VideoRendererListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.VideoRendererListener l
        26: .line 468
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 21
        end local 2 // java.util.ListIterator it
        27: .line 477
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
        28: .line 479
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.videoFrameRateListeners:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 69
        29: .line 481
            invokestatic java.lang.System.nanoTime:()J
            l2d
            ldc 1.0E9
            ddiv
            dstore 2 /* currentFrameTime */
        start local 2 // double currentFrameTime
        30: .line 483
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.recomputeFrameRate:Z
            ifeq 35
        31: .line 485
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            iconst_0
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.recomputeFrameRate:Z
        32: .line 486
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dload 2 /* currentFrameTime */
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.previousFrameTime:D
        33: .line 487
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            lconst_1
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
        34: .line 488
            goto 69
        35: .line 489
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread com.sun.media.jfxmedia.events.NewFrameEvent double
      StackMap stack:
            iconst_0
            istore 4 /* fireFrameRateEvent */
        start local 4 // boolean fireFrameRateEvent
        36: .line 491
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
            lconst_1
            lcmp
            ifne 42
        37: .line 494
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dload 2 /* currentFrameTime */
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.previousFrameTime:D
            dsub
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
        38: .line 495
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            dconst_0
            dcmpl
            ifle 58
        39: .line 496
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dconst_1
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            ddiv
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.decodedFrameRate:D
        40: .line 497
            iconst_1
            istore 4 /* fireFrameRateEvent */
        41: .line 499
            goto 58
        42: .line 502
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            dstore 5 /* previousMeanFrameDuration */
        start local 5 // double previousMeanFrameDuration
        43: .line 505
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.encodedFrameRate:D
            dconst_0
            dcmpl
            ifeq 45
        44: .line 506
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.encodedFrameRate:D
            ldc 0.5
            dadd
            d2i
            goto 46
      StackMap locals: double
      StackMap stack:
        45: bipush 30
        46: .line 505
      StackMap locals:
      StackMap stack: int
            istore 7 /* movingAverageLength */
        start local 7 // int movingAverageLength
        47: .line 509
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
            iload 7 /* movingAverageLength */
            i2l
            lcmp
            ifge 49
        48: .line 510
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
            goto 50
      StackMap locals: int
      StackMap stack:
        49: iload 7 /* movingAverageLength */
            i2l
        50: .line 509
      StackMap locals:
      StackMap stack: long
            lstore 8 /* numFrames */
        start local 8 // long numFrames
        51: .line 513
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            lload 8 /* numFrames */
            lconst_1
            lsub
            l2d
            dload 5 /* previousMeanFrameDuration */
            dmul
        52: .line 514
            dload 2 /* currentFrameTime */
            dadd
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.previousFrameTime:D
            dsub
            lload 8 /* numFrames */
            l2d
            ddiv
        53: .line 513
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
        54: .line 518
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            dconst_0
            dcmpl
            ifle 58
        55: .line 519
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.decodedFrameRate:D
            dconst_1
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            ddiv
            dsub
            invokestatic java.lang.Math.abs:(D)D
            ldc 0.5
            dcmpl
            ifle 58
        56: .line 520
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dconst_1
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.meanFrameDuration:D
            ddiv
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.decodedFrameRate:D
        57: .line 521
            iconst_1
            istore 4 /* fireFrameRateEvent */
        end local 8 // long numFrames
        end local 7 // int movingAverageLength
        end local 5 // double previousMeanFrameDuration
        58: .line 525
      StackMap locals:
      StackMap stack:
            iload 4 /* fireFrameRateEvent */
            ifeq 67
        59: .line 527
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.videoFrameRateListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 5 /* it */
        start local 5 // java.util.ListIterator it
        60: goto 66
        61: .line 528
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.VideoFrameRateListener
            astore 6 /* l */
        start local 6 // com.sun.media.jfxmedia.events.VideoFrameRateListener l
        62: .line 529
            aload 6 /* l */
            ifnull 65
        63: .line 530
            aload 6 /* l */
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.decodedFrameRate:D
            invokeinterface com.sun.media.jfxmedia.events.VideoFrameRateListener.onFrameRateChanged:(D)V
        64: .line 531
            goto 66
        65: .line 532
      StackMap locals: com.sun.media.jfxmedia.events.VideoFrameRateListener
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 6 // com.sun.media.jfxmedia.events.VideoFrameRateListener l
        66: .line 527
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 61
        end local 5 // java.util.ListIterator it
        67: .line 538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dload 2 /* currentFrameTime */
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.previousFrameTime:D
        68: .line 539
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            dup
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
            lconst_1
            ladd
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.numFramesSincePlaying:J
        end local 4 // boolean fireFrameRateEvent
        end local 2 // double currentFrameTime
        69: .line 542
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.media.jfxmedia.events.NewFrameEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   70     0                       this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   70     1                        evt  Lcom/sun/media/jfxmedia/events/NewFrameEvent;
           20   27     2                         it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/VideoRendererListener;>;>;
           22   26     3                          l  Lcom/sun/media/jfxmedia/events/VideoRendererListener;
           30   69     2           currentFrameTime  D
           36   69     4         fireFrameRateEvent  Z
           43   58     5  previousMeanFrameDuration  D
           47   58     7        movingAverageLength  I
           51   58     8                  numFrames  J
           60   67     5                         it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/VideoFrameRateListener;>;>;
           62   66     6                          l  Lcom/sun/media/jfxmedia/events/VideoFrameRateListener;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          13    16      17  any
          17    18      17  any
    MethodParameters:
      Name  Flags
      evt   

  private void HandleStateEvents(com.sun.media.jfxmedia.events.PlayerStateEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.PlayerStateEvent evt
         0: .line 545
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent.getState:()Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerState:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
         1: .line 547
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.PLAYING:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent.getState:()Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            if_acmpne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: com.sun.media.jfxmediaimpl.NativeMediaPlayer
         2: iconst_0
      StackMap locals: com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread com.sun.media.jfxmedia.events.PlayerStateEvent
      StackMap stack: com.sun.media.jfxmediaimpl.NativeMediaPlayer int
         3: putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.recomputeFrameRate:Z
         4: .line 549
            invokestatic com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.$SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState:()[I
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerState:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iaload
            tableswitch { // 2 - 8
                    2: 5
                    3: 8
                    4: 11
                    5: 10
                    6: 11
                    7: 10
                    8: 11
              default: 13
          }
         5: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer.onNativeInit:()V
         6: .line 552
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.sendFakeBufferProgressEvent:()V
         7: .line 553
            goto 13
         8: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.isMediaPulseEnabled:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
         9: .line 556
            goto 13
        10: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer.doMediaPulseTask:()Z
            pop
        11: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.isMediaPulseEnabled:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        12: .line 566
            goto 13
        13: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedStateEvents:Ljava/util/List;
            dup
            astore 2
            monitorenter
        14: .line 572
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerStateListeners:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 18
        15: .line 574
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedStateEvents:Ljava/util/List;
            aload 1 /* evt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 575
            aload 2
            monitorexit
        17: return
        18: .line 571
      StackMap locals: java.util.List
      StackMap stack:
            aload 2
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 2
            monitorexit
        21: athrow
        22: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerStateListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
        23: goto 45
        24: .line 580
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.PlayerStateListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.PlayerStateListener listener
        25: .line 581
            aload 3 /* listener */
            ifnull 44
        26: .line 582
            invokestatic com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.$SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState:()[I
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerState:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iaload
            tableswitch { // 2 - 8
                    2: 27
                    3: 31
                    4: 33
                    5: 35
                    6: 37
                    7: 39
                    8: 41
              default: 43
          }
        27: .line 584
      StackMap locals: com.sun.media.jfxmedia.events.PlayerStateListener
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer.onNativeInit:()V
        28: .line 585
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.sendFakeBufferProgressEvent:()V
        29: .line 586
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onReady:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        30: .line 587
            goto 45
        31: .line 590
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onPlaying:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        32: .line 591
            goto 45
        33: .line 594
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onPause:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        34: .line 595
            goto 45
        35: .line 598
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onStop:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        36: .line 599
            goto 45
        37: .line 602
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onStall:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        38: .line 603
            goto 45
        39: .line 606
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onFinish:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        40: .line 607
            goto 45
        41: .line 610
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.PlayerStateListener.onHalt:(Lcom/sun/media/jfxmedia/events/PlayerStateEvent;)V
        42: .line 611
            goto 45
        43: .line 616
      StackMap locals:
      StackMap stack:
            goto 45
        44: .line 617
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.PlayerStateListener listener
        45: .line 579
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 24
        end local 2 // java.util.ListIterator it
        46: .line 620
            return
        end local 1 // com.sun.media.jfxmedia.events.PlayerStateEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   47     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   47     1       evt  Lcom/sun/media/jfxmedia/events/PlayerStateEvent;
           23   46     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/PlayerStateListener;>;>;
           25   45     3  listener  Lcom/sun/media/jfxmedia/events/PlayerStateListener;
      Exception table:
        from    to  target  type
          14    17      20  any
          18    19      20  any
          20    21      20  any
    MethodParameters:
      Name  Flags
      evt   

  private void HandlePlayerTimeEvents(com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$PlayerTimeEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent evt
         0: .line 623
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedTimeEvents:Ljava/util/List;
            dup
            astore 2
            monitorenter
         1: .line 624
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerTimeListeners:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         2: .line 626
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedTimeEvents:Ljava/util/List;
            aload 1 /* evt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 627
            aload 2
            monitorexit
         4: return
         5: .line 623
      StackMap locals: java.util.List
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.playerTimeListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
        10: goto 16
        11: .line 632
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.PlayerTimeListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.PlayerTimeListener listener
        12: .line 633
            aload 3 /* listener */
            ifnull 15
        13: .line 634
            aload 3 /* listener */
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent.getTime:()D
            invokeinterface com.sun.media.jfxmedia.events.PlayerTimeListener.onDurationChanged:(D)V
        14: .line 635
            goto 16
        15: .line 636
      StackMap locals: com.sun.media.jfxmedia.events.PlayerTimeListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.PlayerTimeListener listener
        16: .line 631
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 11
        end local 2 // java.util.ListIterator it
        17: .line 639
            return
        end local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   18     1       evt  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$PlayerTimeEvent;
           10   17     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/PlayerTimeListener;>;>;
           12   16     3  listener  Lcom/sun/media/jfxmedia/events/PlayerTimeListener;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      evt   

  private void HandleFrameSizeChangedEvents(com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$FrameSizeChangedEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent evt
         0: .line 642
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent.getWidth:()I
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameWidth:I
         1: .line 643
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent.getHeight:()I
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameHeight:I
         2: .line 644
            iconst_1
            new java.lang.StringBuilder
            dup
            ldc "** Frame size changed ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameWidth:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameHeight:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
         3: .line 645
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.videoTrackSizeListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
         4: goto 10
         5: .line 646
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.VideoTrackSizeListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.VideoTrackSizeListener listener
         6: .line 647
            aload 3 /* listener */
            ifnull 9
         7: .line 648
            aload 3 /* listener */
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameWidth:I
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.frameHeight:I
            invokeinterface com.sun.media.jfxmedia.events.VideoTrackSizeListener.onSizeChanged:(II)V
         8: .line 649
            goto 10
         9: .line 650
      StackMap locals: com.sun.media.jfxmedia.events.VideoTrackSizeListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.VideoTrackSizeListener listener
        10: .line 645
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.ListIterator it
        11: .line 653
            return
        end local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   12     1       evt  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$FrameSizeChangedEvent;
            4   11     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/VideoTrackSizeListener;>;>;
            6   10     3  listener  Lcom/sun/media/jfxmedia/events/VideoTrackSizeListener;
    MethodParameters:
      Name  Flags
      evt   

  private void HandleTrackEvents(com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$TrackEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent evt
         0: .line 656
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.media:Lcom/sun/media/jfxmediaimpl/NativeMedia;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent.getTrack:()Lcom/sun/media/jfxmedia/track/Track;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMedia.addTrack:(Lcom/sun/media/jfxmedia/track/Track;)V
         1: .line 658
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent.getTrack:()Lcom/sun/media/jfxmedia/track/Track;
            instanceof com.sun.media.jfxmedia.track.VideoTrack
            ifeq 3
         2: .line 659
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent.getTrack:()Lcom/sun/media/jfxmedia/track/Track;
            checkcast com.sun.media.jfxmedia.track.VideoTrack
            invokevirtual com.sun.media.jfxmedia.track.VideoTrack.getEncodedFrameRate:()F
            f2d
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.encodedFrameRate:D
         3: .line 661
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0    4     1   evt  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$TrackEvent;
    MethodParameters:
      Name  Flags
      evt   

  private void HandleMarkerEvents(com.sun.media.jfxmedia.events.MarkerEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/MarkerEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.MarkerEvent evt
         0: .line 664
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.markerListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
         1: goto 7
         2: .line 665
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.MarkerListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.MarkerListener listener
         3: .line 666
            aload 3 /* listener */
            ifnull 6
         4: .line 667
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.MarkerListener.onMarker:(Lcom/sun/media/jfxmedia/events/MarkerEvent;)V
         5: .line 668
            goto 7
         6: .line 669
      StackMap locals: com.sun.media.jfxmedia.events.MarkerListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.MarkerListener listener
         7: .line 664
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 2
        end local 2 // java.util.ListIterator it
         8: .line 672
            return
        end local 1 // com.sun.media.jfxmedia.events.MarkerEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0    9     1       evt  Lcom/sun/media/jfxmedia/events/MarkerEvent;
            1    8     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/MarkerListener;>;>;
            3    7     3  listener  Lcom/sun/media/jfxmedia/events/MarkerListener;
    MethodParameters:
      Name  Flags
      evt   

  private void HandleWarningEvents(com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$WarningEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent evt
         0: .line 675
            iconst_3
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent.getSource:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
         1: .line 676
            return
        end local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0    2     1   evt  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$WarningEvent;
    MethodParameters:
      Name  Flags
      evt   

  private void HandleErrorEvents(com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent);
    descriptor: (Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$MediaErrorEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent evt
         0: .line 679
            iconst_4
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent.getMessage:()Ljava/lang/String;
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
         1: .line 681
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedErrorEvents:Ljava/util/List;
            dup
            astore 2
            monitorenter
         2: .line 682
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.errorListeners:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         3: .line 684
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedErrorEvents:Ljava/util/List;
            aload 1 /* evt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 685
            aload 2
            monitorexit
         5: return
         6: .line 681
      StackMap locals: java.util.List
      StackMap stack:
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.errorListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
        11: goto 17
        12: .line 690
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.MediaErrorListener
            astore 3 /* l */
        start local 3 // com.sun.media.jfxmedia.events.MediaErrorListener l
        13: .line 691
            aload 3 /* l */
            ifnull 16
        14: .line 692
            aload 3 /* l */
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent.getSource:()Ljava/lang/Object;
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent.getErrorCode:()I
            aload 1 /* evt */
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent.getMessage:()Ljava/lang/String;
            invokeinterface com.sun.media.jfxmedia.events.MediaErrorListener.onError:(Ljava/lang/Object;ILjava/lang/String;)V
        15: .line 693
            goto 17
        16: .line 694
      StackMap locals: com.sun.media.jfxmedia.events.MediaErrorListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.MediaErrorListener l
        17: .line 689
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 12
        end local 2 // java.util.ListIterator it
        18: .line 697
            return
        end local 1 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   19     1   evt  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$MediaErrorEvent;
           11   18     2    it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/MediaErrorListener;>;>;
           13   17     3     l  Lcom/sun/media/jfxmedia/events/MediaErrorListener;
      Exception table:
        from    to  target  type
           2     5       8  any
           6     7       8  any
           8     9       8  any
    MethodParameters:
      Name  Flags
      evt   

  private void HandleBufferEvents(com.sun.media.jfxmedia.events.BufferProgressEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/BufferProgressEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.BufferProgressEvent evt
         0: .line 700
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedBufferEvents:Ljava/util/List;
            dup
            astore 2
            monitorenter
         1: .line 701
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.bufferListeners:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         2: .line 703
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.cachedBufferEvents:Ljava/util/List;
            aload 1 /* evt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 704
            aload 2
            monitorexit
         4: return
         5: .line 700
      StackMap locals: java.util.List
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.bufferListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
        10: goto 16
        11: .line 709
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.BufferListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.BufferListener listener
        12: .line 710
            aload 3 /* listener */
            ifnull 15
        13: .line 711
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.BufferListener.onBufferProgress:(Lcom/sun/media/jfxmedia/events/BufferProgressEvent;)V
        14: .line 712
            goto 16
        15: .line 713
      StackMap locals: com.sun.media.jfxmedia.events.BufferListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.BufferListener listener
        16: .line 708
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 11
        end local 2 // java.util.ListIterator it
        17: .line 716
            return
        end local 1 // com.sun.media.jfxmedia.events.BufferProgressEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0   18     1       evt  Lcom/sun/media/jfxmedia/events/BufferProgressEvent;
           10   17     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/BufferListener;>;>;
           12   16     3  listener  Lcom/sun/media/jfxmedia/events/BufferListener;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      evt   

  private void HandleAudioSpectrumEvents(com.sun.media.jfxmedia.events.AudioSpectrumEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/AudioSpectrumEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.AudioSpectrumEvent evt
         0: .line 719
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.audioSpectrumListeners:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 2 /* it */
        start local 2 // java.util.ListIterator it
         1: goto 7
         2: .line 720
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.media.jfxmedia.events.AudioSpectrumListener
            astore 3 /* listener */
        start local 3 // com.sun.media.jfxmedia.events.AudioSpectrumListener listener
         3: .line 721
            aload 3 /* listener */
            ifnull 6
         4: .line 722
            aload 3 /* listener */
            aload 1 /* evt */
            invokeinterface com.sun.media.jfxmedia.events.AudioSpectrumListener.onAudioSpectrumEvent:(Lcom/sun/media/jfxmedia/events/AudioSpectrumEvent;)V
         5: .line 723
            goto 7
         6: .line 724
      StackMap locals: com.sun.media.jfxmedia.events.AudioSpectrumListener
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // com.sun.media.jfxmedia.events.AudioSpectrumListener listener
         7: .line 719
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 2
        end local 2 // java.util.ListIterator it
         8: .line 727
            return
        end local 1 // com.sun.media.jfxmedia.events.AudioSpectrumEvent evt
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0    9     1       evt  Lcom/sun/media/jfxmedia/events/AudioSpectrumEvent;
            1    8     2        it  Ljava/util/ListIterator<Ljava/lang/ref/WeakReference<Lcom/sun/media/jfxmedia/events/AudioSpectrumListener;>;>;
            3    7     3  listener  Lcom/sun/media/jfxmedia/events/AudioSpectrumListener;
    MethodParameters:
      Name  Flags
      evt   

  public void postEvent(com.sun.media.jfxmedia.events.PlayerEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/PlayerEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
        start local 1 // com.sun.media.jfxmedia.events.PlayerEvent event
         0: .line 733
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
            ifnull 2
         1: .line 734
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
            aload 1 /* event */
            invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
            pop
         2: .line 736
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.media.jfxmedia.events.PlayerEvent event
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            0    3     1  event  Lcom/sun/media/jfxmedia/events/PlayerEvent;
    MethodParameters:
       Name  Flags
      event  

  public void terminateLoop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
         0: .line 742
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.stopped:Z
         1: .line 745
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.eventQueue:Ljava/util/concurrent/BlockingQueue;
            new com.sun.media.jfxmedia.events.PlayerEvent
            dup
            invokespecial com.sun.media.jfxmedia.events.PlayerEvent.<init>:()V
            invokeinterface java.util.concurrent.BlockingQueue.put:(Ljava/lang/Object;)V
         2: .line 746
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 747
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException

  private void sendFakeBufferProgressEvent();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=3, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
         0: .line 751
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.media:Lcom/sun/media/jfxmediaimpl/NativeMedia;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMedia.getLocator:()Lcom/sun/media/jfxmedia/locator/Locator;
            invokevirtual com.sun.media.jfxmedia.locator.Locator.getContentType:()Ljava/lang/String;
            astore 1 /* contentType */
        start local 1 // java.lang.String contentType
         1: .line 752
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer.media:Lcom/sun/media/jfxmediaimpl/NativeMedia;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMedia.getLocator:()Lcom/sun/media/jfxmedia/locator/Locator;
            invokevirtual com.sun.media.jfxmedia.locator.Locator.getProtocol:()Ljava/lang/String;
            astore 2 /* protocol */
        start local 2 // java.lang.String protocol
         2: .line 753
            aload 1 /* contentType */
            ifnull 3
            aload 1 /* contentType */
            ldc "audio/mpegurl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 1 /* contentType */
            ldc "application/vnd.apple.mpegurl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 754
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* protocol */
            ifnull 5
            aload 2 /* protocol */
            ldc "http"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            aload 2 /* protocol */
            ldc "https"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.media.jfxmedia.events.BufferProgressEvent
            dup
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.this$0:Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer;
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer.getDuration:()D
            lconst_0
            lconst_1
            lconst_1
            invokespecial com.sun.media.jfxmedia.events.BufferProgressEvent.<init>:(DJJJ)V
            invokevirtual com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.HandleBufferEvents:(Lcom/sun/media/jfxmedia/events/BufferProgressEvent;)V
         5: .line 757
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String protocol
        end local 1 // java.lang.String contentType
        end local 0 // com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/sun/media/jfxmediaimpl/NativeMediaPlayer$EventQueueThread;
            1    6     1  contentType  Ljava/lang/String;
            2    6     2     protocol  Ljava/lang/String;

  static int[] $SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 381
            getstatic com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.$SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.values:()[Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.FINISHED:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            bipush 7
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.HALTED:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            bipush 8
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.PAUSED:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.PLAYING:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.READY:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.STALLED:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.STOPPED:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.UNKNOWN:Lcom/sun/media/jfxmedia/events/PlayerStateEvent$PlayerState;
            invokevirtual com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState.ordinal:()I
            iconst_1
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread.$SWITCH_TABLE$com$sun$media$jfxmedia$events$PlayerStateEvent$PlayerState:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
}
SourceFile: "NativeMediaPlayer.java"
NestHost: com.sun.media.jfxmediaimpl.NativeMediaPlayer
InnerClasses:
  public final PlayerState = com.sun.media.jfxmedia.events.PlayerStateEvent$PlayerState of com.sun.media.jfxmedia.events.PlayerStateEvent
  private EventQueueThread = com.sun.media.jfxmediaimpl.NativeMediaPlayer$EventQueueThread of com.sun.media.jfxmediaimpl.NativeMediaPlayer
  private FrameSizeChangedEvent = com.sun.media.jfxmediaimpl.NativeMediaPlayer$FrameSizeChangedEvent of com.sun.media.jfxmediaimpl.NativeMediaPlayer
  public MediaErrorEvent = com.sun.media.jfxmediaimpl.NativeMediaPlayer$MediaErrorEvent of com.sun.media.jfxmediaimpl.NativeMediaPlayer
  private PlayerTimeEvent = com.sun.media.jfxmediaimpl.NativeMediaPlayer$PlayerTimeEvent of com.sun.media.jfxmediaimpl.NativeMediaPlayer
  private TrackEvent = com.sun.media.jfxmediaimpl.NativeMediaPlayer$TrackEvent of com.sun.media.jfxmediaimpl.NativeMediaPlayer
  private WarningEvent = com.sun.media.jfxmediaimpl.NativeMediaPlayer$WarningEvent of com.sun.media.jfxmediaimpl.NativeMediaPlayer