Плагины Gstreamer не компилируются в yocto 2.7 - PullRequest
0 голосов
/ 30 марта 2020

Я на Yocto 2.7, с версией Gstreamer 1.14.4. Приведенный ниже рецепт gstreamer1.0-plugin-bad_1.14.4.bb (это оригинальный доступный, я не вносил в него никаких изменений)

require gstreamer1.0-plugins.inc

SRC_URI = " \
    http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
    file://configure-allow-to-disable-libssh2.patch \
    file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
    file://avoid-including-sys-poll.h-directly.patch \
    file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
    file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
    file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \
"
SRC_URI[md5sum] = "5d20a91d027708abcf924f6c1279dd25"
SRC_URI[sha256sum] = "910b4e0e2e897e8b6d06767af1779d70057c309f67292f485ff988d087aa0de5"

S = "${WORKDIR}/gst-plugins-bad-${PV}"

LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
                    file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 "

DEPENDS += "gstreamer1.0-plugins-base"

inherit gettext bluetooth gobject-introspection

PACKAGECONFIG ??= " \
    ${GSTREAMER_ORC} \
    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \
    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
    bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \
"

# the gl packageconfig enables OpenGL elements that haven't been ported
# to -base yet. They depend on the gstgl library in -base, so we do
# not add GL dependencies here, since these are taken care of in -base.

PACKAGECONFIG[assrender]       = "--enable-assrender,--disable-assrender,libass"
PACKAGECONFIG[bluez]           = "--enable-bluez,--disable-bluez,${BLUEZ}"
PACKAGECONFIG[bz2]             = "--enable-bz2,--disable-bz2,bzip2"
PACKAGECONFIG[curl]            = "--enable-curl,--disable-curl,curl"
PACKAGECONFIG[dash]            = "--enable-dash,--disable-dash,libxml2"
PACKAGECONFIG[dc1394]          = "--enable-dc1394,--disable-dc1394,libdc1394"
PACKAGECONFIG[directfb]        = "--enable-directfb,--disable-directfb,directfb"
PACKAGECONFIG[dtls]            = "--enable-dtls,--disable-dtls,openssl"
PACKAGECONFIG[faac]            = "--enable-faac,--disable-faac,faac"
PACKAGECONFIG[faad]            = "--enable-faad,--disable-faad,faad2"
PACKAGECONFIG[flite]           = "--enable-flite,--disable-flite,flite-alsa"
PACKAGECONFIG[fluidsynth]      = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
PACKAGECONFIG[hls]             = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle"
PACKAGECONFIG[gl]              = "--enable-gl,--disable-gl,"
PACKAGECONFIG[kms]             = "--enable-kms,--disable-kms,libdrm"
PACKAGECONFIG[libde265]        = "--enable-libde265,--disable-libde265,libde265"
PACKAGECONFIG[libmms]          = "--enable-libmms,--disable-libmms,libmms"
PACKAGECONFIG[libssh2]         = "--enable-libssh2,--disable-libssh2,libssh2"
PACKAGECONFIG[lcms2]           = "--enable-lcms2,--disable-lcms2,lcms"
PACKAGECONFIG[modplug]         = "--enable-modplug,--disable-modplug,libmodplug"
PACKAGECONFIG[msdk]            = "--enable-msdk,--disable-msdk,intel-mediasdk"
PACKAGECONFIG[neon]            = "--enable-neon,--disable-neon,neon"
PACKAGECONFIG[openal]          = "--enable-openal,--disable-openal,openal-soft"
PACKAGECONFIG[opencv]          = "--enable-opencv,--disable-opencv,opencv"
PACKAGECONFIG[openh264]        = "--enable-openh264,--disable-openh264,openh264"
PACKAGECONFIG[openjpeg]        = "--enable-openjpeg,--disable-openjpeg,openjpeg"
PACKAGECONFIG[openmpt]         = "--enable-openmpt,--disable-openmpt,libopenmpt"
# the opus encoder/decoder elements are now in the -base package,
# but the opus parser remains in -bad
PACKAGECONFIG[opusparse]       = "--enable-opus,--disable-opus,libopus"
PACKAGECONFIG[resindvd]        = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav"
PACKAGECONFIG[rsvg]            = "--enable-rsvg,--disable-rsvg,librsvg"
PACKAGECONFIG[rtmp]            = "--enable-rtmp,--disable-rtmp,rtmpdump"
PACKAGECONFIG[sbc]             = "--enable-sbc,--disable-sbc,sbc"
PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
PACKAGECONFIG[sndfile]         = "--enable-sndfile,--disable-sndfile,libsndfile1"
PACKAGECONFIG[srtp]            = "--enable-srtp,--disable-srtp,libsrtp"
PACKAGECONFIG[tinyalsa]        = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa"
PACKAGECONFIG[ttml]            = "--enable-ttml,--disable-ttml,libxml2 pango cairo"
PACKAGECONFIG[uvch264]         = "--enable-uvch264,--disable-uvch264,libusb1 libgudev"
PACKAGECONFIG[voaacenc]        = "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
PACKAGECONFIG[voamrwbenc]      = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
PACKAGECONFIG[vulkan]          = "--enable-vulkan,--disable-vulkan,vulkan"
PACKAGECONFIG[wayland]         = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm"
PACKAGECONFIG[webp]            = "--enable-webp,--disable-webp,libwebp"
PACKAGECONFIG[webrtc]          = "--enable-webrtc,--disable-webrtc,libnice"
PACKAGECONFIG[webrtcdsp]       = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing"

# these plugins have no corresponding library in OE-core or meta-openembedded:
#   openni2 winks direct3d directsound winscreencap acm apple_media iqa
#   android_media avc bs2b chromaprint daala dts fdkaac gme gsm kate ladspa
#   lv2 mpeg2enc mplex musepack nvenc ofa opensles soundtouch
#   spandsp spc teletextdec vdpau wasapi x265 zbar

EXTRA_OECONF += " \
    --enable-decklink \
    --enable-dvb \
    --enable-fbdev \
    --enable-ipcpipeline \
    --enable-netsim \
    --enable-shm \
    --enable-vcd \
    --disable-acm \
    --disable-android_media \
    --disable-aom \
    --disable-apple_media \
    --disable-avc \
    --disable-bs2b \
    --disable-chromaprint \
    --disable-daala \
    --disable-direct3d \
    --disable-directsound \
    --disable-dts \
    --disable-fdk_aac \
    --disable-gme \
    --disable-gsm \
    --disable-iqa \
    --disable-kate \
    --disable-ladspa \
    --disable-lv2 \
    --disable-mpeg2enc \
    --disable-mplex \
    --disable-musepack \
    --disable-nvenc \
    --disable-ofa \
    --disable-openexr \
    --disable-openni2 \
    --disable-opensles \
    --disable-soundtouch \
    --disable-spandsp \
    --disable-spc \
    --disable-srt \
    --disable-teletextdec \
    --disable-vdpau \
    --disable-wasapi \
    --disable-wildmidi \
    --disable-winks \
    --disable-winscreencap \
    --disable-x265 \
    --disable-zbar \
    ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \
"

export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"

ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"

FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs"
FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*"
FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs"

Я понимаю, что плагины вроде sb c, smoothstreaming et c добавляются в переменную PACKAGECONFIG, поэтому эти плагины включаются на уровне рецепта.

Но когда я выпекаю рецепт, libgstsb c .so, libgstsmoothstreaming.so et c. . не получаются встроенными в целевой RFS.

ниже ls -l inside /usr/lib/gstreamer1.0/

-rwxr-xr-x 3 user user 9476 Mar 25 13:35 libgstaccurip.so
-rwxr-xr-x 3 user  user  13592 Mar 25 13:35 libgstadpcmdec.so
-rwxr-xr-x 3 user user  13644 Mar 25 13:35 libgstadpcmenc.so
-rwxr-xr-x 3 user user  42388 Mar 25 13:35 libgstaiff.so
-rwxr-xr-x 3 user user  54784 Mar 25 13:35 libgstasfmux.so
-rwxr-xr-x 3 user user  17740 Mar 25 13:35 libgstaudiobuffersplit.so
-rwxr-xr-x 3 user user   9496 Mar 25 13:35 libgstaudiofxbad.so
-rwxr-xr-x 3 user user  13644 Mar 25 13:35 libgstaudiolatency.so
-rwxr-xr-x 3 user user  17688 Mar 25 13:35 libgstaudiomixmatrix.so
-rwxr-xr-x 3 user user  26096 Mar 25 13:35 libgstaudiovisualizers.so
-rwxr-xr-x 3 user user  26024 Mar 25 13:35 libgstautoconvert.so
-rwxr-xr-x 3 user user  17688 Mar 25 13:35 libgstbayer.so
-rwxr-xr-x 3 user user  62888 Mar 25 13:35 libgstcamerabin.so
-rwxr-xr-x 3 user user  21908 Mar 25 13:35 libgstcoloreffects.so
-rwxr-xr-x 3 user user  42296 Mar 25 13:35 libgstcompositor.so
-rwxr-xr-x 3 user user  46772 Mar 25 13:35 libgstdebugutilsbad.so
-rwxr-xr-x 3 user user  87520 Mar 25 13:35 libgstdecklink.so
-rwxr-xr-x 3 user user  92592 Mar 25 13:35 libgstdvb.so
-rwxr-xr-x 3 user user  46496 Mar 25 13:35 libgstdvbsuboverlay.so
-rwxr-xr-x 3 user user  34160 Mar 25 13:35 libgstdvdspu.so
-rwxr-xr-x 3 user user  13592 Mar 25 13:35 libgstfaceoverlay.so
-rwxr-xr-x 3 user user  13556 Mar 25 13:35 libgstfbdevsink.so
-rwxr-xr-x 3 user user  13592 Mar 25 13:35 libgstfestival.so
-rwxr-xr-x 3 user user  25932 Mar 25 13:35 libgstfieldanalysis.so
-rwxr-xr-x 3 user user  17740 Mar 25 13:35 libgstfreeverb.so
-rwxr-xr-x 3 user user  34124 Mar 25 13:35 libgstfrei0r.so
-rwxr-xr-x 3 user user  22284 Mar 25 13:35 libgstgaudieffects.so
-rwxr-xr-x 3 user user  34196 Mar 25 13:35 libgstgdp.so
-rwxr-xr-x 3 user user  38220 Mar 25 13:35 libgstgeometrictransform.so
-rwxr-xr-x 3 user user  25880 Mar 25 13:35 libgstid3tag.so
-rwxr-xr-x 3 user user  21836 Mar 25 13:35 libgstinterlace.so
-rwxr-xr-x 3 user user  34268 Mar 25 13:35 libgstinter.so
-rwxr-xr-x 3 user user  66924 Mar 25 13:35 libgstipcpipeline.so
-rwxr-xr-x 3 user user   9496 Mar 25 13:35 libgstivfparse.so
-rwxr-xr-x 3 user user  17812 Mar 25 13:35 libgstivtc.so
-rwxr-xr-x 3 user user  30028 Mar 25 13:35 libgstjp2kdecimator.so
-rwxr-xr-x 3 user user  25964 Mar 25 13:35 libgstjpegformat.so
-rwxr-xr-x 3 user user  42208 Mar 25 13:35 libgstkms.so
-rwxr-xr-x 3 user user  17760 Mar 25 13:35 libgstlegacyrawparse.so
-rwxr-xr-x 3 user user  25932 Mar 25 13:35 libgstmidi.so
-rwxr-xr-x 3 user user  75192 Mar 25 13:35 libgstmpegpsdemux.so
-rwxr-xr-x 3 user user  34124 Mar 25 13:35 libgstmpegpsmux.so
-rwxr-xr-x 3 user user 132608 Mar 25 13:35 libgstmpegtsdemux.so
-rwxr-xr-x 3 user user  58700 Mar 25 13:35 libgstmpegtsmux.so
-rwxr-xr-x 3 user user 226960 Mar 25 13:35 libgstmxf.so
-rwxr-xr-x 3 user user  17764 Mar 25 13:35 libgstnetsim.so
-rwxr-xr-x 3 user user  17760 Mar 25 13:35 libgstpcapparse.so
-rwxr-xr-x 3 user user  17784 Mar 25 13:35 libgstpnm.so
-rwxr-xr-x 3 user user  13592 Mar 25 13:35 libgstproxy.so
-rwxr-xr-x 3 user user   9496 Mar 25 13:35 libgstremovesilence.so
-rwxr-xr-x 3 user user  34036 Mar 25 13:35 libgstrfbsrc.so
-rwxr-xr-x 3 user user  17812 Mar 25 13:35 libgstrtponvif.so
-rwxr-xr-x 3 user user  30020 Mar 25 13:35 libgstsdpelem.so
-rwxr-xr-x 3 user user  17812 Mar 25 13:35 libgstsegmentclip.so
-rwxr-xr-x 3 user user  34072 Mar 25 13:35 libgstshm.so
-rwxr-xr-x 3 user user  56684 Mar 25 13:35 libgstsiren.so
-rwxr-xr-x 3 user user   9496 Mar 25 13:35 libgstsmooth.so
-rwxr-xr-x 3 user user  17740 Mar 25 13:35 libgstspeed.so
-rwxr-xr-x 3 user user   9424 Mar 25 13:35 libgststereo.so
-rwxr-xr-x 3 user user  13716 Mar 25 13:35 libgstsubenc.so
-rwxr-xr-x 3 user user  30172 Mar 25 13:35 libgsttimecode.so
-rwxr-xr-x 3 user user  13564 Mar 25 13:35 libgstvcdsrc.so
-rwxr-xr-x 3 user user  13520 Mar 25 13:35 libgstvideofiltersbad.so
-rwxr-xr-x 3 user user  17812 Mar 25 13:35 libgstvideoframe_audiolevel.so
-rwxr-xr-x 3 user user 154016 Mar 25 13:35 libgstvideoparsersbad.so
-rwxr-xr-x 3 user user  21764 Mar 25 13:35 libgstvideosignal.so
-rwxr-xr-x 3 user user  17688 Mar 25 13:35 libgstvmnc.so
-rwxr-xr-x 3 user user  17740 Mar 25 13:35 libgsty4mdec.so
-rwxr-xr-x 3 user user   9496 Mar 25 13:35 libgstyadif.so

Из списка ясно, что не все плагины компилируются.

  1. Я пропустил некоторые шаги до битбейка?
  2. Правильно ли мое понимание PACKAGECONFIG?

Заранее спасибо :)

1 Ответ

1 голос
/ 31 марта 2020

Возможно, файл .bbappend изменяет переменную PACKAGECONFIG этого рецепта.

Вы можете проверить фактическую переменную PACKAGECONFIG в своей среде:

bitbake gstreamer1.0-plugins-bad -e |grep ^PACKAGECONFIG=

Если это так не содержит конфигурацию "sb c", вы можете создать .bbappend в своей мета-версии для добавления sbc конфигурации:

PACKAGECONFIG_append = " sbc "

Что касается переменной PACKAGECONFIG, ваше понимание почти правильное, исключение что назначение ?== очень слабое и может быть изменено другим рецептом.

...