Search code examples
gstreameryocto

How to get compiled gstreamer-plugins installed on target image of Yocto


I want to get x264enc element of Gstreamer available in my system image baked with Yocto(Thud). This element is included in gstreamer1.0-plugins-ugly, so I have added

IMAGE_INSTALL_append = " gstreamer1.0-plugins-ugly" to my conf/local.conf file.

I baked my recipe again and flashed the new image on board, but when I run gst-inspect-1.0 command to verify that desired plugin and element are available, they are not in the list.

I am new with Yocto, have I missed some steps?

Thanks.

EDIT 1 By "baked my recipe" I mean that I:

  • run bitbake myrecipe to build image
  • edited conf/local.conf file as I wrote above
  • run bitbake myrecipe again to build image with new packages

This is an extract of the log, filtered on 'ugly' keyword

./20200608131143.log:121:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_fetch: Started
./20200608131143.log:122:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_fetch: Succeeded
./20200608131143.log:154:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_unpack: Started
./20200608131143.log:155:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_unpack: Succeeded
./20200608131143.log:157:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_patch: Started
./20200608131143.log:158:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_patch: Succeeded
./20200608131143.log:169:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_prepare_recipe_sysroot: Started
./20200608131143.log:170:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_prepare_recipe_sysroot: Succeeded
./20200608131143.log:172:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_configure: Started
./20200608131143.log:226:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_populate_lic: Started
./20200608131143.log:227:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_populate_lic: Succeeded
./20200608131143.log:249:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_configure: Succeeded
./20200608131143.log:254:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_compile: Started
./20200608131143.log:263:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_compile: Succeeded
./20200608131143.log:265:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_install: Started
./20200608131143.log:266:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_install: Succeeded
./20200608131143.log:269:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_populate_sysroot: Started
./20200608131143.log:270:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package: Started
./20200608131143.log:271:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_populate_sysroot: Succeeded
./20200608131143.log:275:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package: Succeeded
./20200608131143.log:277:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_packagedata: Started
./20200608131143.log:279:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_packagedata: Succeeded
./20200608131143.log:284:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package_write_rpm: Started
./20200608131143.log:285:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package_qa: Started
./20200608131143.log:293:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package_qa: Succeeded
./20200608131143.log:296:NOTE: recipe gstreamer1.0-plugins-ugly-1.14.4-r0: task do_package_write_rpm: Succeeded

And this is an extract of image manifest file, filtered on 'ugly' keyword too:

./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:292:gstreamer1.0-plugins-ugly armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:293:gstreamer1.0-plugins-ugly-a52dec armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:294:gstreamer1.0-plugins-ugly-asf armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:295:gstreamer1.0-plugins-ugly-dvdlpcmdec armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:296:gstreamer1.0-plugins-ugly-dvdsub armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:297:gstreamer1.0-plugins-ugly-locale-en-gb armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:298:gstreamer1.0-plugins-ugly-meta armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:299:gstreamer1.0-plugins-ugly-mpeg2dec armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:300:gstreamer1.0-plugins-ugly-realmedia armv7at2hf_neon 1.14.4
./fsl-image-qt5-var-som-mx6-20200610142415.rootfs.manifest:301:gstreamer1.0-plugins-ugly-xingmux armv7at2hf_neon 1.14.4

To solve the license error I added also

LICENSE_FLAGS_WHITELIST += " commercial" to conf/local.conf file


Solution

  • Your image manifest shows the ugly plugins are included just fine, but the x264 plugin is not there. If you look at the recipe you will see that default PACKAGECONFIG does not include x264, you'll have to change that.

    You can do this in a bbappend:

    PACKAGECONFIG_append = " x264"
    

    or in local or distro configuration:

    PACKAGECONFIG_append_pn-gstreamer1.0-plugins-ugly = " x264"