Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Unstable

Changes

Summary

  1. Bug 927 - Enhance GLMediaPlayer/FFMPEGMediaPlayer MovieSimple to run (details)
  2. Bug 952 - JAWTWindow.JAWTComponentListener's ctor() and detach() may (details)
Commit b92a813063212130d6205a25b1f84662e8c4c0f9 by Sven Gothel
Bug 927 - Enhance GLMediaPlayer/FFMPEGMediaPlayer MovieSimple to run multiple instances in parallel

Tested on GNU/Linux x86_64,

Result: Plays well here audio and video, i.e. audio is actually mixed from both movies.

Even if one movie (below) stops and restarts (AL buffer reset),
it didn't crash.

+++

LIB_AV Codec   : 54.92.100 [cc 54]
LIB_AV Format  : 54.63.104 [cc 54]
LIB_AV Util    : 52.18.100 [cc 52]
LIB_AV Resample: 1.0.1 [cc 1, loaded true]
LIB_SW Resample: 0.17.102 [cc 0, loaded true]
LIB_AV Device  : [loaded true]
LIB_AV Class   : FFMPEGv09Natives

+++

(enable MovieSimple in scripts/tests.sh)

bash scripts/tests-x64.sh -loop -windows 2 \
    -urlN 0 http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi \
    -urlN 1 http://video.webmfiles.org/elephants-dream.webm

+++

2 Streaming threads, i.e. decoder threads:

"Thread-5-StreamWorker_1" daemon prio=10 tid=0x00007f994c102000 nid=0x5826 in Object.wait() [0x00007f996fa37000]
        at jogamp.opengl.util.av.GLMediaPlayerImpl$StreamWorker.run(GLMediaPlayerImpl.java:1231)
"Thread-4-StreamWorker_0" daemon prio=10 tid=0x00007f99600ed000 nid=0x5825 in Object.wait() [0x00007f996cd09000]
        at jogamp.opengl.util.av.GLMediaPlayerImpl$StreamWorker.run(GLMediaPlayerImpl.java:1231)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java (diff)
The file was modified make/scripts/tests.sh (diff)
Commit b7fafd30ffc5eac73880b264043582d74175a394 by Sven Gothel
Bug 952 - JAWTWindow.JAWTComponentListener's ctor() and detach() may deadlock due to AWTTreeLock acquisition while add/remove AWT listener

The AWTTreeLock is acquired by Component.removeHierarchyListener
and as for _every_ AWT component, modifications shall happen on the AWT-EDT.

IMHO the user shall offload AWT modifications to the AWT-EDT
similar to what JOGL's GLCanvas and NEWTCanvasAWT does.

However, since JAWTWindow also represents a NativeWindow instance
we shall offload AWTTreeLock methods ourselves!
The file was modified src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff)