xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.5.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunrequire gstreamer1.0-plugins-common.inc
2*4882a593Smuzhiyunrequire gstreamer1.0-plugins-license.inc
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunDESCRIPTION = "'Bad' GStreamer plugins and helper libraries "
5*4882a593SmuzhiyunHOMEPAGE = "https://gstreamer.freedesktop.org/"
6*4882a593SmuzhiyunBUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
9*4882a593Smuzhiyun           file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \
10*4882a593Smuzhiyun           file://0002-avoid-including-sys-poll.h-directly.patch \
11*4882a593Smuzhiyun           file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch \
12*4882a593Smuzhiyun           file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
13*4882a593Smuzhiyun           "
14*4882a593SmuzhiyunSRC_URI[sha256sum] = "f431214b0754d7037adcde93c3195106196588973e5b32dcb24938805f866363"
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunS = "${WORKDIR}/gst-plugins-bad-${PV}"
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunLICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
19*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunDEPENDS += "gstreamer1.0-plugins-base"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyuninherit gobject-introspection
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunPACKAGECONFIG ??= " \
26*4882a593Smuzhiyun    ${GSTREAMER_ORC} \
27*4882a593Smuzhiyun    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
28*4882a593Smuzhiyun    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
29*4882a593Smuzhiyun    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
30*4882a593Smuzhiyun    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
31*4882a593Smuzhiyun    bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
32*4882a593Smuzhiyun    sndfile ttml uvch264 webp \
33*4882a593Smuzhiyun    ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \
34*4882a593Smuzhiyun"
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunPACKAGECONFIG[aom]             = "-Daom=enabled,-Daom=disabled,aom"
37*4882a593SmuzhiyunPACKAGECONFIG[assrender]       = "-Dassrender=enabled,-Dassrender=disabled,libass"
38*4882a593SmuzhiyunPACKAGECONFIG[bluez]           = "-Dbluez=enabled,-Dbluez=disabled,bluez5"
39*4882a593SmuzhiyunPACKAGECONFIG[bz2]             = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
40*4882a593SmuzhiyunPACKAGECONFIG[closedcaption]   = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo"
41*4882a593SmuzhiyunPACKAGECONFIG[curl]            = "-Dcurl=enabled,-Dcurl=disabled,curl"
42*4882a593SmuzhiyunPACKAGECONFIG[dash]            = "-Ddash=enabled,-Ddash=disabled,libxml2"
43*4882a593SmuzhiyunPACKAGECONFIG[dc1394]          = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394"
44*4882a593SmuzhiyunPACKAGECONFIG[directfb]        = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb"
45*4882a593SmuzhiyunPACKAGECONFIG[dtls]            = "-Ddtls=enabled,-Ddtls=disabled,openssl"
46*4882a593SmuzhiyunPACKAGECONFIG[faac]            = "-Dfaac=enabled,-Dfaac=disabled,faac"
47*4882a593SmuzhiyunPACKAGECONFIG[faad]            = "-Dfaad=enabled,-Dfaad=disabled,faad2"
48*4882a593SmuzhiyunPACKAGECONFIG[fluidsynth]      = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
49*4882a593SmuzhiyunPACKAGECONFIG[hls]             = "-Dhls=enabled,-Dhls=disabled,"
50*4882a593Smuzhiyun# Pick atleast one crypto backend below when enabling hls
51*4882a593SmuzhiyunPACKAGECONFIG[nettle]          = "-Dhls-crypto=nettle,,nettle"
52*4882a593SmuzhiyunPACKAGECONFIG[openssl]         = "-Dhls-crypto=openssl,,openssl"
53*4882a593SmuzhiyunPACKAGECONFIG[gcrypt]          = "-Dhls-crypto=libgcrypt,,libgcrypt"
54*4882a593Smuzhiyun# the gl packageconfig enables OpenGL elements that haven't been ported
55*4882a593Smuzhiyun# to -base yet. They depend on the gstgl library in -base, so we do
56*4882a593Smuzhiyun# not add GL dependencies here, since these are taken care of in -base.
57*4882a593SmuzhiyunPACKAGECONFIG[gl]              = "-Dgl=enabled,-Dgl=disabled,"
58*4882a593SmuzhiyunPACKAGECONFIG[kms]             = "-Dkms=enabled,-Dkms=disabled,libdrm"
59*4882a593SmuzhiyunPACKAGECONFIG[libde265]        = "-Dlibde265=enabled,-Dlibde265=disabled,libde265"
60*4882a593SmuzhiyunPACKAGECONFIG[libssh2]         = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
61*4882a593SmuzhiyunPACKAGECONFIG[lcms2]           = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
62*4882a593SmuzhiyunPACKAGECONFIG[modplug]         = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
63*4882a593SmuzhiyunPACKAGECONFIG[msdk]            = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk"
64*4882a593SmuzhiyunPACKAGECONFIG[neon]            = "-Dneon=enabled,-Dneon=disabled,neon"
65*4882a593SmuzhiyunPACKAGECONFIG[openal]          = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
66*4882a593SmuzhiyunPACKAGECONFIG[opencv]          = "-Dopencv=enabled,-Dopencv=disabled,opencv"
67*4882a593SmuzhiyunPACKAGECONFIG[openh264]        = "-Dopenh264=enabled,-Dopenh264=disabled,openh264"
68*4882a593SmuzhiyunPACKAGECONFIG[openjpeg]        = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg"
69*4882a593SmuzhiyunPACKAGECONFIG[openmpt]         = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt"
70*4882a593Smuzhiyun# the opus encoder/decoder elements are now in the -base package,
71*4882a593Smuzhiyun# but the opus parser remains in -bad
72*4882a593SmuzhiyunPACKAGECONFIG[opusparse]       = "-Dopus=enabled,-Dopus=disabled,libopus"
73*4882a593SmuzhiyunPACKAGECONFIG[resindvd]        = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav"
74*4882a593SmuzhiyunPACKAGECONFIG[rsvg]            = "-Drsvg=enabled,-Drsvg=disabled,librsvg"
75*4882a593SmuzhiyunPACKAGECONFIG[rtmp]            = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump"
76*4882a593SmuzhiyunPACKAGECONFIG[sbc]             = "-Dsbc=enabled,-Dsbc=disabled,sbc"
77*4882a593SmuzhiyunPACKAGECONFIG[sctp]            = "-Dsctp=enabled,-Dsctp=disabled"
78*4882a593SmuzhiyunPACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2"
79*4882a593SmuzhiyunPACKAGECONFIG[sndfile]         = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
80*4882a593SmuzhiyunPACKAGECONFIG[srt]             = "-Dsrt=enabled,-Dsrt=disabled,srt"
81*4882a593SmuzhiyunPACKAGECONFIG[srtp]            = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
82*4882a593SmuzhiyunPACKAGECONFIG[tinyalsa]        = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
83*4882a593SmuzhiyunPACKAGECONFIG[ttml]            = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
84*4882a593SmuzhiyunPACKAGECONFIG[uvch264]         = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
85*4882a593Smuzhiyun# this enables support for stateless V4L2 mem2mem codecs, which is a newer form of
86*4882a593Smuzhiyun# V4L2 codec; the V4L2 code in -base supports the older stateful V4L2 mem2mem codecs
87*4882a593SmuzhiyunPACKAGECONFIG[v4l2codecs]      = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev"
88*4882a593SmuzhiyunPACKAGECONFIG[va]              = "-Dva=enabled,-Dva=disabled,libva"
89*4882a593SmuzhiyunPACKAGECONFIG[voaacenc]        = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
90*4882a593SmuzhiyunPACKAGECONFIG[voamrwbenc]      = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc"
91*4882a593SmuzhiyunPACKAGECONFIG[vulkan]          = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader shaderc-native"
92*4882a593SmuzhiyunPACKAGECONFIG[wayland]         = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm"
93*4882a593SmuzhiyunPACKAGECONFIG[webp]            = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
94*4882a593SmuzhiyunPACKAGECONFIG[webrtc]          = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
95*4882a593SmuzhiyunPACKAGECONFIG[webrtcdsp]       = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
96*4882a593SmuzhiyunPACKAGECONFIG[zbar]            = "-Dzbar=enabled,-Dzbar=disabled,zbar"
97*4882a593SmuzhiyunPACKAGECONFIG[x11]             = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon"
98*4882a593SmuzhiyunPACKAGECONFIG[x265]            = "-Dx265=enabled,-Dx265=disabled,x265"
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunGSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}"
101*4882a593Smuzhiyun
102*4882a593SmuzhiyunEXTRA_OEMESON += " \
103*4882a593Smuzhiyun    -Ddoc=disabled \
104*4882a593Smuzhiyun    -Daes=enabled \
105*4882a593Smuzhiyun    -Dcodecalpha=enabled \
106*4882a593Smuzhiyun    -Ddecklink=enabled \
107*4882a593Smuzhiyun    -Ddvb=enabled \
108*4882a593Smuzhiyun    -Dfbdev=enabled \
109*4882a593Smuzhiyun    -Dipcpipeline=enabled \
110*4882a593Smuzhiyun    -Dshm=enabled \
111*4882a593Smuzhiyun    -Dtranscode=enabled \
112*4882a593Smuzhiyun    -Dandroidmedia=disabled \
113*4882a593Smuzhiyun    -Dapplemedia=disabled \
114*4882a593Smuzhiyun    -Dasio=disabled \
115*4882a593Smuzhiyun    -Davtp=disabled \
116*4882a593Smuzhiyun    -Dbs2b=disabled \
117*4882a593Smuzhiyun    -Dchromaprint=disabled \
118*4882a593Smuzhiyun    -Dd3dvideosink=disabled \
119*4882a593Smuzhiyun    -Dd3d11=disabled \
120*4882a593Smuzhiyun    -Ddirectsound=disabled \
121*4882a593Smuzhiyun    -Ddts=disabled \
122*4882a593Smuzhiyun    -Dfdkaac=disabled \
123*4882a593Smuzhiyun    -Dflite=disabled \
124*4882a593Smuzhiyun    -Dgme=disabled \
125*4882a593Smuzhiyun    -Dgs=disabled \
126*4882a593Smuzhiyun    -Dgsm=disabled \
127*4882a593Smuzhiyun    -Diqa=disabled \
128*4882a593Smuzhiyun    -Dkate=disabled \
129*4882a593Smuzhiyun    -Dladspa=disabled \
130*4882a593Smuzhiyun    -Dldac=disabled \
131*4882a593Smuzhiyun    -Dlv2=disabled \
132*4882a593Smuzhiyun    -Dmagicleap=disabled \
133*4882a593Smuzhiyun    -Dmediafoundation=disabled \
134*4882a593Smuzhiyun    -Dmicrodns=disabled \
135*4882a593Smuzhiyun    -Dmpeg2enc=disabled \
136*4882a593Smuzhiyun    -Dmplex=disabled \
137*4882a593Smuzhiyun    -Dmusepack=disabled \
138*4882a593Smuzhiyun    -Dnvcodec=disabled \
139*4882a593Smuzhiyun    -Dopenexr=disabled \
140*4882a593Smuzhiyun    -Dopenni2=disabled \
141*4882a593Smuzhiyun    -Dopenaptx=disabled \
142*4882a593Smuzhiyun    -Dopensles=disabled \
143*4882a593Smuzhiyun    -Donnx=disabled \
144*4882a593Smuzhiyun    -Dqroverlay=disabled \
145*4882a593Smuzhiyun    -Dsoundtouch=disabled \
146*4882a593Smuzhiyun    -Dspandsp=disabled \
147*4882a593Smuzhiyun    -Dsvthevcenc=disabled \
148*4882a593Smuzhiyun    -Dteletext=disabled \
149*4882a593Smuzhiyun    -Dwasapi=disabled \
150*4882a593Smuzhiyun    -Dwasapi2=disabled \
151*4882a593Smuzhiyun    -Dwildmidi=disabled \
152*4882a593Smuzhiyun    -Dwinks=disabled \
153*4882a593Smuzhiyun    -Dwinscreencap=disabled \
154*4882a593Smuzhiyun    -Dwpe=disabled \
155*4882a593Smuzhiyun    -Dzxing=disabled \
156*4882a593Smuzhiyun"
157*4882a593Smuzhiyun
158*4882a593Smuzhiyunexport OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
159*4882a593Smuzhiyun
160*4882a593SmuzhiyunARM_INSTRUCTION_SET:armv4 = "arm"
161*4882a593SmuzhiyunARM_INSTRUCTION_SET:armv5 = "arm"
162*4882a593Smuzhiyun
163*4882a593SmuzhiyunFILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
164*4882a593SmuzhiyunFILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
165*4882a593SmuzhiyunFILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
166*4882a593SmuzhiyunFILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
167