mirzak / meta-coral

Yocto/OE-core BSP Layer for Coral Dev Board
MIT License
40 stars 21 forks source link

Loading glsvgoverlaysink gstreamer python module fails within the python OpenGL #28

Closed mirzak closed 4 years ago

mirzak commented 4 years ago

Example error:

root@coral-dev:~# gst-inspect-1.0 python
Traceback (most recent call last):
  File "/usr/lib/gstreamer-1.0/python/glbox.py", line 28, in <module>
    from OpenGL.GLES3 import (
  File "/usr/lib/python3.7/site-packages/OpenGL/GLES3/__init__.py", line 2, in <module>
    from OpenGL.raw.GLES3._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES3/__init__.py", line 1, in <module>
    from OpenGL.raw.GLES3._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES3/_types.py", line 1, in <module>
    from OpenGL.raw.GLES2._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES2/_types.py", line 5, in <module>
    _error_checker = _ErrorChecker( _p, _p.GLES2.glGetError )
  File "/usr/lib/python3.7/site-packages/OpenGL/error.py", line 183, in __init__
    self._isValid = platform.CurrentContextIsValid
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
    value = self.fget( obj )
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 356, in CurrentContextIsValid
    return self.GetCurrentContext
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
    value = self.fget( obj )
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/glx.py", line 95, in GetCurrentContext
    return self.GL.glXGetCurrentContext
AttributeError: 'NoneType' object has no attribute 'glXGetCurrentContext'
Traceback (most recent call last):
  File "/usr/lib/gstreamer-1.0/python/glsvgoverlaysink.py", line 36, in <module>
    from OpenGL.GLES3 import (
  File "/usr/lib/python3.7/site-packages/OpenGL/GLES3/__init__.py", line 2, in <module>
    from OpenGL.raw.GLES3._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES3/__init__.py", line 1, in <module>
    from OpenGL.raw.GLES3._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES3/_types.py", line 1, in <module>
    from OpenGL.raw.GLES2._types import *
  File "/usr/lib/python3.7/site-packages/OpenGL/raw/GLES2/_types.py", line 5, in <module>
    _error_checker = _ErrorChecker( _p, _p.GLES2.glGetError )
  File "/usr/lib/python3.7/site-packages/OpenGL/error.py", line 183, in __init__
    self._isValid = platform.CurrentContextIsValid
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
    value = self.fget( obj )
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 356, in CurrentContextIsValid
    return self.GetCurrentContext
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
    value = self.fget( obj )
  File "/usr/lib/python3.7/site-packages/OpenGL/platform/glx.py", line 95, in GetCurrentContext
    return self.GL.glXGetCurrentContext
AttributeError: 'NoneType' object has no attribute 'glXGetCurrentContext'

glsvgoverlaysink is needed to be able to run e.g the following command:

edgetpu_classify \
--source /dev/video1:YUY2:1920x1080:30/1 \
--model models/mobilenet_v2_1.0_224_quant_edgetpu.tflite \
--labels models/imagenet_labels.txt
mirzak commented 4 years ago

Building with Xwayland resolved this issue.