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.