mnano
December 14, 2022, 10:46am
1
I am working on:
Dahlia Carrier Board
Verdin iMX8M Plus
Branch kirkstone-6.x.y
I wondered how I could correctly install the gstreamer plugins. Indeed, for my image, gst-inspect-1.0 shows this:
coreelements: capsfilter: CapsFilter
coreelements: clocksync: ClockSync
coreelements: concat: Concat
coreelements: dataurisrc: data: URI source element
coreelements: downloadbuffer: DownloadBuffer
coreelements: fakesink: Fake Sink
coreelements: fakesrc: Fake Source
coreelements: fdsink: Filedescriptor Sink
coreelements: fdsrc: Filedescriptor Source
coreelements: filesink: File Sink
coreelements: filesrc: File Source
coreelements: funnel: Funnel pipe fitting
coreelements: identity: Identity
coreelements: input-selector: Input selector
coreelements: multiqueue: MultiQueue
coreelements: output-selector: Output selector
coreelements: queue: Queue
coreelements: queue2: Queue 2
coreelements: streamiddemux: Streamid Demux
coreelements: tee: Tee pipe fitting
coreelements: typefind: TypeFind
coreelements: valve: Valve element
staticelements: bin: Generic bin
staticelements: pipeline: Pipeline object
Total count: 2 plugins, 24 features
And, find . -name "*libgst*"
shows the plugin install folders:
./usr/lib/libgstbase-1.0.so.0
./usr/lib/libgstallocators-1.0.so.0.2000.0
./usr/lib/libgstvideo-1.0.so.0
./usr/lib/gstreamer-1.0/libgstcoreelements.so
./usr/lib/libgstreamer-1.0.so.0
./usr/lib/libgstvideo-1.0.so.0.2000.0
./usr/lib/libgstnet-1.0.so.0.2000.0
./usr/lib/libgstbase-1.0.so.0.2000.0
./usr/lib/libgstreamer-1.0.so.0.2000.0
./usr/lib/libgstapp-1.0.so.0.2000.0
./usr/lib/libgstnet-1.0.so.0
./usr/lib/libgstcheck-1.0.so.0
./usr/lib/libgstcheck-1.0.so.0.2000.0
./usr/lib/libgstallocators-1.0.so.0
./usr/lib/libgstcontroller-1.0.so.0
./usr/lib/libgstcontroller-1.0.so.0.2000.0
./usr/lib/libgstapp-1.0.so.0
As you can see, no plugins except core elements in the gstreamer-1.0/ folder. How would I go about getting all the plugins in there ?
I used a “packagegroup-tdx-graphical-no-vulkan.bb” which is the exact same as the “packagegroup-tdx-graphical.bb” without some vulkan packages (I did this for the toyota flutter embedder). I then have an image with:
IMAGE_INSTALL += " \
(...) \
packagegroup-tdx-graphical-no-vulkan \
(...) \
"
I also tried by adding all packages directly to IMAGE_INSTALL:
gstreamer1.0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gst-examples \
imx-gst1.0-plugin \
imx-gst1.0-plugin-gplay \
imx-gst1.0-plugin-grecorder \
packagegroup-fsl-gstreamer1.0-full \
And now it works.
What am I missing when using this packagegroup-tdx-graphical-no-vulkan?
Thank you for your help.
Note:
I also tried with the reference multimedia image: Toradex Download Links (Torizon, Linux BSP, WinCE and Partner Demos) | Toradex Developer Center and the plugins are correctly installed inside the /usr/lib/gstreamer-1.0/ folder.
Hello @mnano
Can you please share with us your packagegroup-tdx-graphical-no-vulkan.bb recipe?
Best regards,
Josep
mnano
December 14, 2022, 11:57am
3
Here it is:
SUMMARY = "Packagegroups which provide graphical/display/multimedia releated packages"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PROVIDES = "${PACKAGES}"
PACKAGES += " \
packagegroup-drm-utils-tdx-graphical \
packagegroup-gstreamer-tdx-graphical \
packagegroup-gpu-tdx-graphical \
packagegroup-x11-components-tdx-graphical \
packagegroup-x11-utils-tdx-graphical \
"
RRECOMMENDS:packagegroup-tdx-graphical = " \
packagegroup-gstreamer-tdx-graphical \
packagegroup-gpu-tdx-graphical \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
bb.utils.contains('DISTRO_FEATURES', 'x11', \
'packagegroup-x11-components-tdx-graphical \
packagegroup-x11-utils-tdx-graphical', \
'', d), d)} \
"
RRECOMMENDS:packagegroup-tdx-graphical:append:mx8-nxp-bsp = " \
packagegroup-drm-utils-tdx-graphical \
"
RRECOMMENDS:packagegroup-tdx-graphical:append:upstream = " \
packagegroup-drm-utils-tdx-graphical \
"
SUMMARY:packagegroup-drm-utils-tdx-graphical = "Utilities for DRM, Direct Rendering Manager"
RRECOMMENDS:packagegroup-drm-utils-tdx-graphical = " \
libdrm-tests \
"
SUMMARY:packagegroup-gstreamer-tdx-graphical = "gstreamer packages"
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical = "\
gstreamer1.0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gst-examples \
"
GSTREAMER_MX6QDL = " \
gstreamer1.0-plugins-base-ximagesink \
gstreamer1.0-plugins-imx \
imx-gst1.0-plugin \
imx-gst1.0-plugin-gplay \
imx-gst1.0-plugin-grecorder \
"
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:append:mx6dl-nxp-bsp = " ${GSTREAMER_MX6QDL}"
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:append:mx6q-nxp-bsp = " ${GSTREAMER_MX6QDL}"
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:colibri-imx6ull = ""
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:colibri-imx6ull-emmc = ""
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:append:mx7-nxp-bsp = " imx-gst1.0-plugin"
RRECOMMENDS:packagegroup-gstreamer-tdx-graphical:append:mx8-nxp-bsp = " \
imx-gst1.0-plugin \
imx-gst1.0-plugin-gplay \
imx-gst1.0-plugin-grecorder \
packagegroup-fsl-gstreamer1.0-full \
"
SUMMARY:packagegroup-gpu-utils-tdx-graphical = "Utilities for GPU (OpenGL...)"
IMAGE_INSTALL_OPENCL_IMX = " \
clpeak \
libopencl-imx \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical = " \
glmark2 \
"
IMAGE_INSTALL_GPU_MX6QDL = " \
packagegroup-fsl-gpu-libs \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical:append:mx6dl-nxp-bsp = " \
${IMAGE_INSTALL_GPU_MX6QDL} \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical:append:mx6q-nxp-bsp = " \
${IMAGE_INSTALL_GPU_MX6QDL} \
${IMAGE_INSTALL_OPENCL_IMX} \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical:colibri-imx6ull = ""
RRECOMMENDS:packagegroup-gpu-tdx-graphical:colibri-imx6ull-emmc = ""
RRECOMMENDS:packagegroup-gpu-tdx-graphical:append:mx8-nxp-bsp = " \
tinycompress \
libvdk-imx \
vulkan-headers \
${IMAGE_INSTALL_OPENCL_IMX} \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical:remove:mx8mm-nxp-bsp = " \
vulkan \
${IMAGE_INSTALL_OPENCL_IMX} \
"
RRECOMMENDS:packagegroup-gpu-tdx-graphical:append:mx8qm-nxp-bsp = " \
libopenvx-imx \
"
SUMMARY:packagegroup-x11-components-tdx-graphical = "Components of X11"
RRECOMMENDS:packagegroup-x11-components-tdx-graphical = "\
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
bb.utils.contains('DISTRO_FEATURES', 'x11', \
'libxcursor \
libxdamage \
libxres \
libxvmc \
xcursor-transparent-theme \
xorg-minimal-fonts \
xrdb \
xserver-xorg-extension-dbe \
xserver-xorg-extension-extmod \
xserver-xorg-multimedia-modules \
xserver-xorg-utils', \
'', d), d)} \
"
SUMMARY:packagegroup-x11-utils-tdx-graphical = "Utilities for X11"
RRECOMMENDS:packagegroup-x11-utils-tdx-graphical = " \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
bb.utils.contains('DISTRO_FEATURES', 'x11', \
'scrot \
setxkbmap \
unclutter', \
'', d), d)} \
"
Hi @mnano
Please note that the plugins you list are just listed as RRECOMMEND in packegroup-gstreamer-tdx-graphical. Here you might find some more information:
https://docs.yoctoproject.org/ref-manual/variables.html#term-RRECOMMENDS
I might not fully understand the problem. Another way to figure out the dependencies might be to use bitbake -g . This will create a dot file that shows the dependency chain.
Regards,
Stefan
mnano
December 20, 2022, 7:57am
5
Hello,
Your are 100% correct. I missed the obvious, this was just because of some missing RDEPENDS.
Thank you for your time.
Hello @mnano ,
We are glad that you were able to solve your problem.
May we ask you to describe the steps that you took, in case another user faces a similar problem?
Best regards,
Josep
mnano
December 20, 2022, 1:41pm
7
Hello,
I just added:
RDPENDS:${PN} = "gstreamer1.0 gstreamer1.0-plugins-base (...)" # + all other packages
to the bitbake recipe of the package that needs it.