Compiling gstreamer1.0-plugins-imx for i.MX 6SoloX

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

Compiling gstreamer1.0-plugins-imx for i.MX 6SoloX

1,739 Views
ilariogottardel
Contributor II

Hi all,

I know i.MX 6SoloX doens't have VPU, but it has PXP and GPU-2D, so I would like to use these features for resizing video frames.

Problems is, I need the appropriate gstreamer plugins compiled, but if I add gstreamer1.0-plugins-imx to the image it gives me an error: libfslvpuwrap is not supported on my board (which is a mx6sxsabresd). If I modify the recipie adding mx6sx, it tells me that two packages provides virtual/libg2d, and a conflict stops the building process.

So, I'm stuck. My questions:

- is gstreamer the proper way to use PXP on MX 6SoloX? If not, how can I use this feature while decoding video with gstreamer?

- if yes, how should I patch the recipes to make the packages build?

- is official support for this cpu already planned on a future version of gstreamer-imx?

Thank you so much

Ilario

Labels (3)
0 Kudos
2 Replies

852 Views
Yuri
NXP Employee
NXP Employee

Hello,

  According to “i.MX_Linux_Release_Notes.pdf”, table “Video codec specification
for hardware without VPU acceleration”, software codec implementation is provided.

As for PXP and GPU they  are used in the following cases :

1) imxvideoconvert_g2d: GPU2D based video convert plugin, to perform video color

space conversion, resize, rotate

2)  imxvideoconvert_pxp: PXP based video convert plugin, to perform video color

space conversion, resizing, and rotation.

  Please refer to the recent BSP.

http://www.freescale.com/webapp/Download?colCode=L3.14.38_6UL_LINUX_DOCS


Have a great day,
Yuri

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

0 Kudos

852 Views
ilariogottardel
Contributor II

Just to elaborate a little, this is the log when I try to compile (adding mx6sx to libfslvpuwrap):

It seems to me that libg2d is provided by gpu-viv-g2d and imx-gpu-viv, but the latter also provides libgles2 which is required.. and gstreamer gives compilation error if I try to hide gpu-viv-g2d.

$ bitbake gstreamer1.0-plugins-imx         
Loading cache: 100% |##########################################################################################################################################################################################################################################| ETA:  00:00:00
Loaded 2524 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for runtime libgl-mesa-dev (mesa, mesa-gl)
NOTE: consider defining a PREFERRED_PROVIDER entry to match libgl-mesa-dev
NOTE: multiple providers are available for runtime libglapi (mesa, mesa-gl)
NOTE: consider defining a PREFERRED_PROVIDER entry to match libglapi

Build Configuration:
BB_VERSION        = "1.24.0"
BUILD_SYS         = "i686-linux"
NATIVELSBSTRING   = "Ubuntu-15.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "imx6sxsabresd"
DISTRO            = "poky"
DISTRO_VERSION    = "1.7"
TUNE_FEATURES     = "arm armv7a vfp neon callconvention-hard cortexa9"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "(nobranch):f20e4c0cf6ddb29a1aad6e7b095e1472e81d330c"
meta-oe           
meta-multimedia   = "(nobranch):7bbacd0023fa1111da94ba0b2aafd7d872301ffe"
meta-fsl-arm      = "(nobranch):b74e5e690d8d4e149ea9de3f0fcca37bad93935f"
meta-fsl-arm-extra = "(nobranch):b32528c10caac5e85f2b5efe0e5b95322dd68ace"
meta-fsl-demos    = "(nobranch):48cb0bcdd226d2e7eee1fdc222713e1dff93342c"
meta-fsl-arm      
meta-fsl-demos    = "(nobranch):9a2973abf0d1de9742561c3af57de7b8cba7063a"
meta-browser      = "(nobranch):63963cc56c8d0291779693e62b66cb16e5c86883"
meta-gnome        
meta-networking   
meta-python       
meta-ruby         
meta-filesystems  = "(nobranch):7bbacd0023fa1111da94ba0b2aafd7d872301ffe"
meta-qt5          = "(nobranch):41c5daa84af4466bfc9aa61f6f772c68470a628b"
meta-fsl-qt5      
meta-fsl-bluez    = "(nobranch):9a2973abf0d1de9742561c3af57de7b8cba7063a"

NOTE: Preparing runqueue
ERROR: Multiple .bb files are due to be built which each provide virtual/libg2d (/home/ilario/fsl-release-bsp/sources/meta-fsl-arm/recipes-graphics/gpu-viv-g2d/gpu-viv-g2d_3.10.17-1.0.2.bb /home/ilario/fsl-release-bsp/sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes
-graphics/imx-gpu-viv/imx-gpu-viv_5.0.11.p4.4-hfp.bb).                                                                                                                                                                                                                        
This usually means one provides something the other doesn't and should.                                                                                                                                                                                                      
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: The recipe gpu-viv-g2d is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
   /home/ilario/fsl-release-bsp/sabresd/tmp/sysroots/imx6sxsabresd/usr/include/g2d.h
Matched in manifest-imx6sxsabresd-imx-gpu-viv.populate_sysroot
/home/ilario/fsl-release-bsp/sabresd/tmp/sysroots/imx6sxsabresd/usr/lib/libg2d.so
Matched in manifest-imx6sxsabresd-imx-gpu-viv.populate_sysroot                                                                                                                                                                                                               
/home/ilario/fsl-release-bsp/sabresd/tmp/sysroots/imx6sxsabresd/usr/lib/libg2d-viv.so                                                                                                                                                                                        
Matched in manifest-imx6sxsabresd-imx-gpu-viv.populate_sysroot                                                                                                                                                                                                               
/home/ilario/fsl-release-bsp/sabresd/tmp/sysroots/imx6sxsabresd/sysroot-providers/virtual_libg2d                                                                                                                                                                             
Matched in manifest-imx6sxsabresd-imx-gpu-viv.populate_sysroot                                                                                                                                                                                                               
Please verify which recipe should provide the above files.                                                                                                                                                                                                                    
The build has stopped as continuing in this scenario WILL break things, if not now, possibly in the future (we've seen builds fail several months later). If the system knew how to recover from this automatically it would however there are several different scenarios whic
h can result in this and we don't know which one this is. It may be you have switched providers of something like virtual/kernel (e.g. from linux-yocto to linux-yocto-dev), in that case you need to execute the clean task for both recipes and it will resolve this error. I
t may be you changed DISTRO_FEATURES from systemd to udev or vice versa. Cleaning those recipes should again resolve this error however switching DISTRO_FEATURES on an existing build directory is not supported, you should really clean out tmp and rebuild (reusing sstate
should be safe). It could be the overlapping files detected are harmless in which case adding them to SSTATE_DUPWHITELIST may be the correct solution. It could also be your build is including two different conflicting versions of things (e.g. bluez 4 and bluez 5 and the
correct solution for that would be to resolve the conflict. If in doubt, please ask on the mailing list, sharing the error and filelist above.                                                                                                                                
ERROR: If the above message is too much, the simpler version is you're advised to wipe out tmp and rebuild (reusing sstate is fine). That will likely fix things in most (but not all) cases.
ERROR: Function failed: sstate_task_postfunc
ERROR: Logfile of failure stored in: /home/ilario/fsl-release-bsp/sabresd/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gpu-viv-g2d/1_3.10.17-1.0.2-r0/temp/log.do_populate_sysroot.5441
ERROR: Task 102 (/home/ilario/fsl-release-bsp/sources/meta-fsl-arm/recipes-graphics/gpu-viv-g2d/gpu-viv-g2d_3.10.17-1.0.2.bb, do_populate_sysroot) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1144 tasks of which 1141 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:

Summary: 1 task failed:
  /home/ilario/fsl-release-bsp/sources/meta-fsl-arm/recipes-graphics/gpu-viv-g2d/gpu-viv-g2d_3.10.17-1.0.2.bb, do_populate_sysroot
Summary: There was 1 WARNING message shown.
Summary: There were 4 ERROR messages shown, returning a non-zero exit code.

0 Kudos