| 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 |