Details
-
Bug
-
Resolution: Cannot Reproduce
-
P2: Important
-
None
-
5.6.0, 5.6.1, 5.6.2, 5.7.0
-
None
-
[1]
* GCC: gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux.tar.xz
* Target board: Toradex Apalis T30 (based on NV Tegra3 chip)
* GStreamer: 0.10 (with all NV plugins)
* OpenGL ES: from NVidia
* Qt5 compiled with: EGLFS-X11 support
* Video: mp4 or avi with 1920x720
[2]
* GCC: x86
* Target: Ubuntu 14.04 x86 (installed on VM)
* GStreamer: 1.0 (default)
* OpenGL ES: from MESA (default)
* Qt5 compiled with: EGLFS-X11 support
* Video: mp4 or avi
[1] * GCC: gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux.tar.xz * Target board: Toradex Apalis T30 (based on NV Tegra3 chip) * GStreamer: 0.10 (with all NV plugins) * OpenGL ES: from NVidia * Qt5 compiled with: EGLFS-X11 support * Video: mp4 or avi with 1920x720 [2] * GCC: x86 * Target: Ubuntu 14.04 x86 (installed on VM) * GStreamer: 1.0 (default) * OpenGL ES: from MESA (default) * Qt5 compiled with: EGLFS-X11 support * Video: mp4 or avi
Description
Attempt to play a QML video lead to the high CPU load ~300% (where from the 4-cores, the 3 - cores has ~100% load). Also I see in console this output:
Warning: "A lot of buffers are being dropped."
Warning: "A lot of buffers are being dropped."
Warning: "A lot of buffers are being dropped."
and the AVI video has ~0.3-0.5 FPS.
The gst-inspect shows this video sinks:
root@apalis-t30:~/Downloads# gst-inspect | grep sink
ximagesink: ximagesink: Video sink
autodetect: autovideosink: Auto video sink
autodetect: autoaudiosink: Auto audio sink
playback: playsink: Player Sink
omx: nv_omx_audiosink: OpenMAX IL audiosink element
omx: nv_gstbin_videosink: OpenMAX IL videosink element
omx: nv_omx_videosink: OpenMAX IL videosink element
omx: nv_omx_hdmi_videosink: OpenMAX IL hdmi videosink element
omx: nv_omx_overlaysink: OpenMAX IL overlaysink element
omx: nv_gl_eglimagesink: OpenMAX IL videosink element
alsa: alsasink: Audio sink (ALSA)
tcp: tcpclientsink: TCP client sink
tcp: tcpserversink: TCP server sink
tcp: multifdsink: Multi filedescriptor sink
gio: giosink: GIO sink
gio: giostreamsink: GIO stream sink
nvxvimagesink: nvxvimagesink: Video sink
udp: udpsink: UDP packet sender
udp: multiudpsink: UDP packet sender
udp: dynudpsink: UDP packet sender
app: appsink: AppSink
xvimagesink: xvimagesink: Video sink
coreelements: fakesink: Fake Sink
coreelements: fdsink: Filedescriptor Sink
coreelements: filesink: File Sink
root@apalis-t30:~/Downloads#
[1] Then I try to play the video using the vendor-specific 'nvgstplayer' utility with different NV-based video sinks, I got the CPU load ~50%-100% (depends on video format), that it is normal (seems, the HW acceleration is enabled):
$nvgstplayer -i movie.avi --svs="nv_omx_hdmi_videosink" (~100%)
$nvgstplayer -i movie.mp4 --svs="nv_omx_hdmi_videosink" (~50%)
$nvgstplayer -i movie.avi --svs="nv_gl_eglimagesink" (~200%)
$nvgstplayer -i movie.mp4 --svs="nv_gl_eglimagesink" (~150%)
$nvgstplayer -i movie.avi --svs="nvxvimagesink" (~120%)
$nvgstplayer -i movie.mp4 --svs="nvxvimagesink" (~50)
that is important - I have no lags in video!!!
[2] Then I try to play a video, using the cpp-based QMediaPlayer class. For this case I set the QT_GSTREAMER_WINDOW_VIDEOSINK and QT_GSTREAMER_WIDGET_VIDEOSINK variables, which contains a video sink name:
export QT_GSTREAMER_WINDOW_VIDEOSINK=
export QT_GSTREAMER_WIDGET_VIDEOSINK=
$./cpp-video-player movie.mp4 (~300%, some lags)
$./cpp-video-player movie.avi(~300%, very big lags)
export QT_GSTREAMER_WINDOW_VIDEOSINK=nv_omx_hdmi_videosink
export QT_GSTREAMER_WIDGET_VIDEOSINK=nv_omx_hdmi_videosink
$./cpp-video-player movie.mp4 (~50%, no lags)
$./cpp-video-player movie.avi(~150%, no lags)
$export QT_GSTREAMER_WINDOW_VIDEOSINK=nv_gl_eglimagesink
$export QT_GSTREAMER_WIDGET_VIDEOSINK=nv_gl_eglimagesink$export QT_GSTREAMER_WINDOW_VIDEOSINK=nvxvimagesink
$export QT_GSTREAMER_WIDGET_VIDEOSINK=nvxvimagesink
it does not starts at all, returns:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 3 (X_GetWindowAttributes)
Resource id in failed request: 0x3
Serial number of failed request: 7
Current serial number in output stream: 8
[3] Next, I had to use a simple QML player (the Video item), with the same set of QT_GSTREAMER_ variables.. But in this case it does nothing, I have very big CPU load and lags:
$./qml-video-player movie.mp4 (~300%, some lags)
$./qml-video-player movie.avi(~300%, very big lags)
So, seems this env variables are ignores for QML!!!
How it can be avoidet? Is there are any workaround?
Attachments
Issue Links
- relates to
-
QTBUG-66162 Boot2Qt video dropping frames on RPI3 (even though gstreamer directly is working fine)
-
- Closed
-