<div dir="ltr">I'm not sure I understand all the semantic details of this conversation - by which, I mean, I'm not quite sure how to do that specifically.<br><br>So, CFRunLoop - is imported from CoreFoundation.. which I seem to be able to obtain via ctypes or PyObjC..<br><br>Now how I use that in my python application is another story.. (In retrospect this might be more approachable in C++)<br><br>I'm assuming that CFRunLoopRun is a blocking call, and would need to be executed at the end of my application code's run loop.<br><br>I think I have the perfect place for that to happen in mind.. but the import details look a little hairy.. I also have to assume that CFRunLoop would react to SIGINT or SIGTERM..<br><br>Lastly, I understand that this problem is slightly outside the scope of gstreamer. So, if you can respond with meaningful tips, I would be greatful.. but I do understand that the end of scope is quickly approaching.<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 9, 2018 at 8:01 PM, Matthew Waters <span dir="ltr"><<a href="mailto:ystreet00@gmail.com" target="_blank">ystreet00@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><span class="">
    <div class="m_-1775122653519942670moz-cite-prefix">On 10/02/18 10:29, Hans Hony wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Matt,<br>
        Thanks for the response.<br>
        <br>
        I'm not sure I follow.. I already have an instance of <font face="monospace, monospace">Glib.MainLoop</font> for the
        pipeline to run already.<br>
        <br>
        This is constructed on the main thread just after <font face="monospace, monospace">Gst.init(None)</font><font face="arial, helvetica, sans-serif"> is called.</font><br>
        But.. I am running <font face="monospace, monospace">GLib.MainLoop.run</font> in
        it's own thread - is this okay?<br>
        That Thread is started from the main application, just before
        the pipeline is started.<br>
      </div>
    </blockquote>
    <br></span>
    Unfortunately, no.  The CFRunLoop must be running on the main
    thread, otherwise this will not work.<br>
    <br>
    Cheers<br>
    -Matt<div><div class="h5"><br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">What I have tried so far:<br>
        <pre style="font-family:Menlo;font-size:9pt"><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-style:italic">import </span>gi
gi.require_version('GstGL', '1.0')
<span style="font-style:italic">from </span>gi.repository <span style="font-style:italic">import </span>GstGL</font></span></pre>
        <pre style="font-family:Menlo;font-size:9pt"><span style="background-color:rgb(255,255,255)"><font color="#000000">self._context = Gst.Context.new(GstGL.GL_<wbr>DISPLAY_CONTEXT_TYPE, <span style="font-style:italic">True</span>)
self._gldisplay = GstGL.GLDisplay()
self._gldisplay.new()
self._glwindow = self._gldisplay.create_window(<wbr>)
self._glwindow.show()
self._glcontext = GstGL.GLContext.new(self._<wbr>gldisplay)
GstGL.context_set_gl_display(<wbr>self._context, self._gldisplay)
outputsink = gst_elem.make('glimagesink')
outputsink.set_context(self._<wbr>context)
print('----- context: %s' % str(outputsink.get_property('<wbr>context')))</font></span></pre>
        <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">
          <div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br>
            </span></div>
          What I notice is that the constructed Element 'glimagesink'
          has a context property which returns 'None' after
          construction.</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">
        <br>
        I can see that the python rocket bouncing.. so it's attempting
        to kick the display.. but no window.<br>
        <br>
        Do I need to override something with the
        GST_MESSAGE_NEED_CONTEXT, perhaps?<br>
        <br>
        I have attempted to connect this on the bus
        'message::need-context', but get no signal..<br>
        <br>
        <br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Thu, Feb 8, 2018 at 1:21 AM,
            Matthew Waters <span dir="ltr"><<a href="mailto:ystreet00@gmail.com" target="_blank">ystreet00@gmail.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div class="m_-1775122653519942670m_-4335131971921842420moz-cite-prefix">Mac
                  OS X is special in that a CFRunLoop is required to be
                  running on the main thread in order for glimagesink
                  (and other UI operations) to perform correctly.<br>
                  <br>
                  That either means you need to run one yourself, use a
                  toolkit that runs one or run a GMainLoop.<br>
                  <br>
                  Running your gst-launch-1.0 command with
                  GST_DEBUG=gl*:7 would give you more information about
                  what GStreamer is attempting to do, specifically
                  around <a href="https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/gl/cocoa/gstgldisplay_cocoa.m#n105" target="_blank">https://cgit.freedesktop.org/g<wbr>streamer/gst-plugins-base/tree<wbr>/gst-libs/gst/gl/cocoa/gstgldi<wbr>splay_cocoa.m#n105</a>.<span><br>
                    <br>
                    On 08/02/18 06:49, Hans Hony wrote:<br>
                  </span></div>
                <span>
                  <blockquote type="cite">
                    <div dir="ltr"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">I
                        have a question about launching a simple video
                        pipeline using 'glimagesink' with the python3
                        gi.repository.Gst.ElementFacto<wbr>ry..</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                      <br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                      <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">On
                        Mac OSX I can launch my pipeline with custom
                        plugin:</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                      <span style="font-family:monospace,monospace">gst-launch-1.0
                        filesrc <avi> ! decodebin ! queue !
                        my_custom_plugin <props> ! autovideosink</span><br>
                      <br>
                      <div>The output a default window titled 'OpenGL
                        renderer'.. which I assume is <a href="https://github.com/GStreamer/gst-plugins-bad/blob/1.12/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m#L466" target="_blank">gstglwindow_cocoa.m</a> from
                        gst-plugins-bad.. ?<br>
                        <font face="arial, helvetica, sans-serif"><br>
                          <span style="color:rgb(34,34,34);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Likewise,
                            'glimagesink' will also open the 'OpenGL
                            renderer' window when used in a bash
                            gst-launch-1.0 command in the same way as
                            'autovideosink'. </span>Also I notice when I
                          launch the pipeline under bash, I can see:<br>
                        </font><br>
                        <span></span>
                        <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures;background-color:rgb(255,255,255)"><font face="monospace, monospace" color="#000000">    Setting pipeline to
                              PAUSED ...</font></span></p>
                        <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures;background-color:rgb(255,255,255)"><font face="monospace, monospace" color="#000000">    Pipeline is PREROLLING
                              ...</font></span></p>
                        <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures;background-color:rgb(255,255,255)"><font face="monospace, monospace" color="#000000">    Got context from
                              element 'sink': gst.gl.GLDisplay=context,
                              gst.gl.GLDisplay=(GstGLDisplay<wbr>)"\(GstGLDisplayCocoa\)\
                              gldisplaycocoa0";</font></span></p>
                        <br>
                        <br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">However,
                          when I launch the pipeline for
                          gi.repository.Gst.ElementFacto<wbr>ry (in
                          python3) I have issues:</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">
                          <ol>
                            <li style="font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34);margin-left:15px">It
                              fails horribly for
                              ElementFactory.make('autovideo<wbr>sink')
                              with <i>Illegal instruction: 4</i> when
                              NULL to READY is propagated.. so to fix
                              that I just didn't use 'autovideosink'..<br>
                              <br>
                            </li>
                            <li style="font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34);font-style:normal;margin-left:15px">It
                              will propagate PLAY for
                              ElementFactory.make('glimagesi<wbr>nk')..
                              but nothing actually plays.. probably
                              because the chain isn't correct<br>
                              <br>
                            </li>
                            <li style="font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34);font-style:normal;margin-left:15px">I
                              cannot figure out how to hook the
                              'sync_message' to an OSX window object
                              with glimagesink from python?!? I see
                              information in gst-inspect-1.0
                              glimagesink.. but I can't find any
                              examples to do this specifically.<br>
                              <br>
                            </li>
                            <li style="font-size:12.8px;font-style:normal;margin-left:15px"><font style="background-color:rgb(255,255,255)" color="#000000">Secondarily, I
                                see that I can use <font face="monospace, monospace">gi.repository.GstGL.GLDisplay(<wbr>).new()</font>
                                to create:<br>
                              </font>    <__gi__.GstGLDisplayCocoa
                              object at 0x10e05eb88 (GstGLDisplayCocoa
                              at 0x7fc7ba9439c0)><br>
                              .. which is seemingly what I want!<br>
                              <br>
                            </li>
                            <li style="font-size:12.8px;font-style:normal;margin-left:15px">How
                              to do hook this object up to 'glimagesink'
                              ??<br>
                            </li>
                          </ol>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> You don't need to hook this up to GStreamer, it
                will create that automatically.<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">
                          <ol>
                            <li style="font-style:normal;margin-left:15px">Finally,
                              do I need to add:<br>
                              <font style="background-color:rgb(255,255,255)" color="#000000"><font style="font-size:12.8px" face="monospace, monospace"> 
                                  pipeline.get_bus()</font><span style="font-size:12px;font-family:monospace,monospace;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">.connect(</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-s" style="font-size:12px;font-family:monospace,monospace;box-sizing:border-box;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-pds" style="box-sizing:border-box">'</span>sy<wbr>nc-message::element<span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-pds" style="box-sizing:border-box">'</span></span><span style="font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><font style="font-size:12px" face="monospace, monospace">, on_sync_message)
</font><font face="arial, helvetica, sans-serif">with a function on_sync_message(bus, msg) ?</font></span></font></li>
                          </ol>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> This shouldn't be needed.<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span style="font-family:arial,helvetica,sans-serif;white-space:pre-wrap;color:rgb(0,0,0)">From the Gtk examples I found there was a function which would update the GUI.. I assume that I would need to do this as well.. but the syntax is not clear immediately.
</span><br>
                          More specifically:<br>
                          <span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">def</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"> </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">on_sync_message</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">(</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-smi" style="box-sizing:border-box;color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">bus</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">, </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-smi" style="box-sizing:border-box;color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">msg</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">):
</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">    </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">if</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"> msg.get_structure().get_name() </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">==</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"> </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-pds" style="box-sizing:border-box;color:rgb(3,47,98)">'</span>prepare-window-handle<span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-pds" style="box-sizing:border-box;color:rgb(3,47,98)">'</span></span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">:</span></div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="SFMono-Regular, Consolas, Liberation
                            Mono, Menlo, Courier, monospace" color="#24292e"><span style="font-size:12px;white-space:pre-wrap"><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">        sink </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">=</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"> msg.src</span></span></font></div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="SFMono-Regular, Consolas, Liberation
                            Mono, Menlo, Courier, monospace" color="#24292e"><span style="font-size:12px;white-space:pre-wrap"><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">        sink.set_window_handle(<window<wbr>_handle>)</span></span></font></div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="SFMono-Regular, Consolas, Liberation
                            Mono, Menlo, Courier, monospace" color="#24292e"><span style="font-size:12px;white-space:pre-wrap"><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">        sink.set_render_rectangle(</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">0</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">, </span><span class="m_-1775122653519942670m_-4335131971921842420gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">0</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">, <window.width>, <window.height>)</span></span></font><br>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> This is for embedding glimagesink's output
                inside another application.<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span style="white-space:normal;font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255)">Overall,
                            I want to know:</span><br>
                          <ol style="white-space:normal;font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34)">
                            <li>How is it that gst-launch-1.0 works so
                              well?<br>
                            </li>
                          </ol>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> Because, glimagesink is generally created and
                set to READY on the main thread. Otherwise, happy
                accident.<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">
                          <ol style="white-space:normal;font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34)">
                            <li>How can I use that functionality in my
                              python3 gi code?<br>
                            </li>
                          </ol>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> Run a CFRunLoop/GMainLoop on the main thread.<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div style="font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">
                          <ol style="white-space:normal;font-size:12.8px;font-family:arial,sans-serif;background-color:rgb(255,255,255);color:rgb(34,34,34)">
                            <li>How can I add another element to trigger
                              that force-aspect-ratio window magic?</li>
                          </ol>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> I'm not sure what you mean by this.<br>
                <br>
                Cheers<br>
                -Matt<span><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures;background-color:rgb(255,255,255)"><font color="#000000">$ brew list --versions |
                                grep gst</font></span></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-plugins-bad
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-plugins-base
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-plugins-good
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-plugins-ugly
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-python
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">-rtsp-server
                                1.12.3</span></font></p>
                          <p class="m_-1775122653519942670m_-4335131971921842420gmail-p1" style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Courier"><font style="background-color:rgb(255,255,255)" color="#000000"><span class="m_-1775122653519942670m_-4335131971921842420gmail-s2" style="font-variant-ligatures:no-common-ligatures">gst</span><span class="m_-1775122653519942670m_-4335131971921842420gmail-s1" style="font-variant-ligatures:no-common-ligatures">reamer
                                1.12.3</span></font></p>
                          <br>
                          Thanks,</div>
                        <div>Hans</div>
                      </div>
                    </div>
                  </blockquote>
                </span></div>
            </blockquote>
          </div>
        </div>
      </div>
    </blockquote>
  </div></div></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><font size="2"><b style="color:rgb(102,102,102)">______________________<br></b><b>Hans Hony <br></b></font><font style="color:rgb(102,102,102)" size="1">Robotics Engineering<br>San Francisco, CA </font><br>
</div>
</div>