imx-gst-plugin for imx8 returns 0 features

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx-gst-plugin for imx8 returns 0 features

6,920 Views
pm_techsubs
Contributor I

I am using Yocto (Thud) to build for coral-dev board with iMX8 Quad chip.

I see that the imx-gst-plugin recipe is included and the version/tag used is "MM_04.04.02_1808_L4.9.123_MX8MM_GA"

There seem to be no issue with the build, i can see the .so generated properly.

ls -al /usr/lib/gstreamer-1.0/libgstimx*
-rwxr-xr-x 1 root root 55288 Dec 13 10:49 /usr/lib/gstreamer-1.0/libgstimxcompositor.so
-rwxr-xr-x 1 root root 51312 Dec 13 10:49 /usr/lib/gstreamer-1.0/libgstimxvideoconvert.so

On inspecting the plugins, it get the below result:

# gst-inspect-1.0 imxcompositor
Plugin Details:
Name imxcompositor
Description IMX Video Composition Plugins
Filename /usr/lib/gstreamer-1.0/libgstimxcompositor.so
Version 4.4.2
License LGPL
Source module imx-gst1.0-plugin
Binary package Freescle Gstreamer Multimedia Plugins
Origin URL http://www.freescale.com


0 features:


# gst-inspect-1.0 imxvideoconvert
Plugin Details:
Name imxvideoconvert
Description IMX Video Convert Plugins
Filename /usr/lib/gstreamer-1.0/libgstimxvideoconvert.so
Version 4.4.2
License LGPL
Source module imx-gst1.0-plugin
Binary package Freescle Gstreamer Multimedia Plugins
Origin URL http://www.freescale.com


0 features:

Can somebody help on

- why it returns 0 features?

- why only two plugins (compositor, videoconvert)?

Am i missing anything, let me know if any more information is required.

Thanks,

Prakash

10 Replies

6,416 Views
igorpadykov
NXP Employee
NXP Employee

Hi Prakash

please try latest L4.19.35 from link i.MX Software and Development Tools | NXP 

available plugins are listed in Table 15. i.MX GStreamer 1.0 plugins

Release Notes included in Linux 4.19.35_1.1.0 Documentation

Note, there is no such part as "iMX8 Quad", please recheck what exact processor

used in the case.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

6,416 Views
cedric_thamin
Contributor III

Sorry I forget to gived you exact soc :   IMX8M Quad   (MIMX8MQ6DVAJZAB)

0 Kudos
Reply

6,416 Views
igorpadykov
NXP Employee
NXP Employee

Hi Cedric

i.MX8MQ Video Composition Example :

gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=480
sink_1::xpos=0 sink_1::ypos=480 sink_1::width=640 sink_1::height=480 ! \
waylandsink \
videotestsrc ! comp.sink_0 \
videotestsrc ! comp.sink_1

List of plugins can be found in Table 15. i.MX GStreamer 1.0 plugins

attached Release Notes.

Best regards
igor

0 Kudos
Reply

6,415 Views
cedric_thamin
Contributor III

Hi

Very fast answer. Thanks.

I understand, but like I said in my previous post imxcompositor, or overlaysink is not present. Same thing for imxcompositor_g2d, imxcompositor_ipu, imxcompositor_pxp, they are not available

root@imx8mqevk:~# gst-inspect-1.0 --no-colors imxcompositor_g2d | more
No such element or plugin 'imxcompositor_g2d'

And I dint't understand why .... Have you any idea of root cause? The start of an idea is welcome :smileyhappy:

SOC IMX8M Quad   (MIMX8MQ6DVAJZAB) support this plugins? Why it is not available in imx-image-multimedia warrior?

Find attach output :

  bitbake -e imx-gst1.0-plugin

  bitbake -e imx-image-multimedia

Many thanks.

0 Kudos
Reply

6,416 Views
igorpadykov
NXP Employee
NXP Employee

Hi Cedric

 

> Why it is not available in imx-image-multimedia warrior?

what do you mean ?

Please read Linux 4.19.35_1.1.0 Documentation

Also please with Demo Images from

i.MX Software and Development Tools | NXP 

 

Best regards
igor

0 Kudos
Reply

6,416 Views
cedric_thamin
Contributor III
> Why it is not available in imx-image-multimedia warrior?

what do you mean ?

gst-inspect-1.0 --no-colors imxcompositor_g2d return : No such element or plugin 'imxcompositor_g2d'

I will try demo image so

0 Kudos
Reply

6,416 Views
cedric_thamin
Contributor III

Hi

First thanks again for your time and yours idea.

I read documentation, I try official bsp describe in Linux 4.19.35_1.1.0 Documentation and gst-inspect-1.0 --no-colors imxcompositor_g2d return to me : No such element or plugin 'imxcompositor_g2d' in all case.

I read recipe and I saw compositor is disable by wayland feature. I supposed because when wayland is used we should use wayland/weston compositor.
I try to remove wayland but found in documentation :

  fsl-imx-x11 - X11 graphics are not supported on i.MX 8.

  fsl-imx-fb - Frame Buffer graphics - no X11 or Wayland. Frame Buffer is not supported on i.MX 8

So I must to used wayland (if I want to be quick), so I can not used imxcompositor_g2d

But I read this post imx8mq composed video on dual display and found plugin glvideomixer

So for doing what is describe in documentation : i.MX_Linux_User's_Guide 7.3.1.6.3Multiple videos overlay I found this solution :

export file1=/tmp/a/video/a.mp4
export file2=/tmp/a/video/15.Papaoutai.avi
export file3=/tmp/a/video/c.mp4
export file4=/tmp/a/video/d.mp4
export file5=/tmp/a/video/the_wolf_of_wall_street_official_trailer.mp4
export x=400
export y=200
# export output=glimagesink
# export output=waylandsink
export output=autovideosink
gst-launch-1.0 glvideomixer name=m sink_1::xpos=0 sink_1::ypos=0 sink_2::xpos=$x sink_2::ypos=0 sink_3::xpos=0 sink_3::ypos=$y sink_4::xpos=$x sink_4::ypos=$y sink_5::xpos=$(( $x / 2 )) sink_5::ypos=$(( $y / 2 )) ! $output filesrc location=$file1 ! decodebin ! videoscale ! video/x-raw,width=$x,height=$y ! m.sink_1 filesrc location=$file2 ! decodebin ! videoscale ! video/x-raw,width=$x,height=$y ! m.sink_2 filesrc location=$file3 ! decodebin ! videoscale ! video/x-raw,width=$x,height=$y ! m.sink_3 filesrc location=$file4 ! decodebin ! videoscale ! video/x-raw,width=$x,height=$y ! m.sink_4 filesrc location=$file5 ! decodebin ! videoscale ! video/x-raw,width=$x,height=$y ! m.sink_5

And it is working fine.
Thanks again for your help :smileyhappy:

Best regards,

Cedric T

0 Kudos
Reply

6,415 Views
cedric_thamin
Contributor III

glvideomixer can be replace by compositor so.

0 Kudos
Reply

6,416 Views
cedric_thamin
Contributor III

Hi igorpadykov

First, thanks for you help and your time :smileyhappy:

I am working with Prakash and he have not enough time for trying to fix this issue, so I will try.
I did what you asked, I build L4.19.35.

And same issue (but it is perhaps not an issue ...) plugin imxcompositor return 0 features, and it is not in plugin list Table 15. i.MX GStreamer 1.0 plugins, but imxcompositor_g2d, imxcompositor_ipu, imxcompositor_pxp are not available.

In documentation they use version  is 1.14.4 but version 1.16 is builded in bsp

We would like to compose/merge multi video source to one video. Exactly like is presented in i.MX_Linux_User's_Guide 7.3.1.6.3Multiple videos overlay

But imxcompositor, or overlaysink is not present. Same thing for imxcompositor_g2d, imxcompositor_ipu, imxcompositor_pxp.

Can you tell us how to do ? Which plugin should be used?

Thanks for your help

Best Regards,

Cedric T

More info :

I try some basic command which is working :

gst-launch-1.0 playbin uri=file:///tmp/a/video/a.mp4

gst-launch-1.0 playbin uri=file:///tmp/a/video/a.mp4 videosink="waylandsink"

gst-launch-1.0 filesrc location=/tmp/a/video/c.mp4 ! decodebin ! glimagesink render-rectangle="<0,0,500,700>"

If I try to launch multime same command with different video, with wayland I can not set render-rectangle position
If I shutdown waylandsink and glimagesink, The video is horrible when I am playing more than one.

Some details :

Plugin Details:

Name imxcompositor
Description IMX Video Composition Plugins
Filename /usr/lib/gstreamer-1.0/libgstimxcompositor.so
Version 4.5.1
License LGPL
Source module imx-gst1.0-plugin
Binary package Freescle Gstreamer Multimedia Plugins
Origin URL http://www.freescale.com

0 features:

Build config and command :

cth@cth:~/workspace/iot/nxp/imx-linux-warrior/build$ cat conf/local.conf
MACHINE ??= 'imx8mqevk'
DISTRO ?= 'fsl-imx-wayland'
PACKAGE_CLASSES ?= 'package_rpm'
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
CONF_VERSION = "1"

DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"

IMAGE_FSTYPES = "wic.bmap wic ext4"

#WKS_FILE := "ewv-100.wks.in"
#SOC_DEFAULT_WKS_FILE_mx8 := "ewv-100.wks.in"
IMAGE_BOOT_FILES="Image fsl-imx8mq-evk.dtb"


CORE_IMAGE_EXTRA_INSTALL_append = " imx-test"
CORE_IMAGE_EXTRA_INSTALL_append = " ewv-100-boot-script"
IMAGE_BOOT_FILES="Image fsl-imx8mq-evk.dtb boot.scr"

Build command : bitbake imx-image-multimedia

On the board :

root@imx8mqevk:~# uname -a
Linux imx8mqevk 4.19.35-1.1.0+g0f9917c56d59 #1 SMP PREEMPT Tue Mar 31 05:33:10 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

root@imx8mqevk:~# lsmod
Module Size Used by
8021q 36864 0
garp 16384 1 8021q
stp 16384 1 garp
mrp 20480 1 8021q
crc32_ce 16384 8
crct10dif_ce 16384 0
galcore 491520 28

0 Kudos
Reply

6,188 Views
cedric_thamin
Contributor III

Hi

I realized my video composition with HW vpu and gpu.

I would like to share it for helping some body

How to use video compositor with imx8 and gstreamer :

export w=1280
export h=740
export x=$(( $w / 4 ))
export y=$(( $h / 4 ))
export output=waylandsink

gst-launch-1.0 glvideomixer name=m sink_1::xpos=0 sink_1::ypos=0 sink_2::xpos=$x sink_2::ypos=0 sink_3::xpos=0 sink_3::ypos=$y sink_4::xpos=$x sink_4::ypos=$y ! $output \
rtspsrc user-id=admin user-pw=toto location="$uri1" ! rtph264depay ! vpudec ! glupload ! glcolorscale ! glcolorconvert ! gldownload ! video/x-raw, width=$x, height=$y ! m.sink_1 \
rtspsrc user-id=admin user-pw=toto location="$uri2" ! rtph264depay ! vpudec ! glupload ! glcolorscale ! glcolorconvert ! gldownload ! video/x-raw, width=$x, height=$y ! m.sink_2 \
rtspsrc user-id=admin user-pw=toto location="$uri3" ! rtph264depay ! vpudec ! glupload ! glcolorscale ! glcolorconvert ! gldownload ! video/x-raw, width=$x, height=$y ! m.sink_3 \
rtspsrc user-id=admin user-pw=toto location="$uri4" ! rtph264depay ! vpudec ! glupload ! glcolorscale ! glcolorconvert ! gldownload ! video/x-raw, width=$x, height=$y ! m.sink_4

Perhaps you can help me to improved it
Any comments will be well come.

++

0 Kudos
Reply