I have downloaded version 1.6.1 package, and I still can not use glviewconvert on Android. Is there any necessary step to use glviewconvert on Android?<br>Thank you for your help.<br><br/><div style="font-size:12px;padding:2px 0;">---Original---</div><div style="font-size:12px;background:#f0f0f0;color:#212121;padding:8px!important;border-radius:4px;line-height:1.5;"><div><b>From:</b> "Matthew Waters "<ystreet00@gmail.com></div><div><b>Date:</b> 2015/10/27 12:44:39</div><div><b>To:</b> "少华王"<naozhong@gmail.com>;</div><div><b>Subject:</b> Re: Is it possible to use glviewconvert on Android?</div></div><br/><html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">The binaries are built using cerbero
      which is available from <a
        href="http://cgit.freedesktop.org/gstreamer/cerbero"><a class="moz-txt-link-freetext" href="http://cgit.freedesktop.org/gstreamer/cerbero">http://cgit.freedesktop.org/gstreamer/cerbero</a></a><br>
      <br>
      The following commands should get you started<br>
      <br>
      cd path/to/clone<br>
      git clone <a
        href="git://anongit.freedesktop.org/gstreamer/cerbero">git://anongit.freedesktop.org/gstreamer/cerbero</a><br>
      echo 'alias cerbero="path/to/clone/cerbero/cerbero-uninstalled"'
      >> ~/.profile<br>
      # or ~/.bashrc depending on where you want to set it up/what shell
      you're running<br>
      source ~/.profile # get the changes into you current session (or
      open a new terminal)<br>
      cerbero bootstrap # these take a while<br>
      cerbero package gstreamer-1.0 # as does this<br>
      <br>
      You have two options for developing against GStreamer.<br>
      1. Extract the generated package somewhere and point your
      application at the extracted package<br>
      2. Develop against the cerbero version by pointing GSTREAMER_ROOT
      to the installed cerbero prefix in cerbero/dist/android_armv7/<br>
      <br>
      Good luck<br>
      <br>
      -Matt<br>
      <br>
      On 26/10/15 20:05, 少华王 wrote:<br>
    </div>
    <blockquote
cite="mid:CANfT13bt4MOLSS1MZJ9puq-Q3rSEYcZapHiTC_nZCVdHca1g8Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">So is it a last commit that I can't use in the
        1.6.0 release package? Maybe I want to use this feature by
        compiling from source myself. I know that is not recommended.
        But where can I get any tutorial to learn how to do that?</div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">2015-10-26 15:32 GMT+08:00 Matthew
          Waters <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:ystreet00@gmail.com" target="_blank">ystreet00@gmail.com</a>></span>:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div class="HOEnZb">
              <div class="h5">On 26/10/15 02:59, 少华王 wrote:<br>
                > I wrote a small demo on Linux using glviewconvert
                like this:<br>
                > #include <gst/gst.h><br>
                > #include <gst/video/video.h><br>
                > #include <gst/video/videooverlay.h><br>
                ><br>
                > int main(int argc, char *argv[]) {<br>
                >   GstMessage *msg;<br>
                >   /* Initialize GStreamer */<br>
                >   gst_init (&argc, &argv);<br>
                >   /* Build the pipeline */<br>
                >   GstElement *pipeline = gst_element_factory_make
                ("playbin", NULL);<br>
                >   GstBin *sinkbin = (GstBin *)
                gst_parse_bin_from_description ("glupload !
                glcolorconvert ! glviewconvert name=viewconvert !
                glimagesink name=sink", TRUE, NULL);<br>
                >   GstElement *glconvert = gst_bin_get_by_name
                (sinkbin, "viewconvert");<br>
                >   GstElement *videosink = gst_bin_get_by_name
                (sinkbin, "sink");<br>
                >   g_object_set (G_OBJECT (pipeline), "video-sink",
                sinkbin, NULL);<br>
                >   g_object_set (G_OBJECT (pipeline), "uri",
                <a class="moz-txt-link-rfc2396E" href="file:///home/sheldon/1.webm">"file:///home/sheldon/1.webm"</a>, NULL);<br>
                ><br>
                >   // g_object_get (pipeline,
                "video-multiview-mode", &state.in_mode,<br>
                >   //   "video-multiview-flags",
                &state.in_flags, NULL);<br>
                ><br>
                >   g_object_set (G_OBJECT (glconvert),
                "input-mode-override", 0,<br>
                >     NULL);<br>
                >   g_object_set (G_OBJECT (glconvert),
                "input-flags-override", 0,<br>
                >       NULL);<br>
                ><br>
                >   GstElement *sink = gst_bin_get_by_name (GST_BIN
                (videosink), "sink");<br>
                >   g_object_set (G_OBJECT (sink),
                "output-multiview-mode",
                GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE, NULL);<br>
                ><br>
                >   g_object_set (G_OBJECT (glconvert),
                "input-mode-override",
                GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
                NULL);<br>
                ><br>
                >   gst_element_set_state (pipeline,
                GST_STATE_PLAYING);<br>
                >   GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE
                (pipeline));<br>
                >   msg = gst_bus_timed_pop_filtered (bus,
                GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR |
                GST_MESSAGE_EOS);<br>
                ><br>
                >   // /* Free resources */<br>
                >   if (msg != NULL)<br>
                >     gst_message_unref (msg);<br>
                >   gst_object_unref (bus);<br>
                >   gst_element_set_state (pipeline, GST_STATE_NULL);<br>
                >   gst_object_unref (pipeline);<br>
                >   return 0;<br>
                > }<br>
                > And I want to use this on Android. Then I got a
                error log like "cannot find glviewconvert". Is there a
                way to use glviewconvert directly? If not, what can I
                do? Like compile the glviewconvert?<br>
                <br>
              </div>
            </div>
            Looks like glviewconvert was only built for desktop OpenGL
            systems.<br>
            That's since been rectified by<br>
            <a moz-do-not-send="true"
href="http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=09976e021b8d222daf96e1b1328fde4a00b5c05f"
              rel="noreferrer" target="_blank">http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=09976e021b8d222daf96e1b1328fde4a00b5c05f</a>.<br>
            As hinted by the commit message, if you have a gles2 system
            (no gles3)<br>
            then you cannot output the separated/frame-by-frame modes
            due to<br>
            limitations in the GLES 2.0 API.<br>
            <br>
            Cheers<br>
            -Matt<br>
            <div class="HOEnZb">
              <div class="h5"><br>
                > I'm new on GStreamer, it's very nice of you if you
                could help me or give me any tips. Thank you very much.<br>
                <br>
                <br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
  </body>
</html>