-
Enhancement
-
Resolution: Fixed
-
P3
-
fx2.0
The current rendering path is a simple, direct port from FX script. This path was complicated by issues with crossing the Java/FX script boundary which simply does not exist any more. There are a number of improvements that can now be made to the media rendering path in the absence of such complications.
- The current MediaFrameHandler and subclasses in runtime need to go away
- The MediaView class itself will become the one and only MediaFrameHandler implementation
- Media rendering needs to be switched to a pull model, a frame update event will set a dirty flag on the MediaView and the rendering thread will then perform the steps necessary to render the updated image
- The toolkit specific MediaView classes need to be modified to handle image conversion from a VideoDataBuffer to a platform texture
The benefits of doing this are:
- Media rendering becomes thread safe, currently no consideration is given to threading except in a couple places
- We waste fewer resources as we do not end up copying image data that never gets rendered
- This allows more direct access to media image data by the platform renderers which allows for optimizations not currently available (e.g., multiple texture images for *proper* YV12 and yvua420p rendering)
- The current MediaFrameHandler and subclasses in runtime need to go away
- The MediaView class itself will become the one and only MediaFrameHandler implementation
- Media rendering needs to be switched to a pull model, a frame update event will set a dirty flag on the MediaView and the rendering thread will then perform the steps necessary to render the updated image
- The toolkit specific MediaView classes need to be modified to handle image conversion from a VideoDataBuffer to a platform texture
The benefits of doing this are:
- Media rendering becomes thread safe, currently no consideration is given to threading except in a couple places
- We waste fewer resources as we do not end up copying image data that never gets rendered
- This allows more direct access to media image data by the platform renderers which allows for optimizations not currently available (e.g., multiple texture images for *proper* YV12 and yvua420p rendering)
- blocks
-
JDK-8112650 Media breaks PhysicsBall app
- Closed
-
JDK-8101467 Re-enable D3DLOCK_DISCARD for texture upload after YV_12 format is replaced by MULTI_YCbCr_420
- Closed