Summary: | GLMediaPlayer: Remove resource restrictions and locking with shared GLContext (*GraphicsDevice) | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | Sven Gothel <sgothel> |
Component: | video | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P4 | ||
Version: | 2.6.0 | ||
Hardware: | All | ||
OS: | all | ||
Type: | FEATURE | SCM Refs: |
76487cd34ba706bee6c122a1cbbc75f5639eb4a4
18afa5200983bb158e631c81f2df1ca1a45cd882
78812de21182e32f86a823321b017f7f6cf52ae3
|
Workaround: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 805 |
Description
Sven Gothel
2024-01-25 09:41:23 CET
commit 76487cd34ba706bee6c122a1cbbc75f5639eb4a4 NativeWindowFactory.createDevice(..) w/ unitID for cloning; DefaultGraphicsDevice: Move ownership (Object) code into base class ensuring same code NativeWindowFactory.createDevice(..) w/ unitID - Allows cloning a device instance with same parameter. DefaultGraphicsDevice: Move ownership (Object) code final into base class ensuring same code - Rename DefaultGraphicsDevice.swapDeviceHandleAndOwnership() -> swapHandleAndOwnership() (In reply to Sven Gothel from comment #1) commit 18afa5200983bb158e631c81f2df1ca1a45cd882 Bug 1491: Add missing rename DefaultGraphicsDevice.swap{Device->}HandleAndOwnership() commit 78812de21182e32f86a823321b017f7f6cf52ae3 Bug 1491: FFMPEGMediaPlayer: Lock moviePtr lifecycle phase in-between [initStreamImpl - destruction] initStreamImpl() calls ffmpeg natives.setStream0(..), which in turn callsback to the GLMediaPlayerImpl and FFMPEGPlayer and hence requires a valid moviePtr. In total, it covers a longer time period. This patch uses a moviePtrLock object avoiding destruction while within initStreamImpl. commit 8fe39d3a524e5e580cf2667988965f1e27fed95b Bug 1491: GLMediaPlayerImpl: Use a shared *GraphicsDevice for all compatible shared GLContext, removing resource restrictions implemented as described. +++ We may consider reusing this solution adding a GraphicsDevice shared resource handler class for other similar (if not same) cases. See a demos w/ > 200 GLMediaPlayer instance running in a GraphUI Ranged Group, having 36 instances being visible and displaying new decoded images. https://jausoft.com/blog/wp-content/uploads/2024/01/UIMediaGrid01-norm-q1-s01-fsaa4-media-snap22b-1920x1080-1.jpg |