Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-69333

Crash when reading video frame bits on Android

    XMLWordPrintable

Details

    • Android

    Description

      I'm using a "wrapper" QAbstractVideoSurface to intercept video frames between a QML Camera and VideoOutput items.

      When I try to map() the QVideoFrame, I get the following error:

      checkAndUpdateEglState: invalid current EGLDisplay

      This error bubbles up as a Java exception which is not handled, resulting in a JNI error later on:

      JNI DETECTED ERROR IN APPLICATION: JNI NewFloatArray called with pending exception 'java.lang.IllegalStateException' thrown in unknown throw location
      F/art     (21903): sart/runtime/check_jni.cc:65]     in call to NewFloatArray

       

      The problem is caused by the fact that AndroidTextureVideoBuffer::map() results in EGL calls on a thread without an active EGL context.

       

      I've tried using QAbstractVideoFilter instead of this stacking approach, but the results are the same.

      Attachments

        1. main.cpp
          3 kB
          Andrzej Szombierski
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            valentyn.doroshchuk Valentyn Doroshchuk
            anszom Andrzej Szombierski
            Votes:
            3 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes