<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1286</bug_id>
          
          <creation_ts>2016-01-20 16:10:59 +0100</creation_ts>
          <short_desc>Multiple GLMediaPlayers init stream deadlock</short_desc>
          <delta_ts>2023-07-12 01:32:52 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>video</component>
          <version>2.5.0</version>
          <rep_platform>pc_x86_64</rep_platform>
          <op_sys>windows</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alan Sambol">alan.zgb</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>alan.zgb</cc>
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>5516</commentid>
    <comment_count>0</comment_count>
      <attachid>771</attachid>
    <who name="Alan Sambol">alan.zgb</who>
    <bug_when>2016-01-20 16:10:59 +0100</bug_when>
    <thetext>Created attachment 771
Modified MovieSimple test that initialises 4 video streams

When starting multiple videos at the same time (e.g. 4), all 4 videos sometimes get stuck in Unintialized state after calling initStream() on GLMediaPlayer, with no exceptions thrown. I have traced the problematic threads to: 
GLMediaPlayerImpl line 582: initStreamImpl(vid, aid); 
FFMPEGMediaPlayer line 375: natives.setStream0(moviePtr, resStreamLocS, isCameraInput, vid, sizes, rw, rh, rr, aid, aMaxChannelCount, aPrefSampleRate); 
FFMPEGv11Natives.setStream0(long, String, boolean, int, String, int, int, int, int, int, int) line: not available [native method]	

The debugger show two threads with generic names (e.g. Thread-6 and Thread-7) stuck at the same line. When the problem doesn&apos;t occurr, those threads are not present. 

The problem only occurrs if each player&apos;s initStream() is called within 1-2 milliseconds of another.

When I manually introduce a synchronisation mechanism that ensures that each video&apos;s initStream() gets called only after previous video is NOT in state Uninitialised, everything works ok 100% of the time, however it would be nicer to be fixed under the hood. 

I&apos;m working on Windows 10 x64, using ffmpeg-2.8.3-win64-shared. Tried multiple libav and ffmpeg versions, same thing. 

It even happens even without any rendering or NEWT window initialisation - see attached test class. If loading a local video, about 50% of times all the players are stuck in Uninitialised state with the two threads described above deadlocked. When using big buck bunny video, it happens always.

If Thread.sleep() is added between each initStream() or only one window is used, the player normally enters Initialised state after a small time of being Uninitialised.

For some reason, I can&apos;t reproduce it in pure MovieSimple demo, because I can&apos;t get 4 windows shown within 1 ms, but in my application it happens fairly often that two videos are started at the same ms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6793</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2023-07-12 01:32:52 +0200</bug_when>
    <thetext>Resolved with last GLMediaPlayer updates.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>771</attachid>
            <date>2016-01-20 16:10:59 +0100</date>
            <delta_ts>2016-01-20 16:10:59 +0100</delta_ts>
            <desc>Modified MovieSimple test that initialises 4 video streams</desc>
            <filename>MovieSimpleDeadlock2.java</filename>
            <type>text/x-csrc</type>
            <size>3453</size>
            <attacher name="Alan Sambol">alan.zgb</attacher>
            
              <data encoding="base64">LyoqCiAqIENvcHlyaWdodCAyMDEyIEpvZ0FtcCBDb21tdW5pdHkuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZQogKiBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICoKICogICAgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YKICogICAgICAgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgogKgogKiAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdAog
KiAgICAgICBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwogKiAgICAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
Sm9nQW1wIENvbW11bml0eSBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKICog
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgSm9nQW1wIENvbW11
bml0eSBPUgogKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgogKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCiAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORwogKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKICog
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqCiAqIFRoZSB2aWV3
cyBhbmQgY29uY2x1c2lvbnMgY29udGFpbmVkIGluIHRoZSBzb2Z0d2FyZSBhbmQgZG9jdW1lbnRh
dGlvbiBhcmUgdGhvc2Ugb2YgdGhlCiAqIGF1dGhvcnMgYW5kIHNob3VsZCBub3QgYmUgaW50ZXJw
cmV0ZWQgYXMgcmVwcmVzZW50aW5nIG9mZmljaWFsIHBvbGljaWVzLCBlaXRoZXIgZXhwcmVzc2Vk
CiAqIG9yIGltcGxpZWQsIG9mIEpvZ0FtcCBDb21tdW5pdHkuCiAqLwoKcGFja2FnZSBjb20uam9n
YW1wLm9wZW5nbC50ZXN0Lmp1bml0LmpvZ2wuZGVtb3MuZXMyLmF2OwoKaW1wb3J0IGphdmEuaW8u
SU9FeGNlcHRpb247CmltcG9ydCBqYXZhLm5ldC5VUklTeW50YXhFeGNlcHRpb247CgppbXBvcnQg
Y29tLmpvZ2FtcC5jb21tb24ubmV0LlVyaTsKaW1wb3J0IGNvbS5qb2dhbXAub3BlbmdsLnV0aWwu
YXYuR0xNZWRpYVBsYXllcjsKaW1wb3J0IGNvbS5qb2dhbXAub3BlbmdsLnV0aWwuYXYuR0xNZWRp
YVBsYXllckZhY3Rvcnk7CgovKioKICogU2ltcGxlIHBsYW5hciBtb3ZpZSBwbGF5ZXIgdy8gb3J0
aG9nb25hbCAxOjEgcHJvamVjdGlvbi4KICovCnB1YmxpYyBjbGFzcyBNb3ZpZVNpbXBsZURlYWRs
b2NrMiB7CiAgICAvKiogQmxlbmRlcidzIEJpZyBCdWNrIEJ1bm55OiAyNGYgNDE2cCBILjI2NCwg
IEFBQyA0ODAwMCBIeiwgMiBjaCwgbXBlZyBzdHJlYW0uICovCiAgICBwdWJsaWMgc3RhdGljIGZp
bmFsIFVyaSBkZWZVUkk7CiAgICBzdGF0aWMgewogICAgICAgIFVyaSBfZGVmVVJJID0gbnVsbDsK
ICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBCbGVuZGVyJ3MgQmlnIEJ1Y2sgQnVubnkgVHJh
aWxlcjogMjRmIDY0MHAgVlA4LCBWb3JiaXMgNDQxMDBIeiBtb25vLCBXZWJNL01hdHJvc2thIFN0
cmVhbS4KICAgICAgICAgICAgX2RlZlVSSSA9IFVyaS5jYXN0KCJodHRwOi8vYXJjaGl2ZS5vcmcv
ZG93bmxvYWQvQmlnQnVja0J1bm55XzMyOC9CaWdCdWNrQnVubnlfNTEya2IubXA0Iik7Ci8vICAg
ICAgICAgICAgX2RlZlVSSSA9IFVyaS52YWx1ZU9mKG5ldyBGaWxlKCJFOlxcVmlkZW9zXFxJbmR5
IENhciBFZG1vbnRvbi5tcDQiKSk7CiAgICAgICAgfSBjYXRjaCAoZmluYWwgVVJJU3ludGF4RXhj
ZXB0aW9uIGUpIHsKICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgICAgICB9CiAg
ICAgICAgZGVmVVJJID0gX2RlZlVSSTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFp
bihmaW5hbCBTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24sIFVSSVN5bnRheEV4Y2Vw
dGlvbiB7CiAgICAgICAgaW50IHRleHR1cmVDb3VudCA9IDE7CgogICAgICAgIGludCB2aWQgPSBH
TE1lZGlhUGxheWVyLlNUUkVBTV9JRF9BVVRPOwogICAgICAgIGludCBhaWQgPSBHTE1lZGlhUGxh
eWVyLlNUUkVBTV9JRF9OT05FOwoKICAgICAgICBmaW5hbCBpbnQgd2luZG93Q291bnQgPSA0OwoK
ICAgICAgICBmaW5hbCBHTE1lZGlhUGxheWVyW10gcGxheWVycyA9IG5ldyBHTE1lZGlhUGxheWVy
W3dpbmRvd0NvdW50XTsKICAgICAgICBmb3IoaW50IGk9MDsgaTx3aW5kb3dDb3VudDsgaSsrKSB7
CiAgICAgICAgICAgIEdMTWVkaWFQbGF5ZXIgbVBsYXllciA9IEdMTWVkaWFQbGF5ZXJGYWN0b3J5
LmNyZWF0ZURlZmF1bHQoKTsKICAgICAgICAgICAgcGxheWVyc1tpXSA9IG1QbGF5ZXI7CiAgICAg
ICAgICAgIG1QbGF5ZXIuaW5pdFN0cmVhbShkZWZVUkksIHZpZCwgYWlkLCB0ZXh0dXJlQ291bnQp
OwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkluaXQgc3RyZWFtICIrIGkgKyIgdGlt
ZXN0YW1wICIgKyBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CiAgICAgICAgfQogICAgICAg
IAogICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgCWZvcihpbnQgaT0wOyBpPHdpbmRvd0Nv
dW50OyBpKyspIHsKICAgICAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbihwbGF5ZXJzW2ldLmdl
dFN0YXRlKCkpOwogICAgICAgIAl9CiAgICAgICAgCXRyeSB7CgkJCQlUaHJlYWQuc2xlZXAoMTAw
KTsKCQkJfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgewoJCQkJZS5wcmludFN0YWNr
VHJhY2UoKTsKCQkJfQogICAgICAgIH0KICAgIH0KCn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>