<br><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">I tried to look into bacon-video-widget.c and totem-object.c</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;"><br style="z-index: 0;"></div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">1. bacon-video-widget.c is a clutter based backend for totem, it is possible to create other backend (follow the interface defined in bacon-video-widget.h); right?</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">the backend should subclass from GtkWidget and implement the interface defined in bacon-video-widget.h.</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">for example, we can implement another backend to render video directly to native window, like xvimagesink or waylandsink. the custom GtkWidget could be a GtkContainer which includes a GtkDrawing area for video rendering and some other buttons for control.</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">here, I have some question against current Gtk/Gdk implementation. a GtkWidget/GdkWindow maps to a native window like XWindow/wl_surface, right? </div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">(GtkWidget isn't like ClutterActor to share the same XWindow/wl_surface for all the Actor of the same Stage, right?)</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;"><br style="z-index: 0;"></div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">2. we can also implement another backend basing on gtkglsink to render video as texture.</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">since gtkglsink draw video to the GtkGlArea, which is also a GtkWidget; what's the advantage comparing to rendering video directly to XWindow/wl_surface as xvimagesink/waylandsink does?</div><div style="z-index: 0; margin: 0px; padding: 0px; zoom: 1; color: rgb(51, 51, 51); font-family: Verdana, 宋体, Helvetica, sans-serif; font-size: 14px;">Is it possible to draw controls on top of the video(GtkGlArea)? like some controls are drawn as ClutterActor on top of video.</div><br><div id="">--------------------------------<br></div><div id=""><br></div><br><div id="origbody"><div style="background: #f2f2f2;">----- 原始邮件 -----<br>发件人:Matthew Waters <ystreet00@gmail.com><br>收件人:halleyzhao@sina.com, Discussion of the development of and with GStreamer <gstreamer-devel@lists.freedesktop.org><br>主题:Re: 回复:Re: if we plan to remove TEXTURE_UPLOAD,_what_will_be_used_instead?<br>日期:2019年09月15日 08点40分<br></div><br>
    <div class="moz-cite-prefix">You can probably do that for
      wayland-specific things however X11 is still used by people as
      well as the cross-platform concerns for MacOS or windows that one
      wouldn't want to preclude by relying specifically on wayland.<br><br>
      Also, resizes with wayland subsurfaces are somewhat tricky to keep
      synchronised and require extra API.<br><br>
      Cheers<br>
      -Matt<br><br>
      On 12/9/19 10:16 am, HalleyZhao wrote:<br></div>
    <blockquote>
      <div>thanks Matthew。</div>
      <div><br></div>
      <div>I know little about totem/gtk3, just wonder why not use
        waylandsink to render video directly to a
        wl_surface/wl_sub_surface. </div>
      <div>it means to create a gtk widget which associates with a
        wl_sub_surface, it is a child of the main window but skip gl
        composition inside app.</div>
      <div><br></div>
      <div>for a dedicated video player app, texture video is just the
        favor of developer, not the interest of end-user.</div>
      <br><br><div>--------------------------------<br></div>
      <div><br></div>
      <br><div>
        <div style="background:#f2f2f2;">----- 原始邮件 -----<br>
          发件人:Matthew Waters <a class="moz-txt-link-rfc2396E" href="mailto:ystreet00@gmail.com"><ystreet00@gmail.com></a><br>
          收件人:<a class="moz-txt-link-abbreviated" href="mailto:halleyzhao@sina.com">halleyzhao@sina.com</a>, Discussion of the development of and
          with GStreamer <a class="moz-txt-link-rfc2396E" href="mailto:gstreamer-devel@lists.freedesktop.org"><gstreamer-devel@lists.freedesktop.org></a><br>
          主题:Re: if we plan to remove TEXTURE_UPLOAD, what will be used
          instead?<br>
          日期:2019年09月11日 17点10分<br></div>
        <br><div>Hi,<br><br>
          1. clutter is effectively unmaintained and is really the only
          major user of the gl upload meta so the first move is to
          remove the clutter dependency inside totem.  There are
          replacement Gtk sink elements (gtkglsink and gtksink) for Gtk3
          that can be used.  For Gtk4, the equivalent elements would
          need to written.<br>
          2. The general case for OpenGL within a Gstreamer context is
          to use the libgstgl-1.0 library and the associated elements
          (glupload, glcolorconvert, etc).  One can pass OpenGL textures
          between elements using GstGLMemory with much more information
          than was ever possible with the upload meta. Currently
          libgstgl does include a upload meta implementation however
          that implementation will only be used if nothing else is found
          (except for upload from system memory).<br><br>
          Cheers<br>
          -Matt<br><br>
          On 11/9/19 6:24 pm, HalleyZhao wrote:<br></div>
        <blockquote>
          <div>Hi experts:</div>
          <div>from the following thread, I notice that community plans
            to remove TEXTURE_UPLOAD/GstGLUploadTextureMeta.</div>
          <div>then what will be used instead?</div>
          <div>take totem as example, it is problemtic to use
            clutter-sink with hardware accerelated decoder.</div>
          <div>then what's the decent way to render video in totem?</div>
          <div><br></div>
          <div><br></div>
          <div><a href="https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/137" target="_blank" rel="noreferrer noopener">https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/137</a></div>
          <div style="color:rgb(46,46,46);font-family:'-apple-system', BlinkMacSystemFont, 'Segoe             UI', Roboto, 'Noto Sans', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif, 'Apple Color             Emoji', 'Segoe UI Emoji', 'Segoe UI             Symbol', 'Noto Color Emoji';font-size:14px;">
            <div style="margin-left:10px;color:rgb(145,145,145);"><span style="color:rgb(112,112,112);font-size:12px;line-height:20px;padding:0px 7px;border:1px solid rgb(229,229,229);margin:0px 3px;">Maintainer</span></div>
          </div>
          <div style="color:rgb(46,46,46);font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';font-size:14px;">
            <div>
              <div>
                <blockquote style="margin:0px 0px 16px;color:rgb(127,143,164);font-size:inherit;padding:8px 24px;border-left:3px solid rgb(234,234,234);">
                  <p style="margin-right:0px;margin-left:0px;font-size:inherit;line-height:1.5;">TEXTURE_UPLOAD
                    as deprecated for next gst 1.18</p>
                </blockquote>
                <p style="margin-right:0px;margin-bottom:16px;margin-left:0px;">TEXTURE_UPLOAD is planned to be removed for
                  2.0</p>
                <p style="margin-right:0px;margin-bottom:16px;margin-left:0px;">I removed TEXTURE_UPLOAD support in Wayland
                  from gstreamer-vaapi for release 1.14, if I recall
                  correctly, but for Canonical it was a regression, and
                  Daniel van Vught devoted a lot of time to make it
                  work, but as we confirm now, only for Intel's driver.</p>
                <div style="margin-right:0px;margin-left:0px;">We are
                  devoting a lot of time supporting a deprecated
                  transfer mechanism because people demand it. Every
                  time I think about it, I realized that I have said
                  "no" when Daniel pushed for it.</div>
                <div style="margin-right:0px;margin-left:0px;"><br></div>
              </div>
            </div>
          </div>
          <div>--------------------------------<br></div>
          <div><br></div>
          <br><pre>_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank" rel="noreferrer noopener">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
        </blockquote>
        _______________________________________________<br>
        gstreamer-devel mailing list<br><a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br><a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank" rel="noreferrer noopener">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></div>
      <br><pre class="moz-quote-pre">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank" rel="noreferrer noopener">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
    </blockquote>
    <p><br></p>
  _______________________________________________<br>gstreamer-devel mailing list<br>gstreamer-devel@lists.freedesktop.org<br>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</div>