| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
and hence also promoting VideoPixelFormat
|
| |
|
|
|
|
| |
alpha 0 instead of the debug color white vec4(1), which leads to the white seam if out of gcu_ColorTexBBox
|
|
|
|
| |
need to issue Shape.updateMat()
|
|
|
|
| |
pending setup/update of texture and image dimensions
|
|
|
|
| |
available; JOGL ImageSequence: Add addFrame(GL, TextureFrame), remove*Frame() and isSequenceAnimating()
|
|
|
|
| |
lock free
|
|
|
|
|
|
|
|
| |
applyMatToMv() and getMat(*)
It is sufficient to mark the internal iMat dirty when mutating the source values (pos, ..) and calling updateMat() only once when used in applyMatToMv() and getMat(*).
iMatIdent can also be set to true within updateMat() IF neither mutations occured, i.e. no translocation, scale or rotation.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
GLMediaEventListener, easing listener callbacks; Prepare SubtitleEventListener generalization (Bug 1494)
Moves pushSound(), pushSubtitle*() from FFMPEGMediaPlayer to GLMediaPlayerImpl,
as it is handled in a generic way - even though currently only called by native FFMPEGMediaPlayer implementation.
Note: This patch is incomplete, i.e. not even compile clean.
But choses as-is to semantically split the work to ease review.
|
|
|
|
| |
provided by owner to take back borrowed resources (texture of bitmap subtitle)
|
|
|
|
| |
color/blending and subLineDY; MediaPlayer: Add full infoLine toggle with click on infoBox
|
| |
|
|
|
|
|
|
|
| |
func-ptr in native; readNextPacket0() passes video+subtitle texTarget and texID
For bitmap subtitles we need to push the bitmap into its own texture.
Hence readNextPacket0() must switch to used texture using glEnable() on !core and glBindTexture().
|
|
|
|
| |
to pts [ms] (fixed); Use ASSEventLine packets within proper pts only.
|
|
|
|
| |
implementations: Either Uninit, Init, Pause or Play (exclusive)
|
|
|
|
| |
GLMediaPlayer
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
zoomSize == 1, full-screen)
|
|
|
|
| |
ass/saa) support via GLMediaPlayer/FFMPEGMediaPlayer
|
|
|
|
|
|
|
|
| |
support via FFMpeg
TODO:
- We may want to refine subtitle PTS handling
- We may want to support bitmapped subtitles
|
|
|
|
| |
GraphShape.drawImpl0(..) override;
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
show their language as a button - press to switch to next
|
|
|
|
|
|
|
|
| |
streams and languages and add convenient switchStream(..) entry.
audio/video/subtitle streams and language metadata is maintained by arrays holding the stream-IDs and language string identifier.
Implementation added in FFMPEGPlayer for these data-sets.
|
|
|
|
| |
SliderAdapter.clicked() as dragged is always called
|
| |
|
| |
|
| |
|
|
|
|
| |
button; Fix tooltip help; Make slower-speed reduce by half if <= 1
|
|
|
|
| |
response when active
|
|
|
|
| |
activeRGBAModulateOn.
|
|
|
|
| |
API doc to ease usage
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shared GLContext, removing resource restrictions
In a use case with hundreds of GLMediaPlayer instances,
this causes the application to bail out due to running out of resources.
+++
GLMediaPlayer exposes resource restrictions and locking related
with the created off-thread shared GLContext
due to its newly created NativeWindow *GraphicsDevice instance (on X11).
On the X11 platform, the *GraphicsDevice actually uses a native resource (X11 Display handle) and hence creating such device is costly and limited.
To operate an off-thread GLContext w/o actual X11 input handling,
it is *NOT* required to use a new instance.
+++
Further more, the device is using locking.
To operate an off-thread GLContext, it is *NOT* required to use locking on it
as it does not perform actual X11 input handling etc.
All operations are performed on the shared GL context.
+++
Solution is to create a shared non-locking device clone
compatible with the source.
A share counter shall determine that the last one actually gets destructed.
The usual ..
|
|
|
|
|
|
|
|
|
| |
[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.
|
|
|
|
| |
DefaultGraphicsDevice.swap{Device->}HandleAndOwnership()
|
|
|
|
|
|
|
|
|
|
| |
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()
|
|
|
|
|
|
|
|
|
|
| |
bit-shift expressions and simplify it
commit 1dcfdf71c09c6d774ac47012c05e09da4a085d7b
- still used the 'hash code' bit shift pattern, not necessary -> simplified
- the value as not ensured to be long, hence conversion occured
This caused Graph's MSAA not being picked up properly using the shaderKey.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comments; UIMediaGrid01 now uses RangedGroup
RangeSlider
- Fix pageSize, i.e. allow valid content.getBounds() be pending @ validateImpl()
- Clip value [0, maximum - pageSize]
- Has to use Float.isFinite() to capture both, NaN and Infinity
-- used for pageSize, determining whether slider uses pageSize rect-knob or position round-knob
-- used for minMax, val, val_pct and temp range + pageSize_pct
-- don't overwrite valid pageSize if leading to !isFinite()
- Reuse setKnobSize() for ctor as well, where padding is be done once (FIXME?)
- Tested via RangedGroup w/ UIMediaGrid01 and FontView0
-- vertical slider, inverse and !inverse
|
|
|
|
| |
FontView01: Use TooltipShape for GlyphShape only with mouse click -> Tooltip.now()
|