More fine control is need on when and what video frame is currently rendered.
It is frequently possible that the media pipeline timer (which is usually bound to the audio stream) has a time lag with video stream timer. For example when the media is played back on a high rate (e.g. 4x), but the video stream decoder has insufficient performance to process the stream on such rate and it has no QoS capabilities to skip the frames and keep synchronized (such situation is described in the issue https://javafx-jira.kenai.com/browse/RT-30299). In such cases we need to provide information on the current video stream playback time to give a user more fine control over playback in this situation (e.g. he may reduce the rate to keep streams synchronous or make a seek() when the lag is too large).
We need to expose
com.sun.media.jfxmedia.events.VideoRendererListener
com.sun.media.jfxmedia.events.NewFrameEvent
and part of the com.sun.media.jfxmedia.control.VideoDataBuffer interface to the public API
we also need to add methods
javafx.scene.media.MediaPlayer.add/removeVideoRendererListener()
It is frequently possible that the media pipeline timer (which is usually bound to the audio stream) has a time lag with video stream timer. For example when the media is played back on a high rate (e.g. 4x), but the video stream decoder has insufficient performance to process the stream on such rate and it has no QoS capabilities to skip the frames and keep synchronized (such situation is described in the issue https://javafx-jira.kenai.com/browse/RT-30299). In such cases we need to provide information on the current video stream playback time to give a user more fine control over playback in this situation (e.g. he may reduce the rate to keep streams synchronous or make a seek() when the lag is too large).
We need to expose
com.sun.media.jfxmedia.events.VideoRendererListener
com.sun.media.jfxmedia.events.NewFrameEvent
and part of the com.sun.media.jfxmedia.control.VideoDataBuffer interface to the public API
we also need to add methods
javafx.scene.media.MediaPlayer.add/removeVideoRendererListener()
- relates to
-
JDK-8097366 Playing video at 4x, pause, changing the speed to 1x causes the slider to jump forward about 30 seconds.
- Closed
-
JDK-8092154 Ability to snapshot scene every frame - listening to scene rendering events
- Open