Which system do you use? Android, Ubuntu, OOWOW or others?
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
GStreamer : 1.16.3
installed using apt
. I also tried using the latest version 1.23
, compiled from sources.
Qt v5
installed using apt. If necessary, I can also use Qt v6
.
Which version of system do you use? Khadas official images, self built images, or others?
Custom version generated from your fenix
tool.
Please describe your issue below:
Hi,
I work on a VIM1
card with a Ubuntu 20.04
generated from your fenix
application. I would like to create a custom video player using the Qt/QML
library. This player must only display H264
videos (with related sound) into a Qt window and the QML part will be used to overlay some custom data (text, graphicsā¦).
I try to do this using a GStreamer pipeline embedded into a Qt application. I can display a video into a Qt window using a 100% CPU pipeline like this :
gst-launch-1.0 \
filesrc location=/home/user/videos/big_buck_bunny_1080p_h264.mov ! \
qtdemux name=demux \
demux.video_0 ! queue ! h264parse ! avdec_h264 ! glupload ! glimagesink \
demux.audio_0 ! queue ! avdec_aac ! audioconvert ! autoaudiosink
but there are too much dropped frames. If I try to use your amlvdec
plugin - to use hardware decoding, quality is good but display is done outside my Qt window.
According to this post, it seems that this amlvdec
plugin can not be used directly into a GStreamer pipeline because it creates its own specific video context, which can not be chained to a generic sink (used to send frames into a QWidget). And in this post numbqq
said that Gstreamer hardware decoding plugin doesnāt work well with 4.9 kernel.
Do you think it is possible to create a custom amlvdec
plugin, inspired from yours, to decode H264 videos using hardware, but where decoded frames will be sent to a generic sink like a glimagesink
or a ximagesink
⦠or your hardware decoding library is too specific/closed to be used in this generic context ?
If itās possible, can you give me some advice or guidelines ? I saw there are lots of projects in the Khadas's github
or numbqq's github
, but I donāt know which projects/drivers I should use.
Using a newer kernel (5.xx, for example) on a VIM1, does your GStreamer plugin work better and this can solve my problem ?
Finally, if the GStreamer approach is not a good idea, do you have a better suggestion ?
Thank you for your advice.
If necessary, I can post a simple C++/Qt example including the previous GStreamer pipeline.