<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    This MR <a moz-do-not-send="true"
href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2750"
      class="moz-txt-link-freetext">https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2750</a>
    fixes the sdlshare2 example.<br>
    <br>
    Cheers<br>
    -Matt<br>
    <br>
    <div class="moz-cite-prefix">On 12/7/22 15:02, Matthew Waters wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:140e34bf-d0c7-2c10-6803-89df737408dd@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Yes, something is broken.  I have a fix for this which I will push
      when ssh access to gitlab works again.<br>
      <br>
      Cheers<br>
      -Matt<br>
      <br>
      <div class="moz-cite-prefix">On 11/7/22 13:37, Brett Ernst via
        gstreamer-devel wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:c6953ed2-b091-42e0-b25e-1a9b5c281f49@www.fastmail.com">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <title></title>
        <style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
        <div>Hello,<br>
        </div>
        <div><br>
        </div>
        <div>I've been trying to get the sdlshare2.c example working,
          which shares an application's GL context with the glimagesink
          element. It seems that whenever a context is provided via the
          gst.gl.app_context context, the pipeline fails to go from NULL
          to READY state without printing any kind of messages as to
          why. I originally noticed this in my own code, but using
          sdlshare2.c without modification also results in the same
          outcome.<br>
        </div>
        <div><br>
        </div>
        <div>Does sdlshare2.c work for anybody else?<br>
        </div>
        <div><br>
        </div>
        <div>I'm on a Fedora 36 system using Xorg with the amdgpu video
          drivers. The GStreamer version is 1.20.0. I've included a
          snippet of the trace log here, including the part that seems
          relevant, but the entire log is too enormous to post even on
          GitHub gists. <br>
        </div>
        <div><br>
        </div>
        <div>Browsing through the code for gstglimagesink.c it doesn't
          seem like it's even attempting to use the context provided by
          sdlshare2.c (if I modify it to provide any other value, the
          same result occurs). Removing the gst.gl.app_context context
          altogether allows the pipeline to start, but since it's not
          sharing the context it creates two windows.</div>
        <div><br>
        </div>
        <div>Just trying to narrow down if the example is broken or if
          there's something about my system causing this. Any thoughts
          are appreciated.<br>
        </div>
        <div><br>
        </div>
        <div>0:00:00.171032213 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:338:gst_bus_post:<bus1> [msg 0x1f90da0]
          posting on bus need-context message: 0x1f90da0, time
          99:99:99.999999999, seq-num 20, element 'sink',
          GstMessageNeedContext,
          context-type=(string)gst.gl.app_context;<br>
        </div>
        <div>0:00:00.171036873 56903      0x1a83000
          DEBUG                    bin
          gstbin.c:3686:gst_bin_handle_message_func:<pipeline0>
          [msg 0x1f90da0] handling child sink message of type
          need-context<br>
        </div>
        <div>0:00:00.171040433 56903      0x1a83000
          DEBUG                    bin
          gstbin.c:4022:gst_bin_handle_message_func:<pipeline0>
          posting message upward<br>
        </div>
        <div>0:00:00.171045153 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:338:gst_bus_post:<bus2> [msg 0x1f90da0]
          posting on bus need-context message: 0x1f90da0, time
          99:99:99.999999999, seq-num 20, element 'sink',
          GstMessageNeedContext,
          context-type=(string)gst.gl.app_context;<br>
        </div>
        <div>0:00:00.171058573 56903      0x1a83000 DEBUG           
          GST_CONTEXT
          gstelement.c:3590:gst_element_set_context:<sink> set
          context 0x1dab920 context,
          context=(GstGLContext)"\(GstGLWrappedContext\)\
          glwrappedcontext0";<br>
        </div>
        <div>0:00:00.171068733 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:381:gst_bus_post:<bus2> [msg 0x1f90da0]
          pushing on async queue<br>
        </div>
        <div>0:00:00.171076833 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:384:gst_bus_post:<bus2> [msg 0x1f90da0]
          pushed on async queue<br>
        </div>
        <div>0:00:00.171081953 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:377:gst_bus_post:<bus1> [msg 0x1f90da0]
          dropped<br>
        </div>
        <div>0:00:00.171085653 56903      0x1a83000 DEBUG               
          GST_BUS gstbus.c:377:gst_bus_post:<bus0> [msg 0x1f90da0]
          dropped<br>
        </div>
        <div>0:00:00.171089783 56903      0x1a83000 INFO             
          GST_STATES
          gstelement.c:3091:gst_element_change_state:<sink> have
          FAILURE change_state return<br>
        </div>
        <div>0:00:00.171094343 56903      0x1a83000 INFO             
          GST_STATES
          gstelement.c:2678:gst_element_abort_state:<sink>
          aborting state from NULL to READY<br>
        </div>
        <div>0:00:00.171098433 56903      0x1a83000 DEBUG            
          GST_STATES
          gstelement.c:3041:gst_element_set_state_func:<sink>
          returned FAILURE<br>
        </div>
        <div>0:00:00.171103513 56903      0x1a83000 INFO             
          GST_STATES
          gstbin.c:2944:gst_bin_change_state_func:<glimagesink0>
          child 'sink' failed to go to state 2(READY)<br>
        </div>
        <div><br>
        </div>
        <div>-Brett</div>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>