Android Surface only shows black

jobu jobu at
Thu Feb 27 09:32:11 UTC 2020

I just got it to work!

I was actually setting the buffer size of the surfacetexture and thought
that this would be enough. Now I found out that I had to set the size of the
texture in the native code for VrCinema too - and now it works :)

This solution is not related to GStreamer, but I wanted to add it here -
maybe someone who encounters the same problem finds this and can use it. The
important part is the use of nativeSetVideoSize. Also I need to call this
function after requesting WRITE_EXTERNAL_STORAGE permission.

public void prepareSurface() {
    synchronized (this) {
      // allocate a new external texture, and create a
      // surfaceTexture with it.
      movieTexture = nativePrepareNewVideo(appPtr);
      if (movieTexture == null) {
        Log.w(TAG, "prepareSurface - could not create movieTexture ");
      movieTexture.setDefaultBufferSize(800, 600);
      movieSurface = new Surface(movieTexture);
      nativeSetVideoSize(appPtr, 800, 600);

Sent from:

More information about the gstreamer-devel mailing list