class javafx.scene.media.MediaPlayer$RendererListener implements com.sun.media.jfxmedia.events.VideoRendererListener, com.sun.javafx.tk.TKPulseListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.media.MediaPlayer$RendererListener
  super_class: java.lang.Object
{
  boolean updateMediaViews;
    descriptor: Z
    flags: (0x0000) 

  final javafx.scene.media.MediaPlayer this$0;
    descriptor: Ljavafx/scene/media/MediaPlayer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(javafx.scene.media.MediaPlayer);
    descriptor: (Ljavafx/scene/media/MediaPlayer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.media.MediaPlayer$RendererListener this
         0: .line 2688
            aload 0 /* this */
            aload 1
            putfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javafx.scene.media.MediaPlayer$RendererListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/media/MediaPlayer$RendererListener;
    MethodParameters:
        Name  Flags
      this$0  final

  public void videoFrameUpdated(com.sun.media.jfxmedia.events.NewFrameEvent);
    descriptor: (Lcom/sun/media/jfxmedia/events/NewFrameEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // javafx.scene.media.MediaPlayer$RendererListener this
        start local 1 // com.sun.media.jfxmedia.events.NewFrameEvent nfe
         0: .line 2696
            aload 1 /* nfe */
            invokevirtual com.sun.media.jfxmedia.events.NewFrameEvent.getFrameData:()Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            astore 2 /* vdb */
        start local 2 // com.sun.media.jfxmedia.control.VideoDataBuffer vdb
         1: .line 2697
            aload 2 /* vdb */
            ifnull 18
         2: .line 2699
            new javafx.util.Duration
            dup
            aload 2 /* vdb */
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.getTimestamp:()D
            ldc 1000.0
            dmul
            invokespecial javafx.util.Duration.<init>:(D)V
            astore 3 /* frameTS */
        start local 3 // javafx.util.Duration frameTS
         3: .line 2700
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            invokevirtual javafx.scene.media.MediaPlayer.getStopTime:()Ljavafx/util/Duration;
            astore 4 /* stopTime */
        start local 4 // javafx.util.Duration stopTime
         4: .line 2701
            aload 3 /* frameTS */
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            invokevirtual javafx.scene.media.MediaPlayer.getStartTime:()Ljavafx/util/Duration;
            invokevirtual javafx.util.Duration.greaterThanOrEqualTo:(Ljavafx/util/Duration;)Z
            ifeq 17
            aload 4 /* stopTime */
            invokevirtual javafx.util.Duration.isUnknown:()Z
            ifne 5
            aload 3 /* frameTS */
            aload 4 /* stopTime */
            invokevirtual javafx.util.Duration.lessThanOrEqualTo:(Ljavafx/util/Duration;)Z
            ifeq 17
         5: .line 2702
      StackMap locals: com.sun.media.jfxmedia.control.VideoDataBuffer javafx.util.Duration javafx.util.Duration
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.media.MediaPlayer$RendererListener.updateMediaViews:Z
         6: .line 2704
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.renderLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         7: .line 2705
            aload 2 /* vdb */
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.holdFrame:()V
         8: .line 2708
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            ifnull 10
         9: .line 2709
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
        10: .line 2711
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aload 2 /* vdb */
            putfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
        11: .line 2704
            aload 5
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 5
            monitorexit
        14: athrow
        15: .line 2714
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.javafx.tk.Toolkit.getToolkit:()Lcom/sun/javafx/tk/Toolkit;
            invokevirtual com.sun.javafx.tk.Toolkit.requestNextPulse:()V
        16: .line 2715
            goto 18
        17: .line 2716
      StackMap locals:
      StackMap stack:
            aload 2 /* vdb */
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
        end local 4 // javafx.util.Duration stopTime
        end local 3 // javafx.util.Duration frameTS
        18: .line 2719
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.media.jfxmedia.control.VideoDataBuffer vdb
        end local 1 // com.sun.media.jfxmedia.events.NewFrameEvent nfe
        end local 0 // javafx.scene.media.MediaPlayer$RendererListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Ljavafx/scene/media/MediaPlayer$RendererListener;
            0   19     1       nfe  Lcom/sun/media/jfxmedia/events/NewFrameEvent;
            1   19     2       vdb  Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            3   18     3   frameTS  Ljavafx/util/Duration;
            4   18     4  stopTime  Ljavafx/util/Duration;
      Exception table:
        from    to  target  type
           7    12      13  any
          13    14      13  any
    MethodParameters:
      Name  Flags
      nfe   

  public void releaseVideoFrames();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javafx.scene.media.MediaPlayer$RendererListener this
         0: .line 2723
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.renderLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 2724
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            ifnull 4
         2: .line 2725
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
         3: .line 2726
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aconst_null
            putfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
         4: .line 2729
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            ifnull 7
         5: .line 2730
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
         6: .line 2731
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aconst_null
            putfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
         7: .line 2723
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 2734
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.media.MediaPlayer$RendererListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljavafx/scene/media/MediaPlayer$RendererListener;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any

  public void pulse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // javafx.scene.media.MediaPlayer$RendererListener this
         0: .line 2738
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.updateMediaViews:Z
            ifeq 25
         1: .line 2739
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.media.MediaPlayer$RendererListener.updateMediaViews:Z
         2: .line 2745
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.renderLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 2746
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            ifnull 8
         4: .line 2747
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            ifnull 6
         5: .line 2748
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            invokeinterface com.sun.media.jfxmedia.control.VideoDataBuffer.releaseFrame:()V
         6: .line 2750
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
            putfield javafx.scene.media.MediaPlayer.currentRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
         7: .line 2751
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            aconst_null
            putfield javafx.scene.media.MediaPlayer.nextRenderFrame:Lcom/sun/media/jfxmedia/control/VideoDataBuffer;
         8: .line 2745
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 2756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.viewRefs:Ljava/util/Set;
            dup
            astore 1
            monitorenter
        13: .line 2757
            aload 0 /* this */
            getfield javafx.scene.media.MediaPlayer$RendererListener.this$0:Ljavafx/scene/media/MediaPlayer;
            getfield javafx.scene.media.MediaPlayer.viewRefs:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
        14: .line 2758
            goto 20
        15: .line 2759
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast javafx.scene.media.MediaView
            astore 3 /* view */
        start local 3 // javafx.scene.media.MediaView view
        16: .line 2760
            aload 3 /* view */
            ifnull 19
        17: .line 2761
            aload 3 /* view */
            invokevirtual javafx.scene.media.MediaView.notifyMediaFrameUpdated:()V
        18: .line 2762
            goto 20
        19: .line 2763
      StackMap locals: javafx.scene.media.MediaView
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 3 // javafx.scene.media.MediaView view
        20: .line 2758
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 2 // java.util.Iterator iter
        21: .line 2756
            aload 1
            monitorexit
        22: goto 25
      StackMap locals: javafx.scene.media.MediaPlayer$RendererListener java.util.Set
      StackMap stack: java.lang.Throwable
        23: aload 1
            monitorexit
        24: athrow
        25: .line 2768
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.media.MediaPlayer$RendererListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Ljavafx/scene/media/MediaPlayer$RendererListener;
           14   21     2  iter  Ljava/util/Iterator<Ljava/lang/ref/WeakReference<Ljavafx/scene/media/MediaView;>;>;
           16   20     3  view  Ljavafx/scene/media/MediaView;
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any
          13    22      23  any
          23    24      23  any
}
SourceFile: "MediaPlayer.java"
NestHost: javafx.scene.media.MediaPlayer
InnerClasses:
  private RendererListener = javafx.scene.media.MediaPlayer$RendererListener of javafx.scene.media.MediaPlayer