summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-07-13 12:45:46 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2022-07-13 21:59:40 +0000
commitd60a670349027852e93d006114b82a82cff5f27a (patch)
tree223fb8918264892dae37178e7cd07ed97b1e73c4
parent2c5377c107dde03951f3ed4dc541246fba019695 (diff)
meta-rcar-gen3: workaround recipe incompatibilities with YP 4.0.2
This adds a workaround for the strictly versioned gstreamer bbappends until the BSP gets updated to be compatible with 4.0.2. Bug-AGL: SPEC-4473 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ie25b18779ac6fdb3efd9102317955342bd8e58af Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27766 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
-rw-r--r--meta-agl-bsp/conf/include/agl_rcar-nogfx.inc7
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/gstomx.conf131
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.2.bbappend35
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.2.bbappend21
-rw-r--r--meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.2.bbappend19
5 files changed, 213 insertions, 0 deletions
diff --git a/meta-agl-bsp/conf/include/agl_rcar-nogfx.inc b/meta-agl-bsp/conf/include/agl_rcar-nogfx.inc
index 476eb9c22..839daf052 100644
--- a/meta-agl-bsp/conf/include/agl_rcar-nogfx.inc
+++ b/meta-agl-bsp/conf/include/agl_rcar-nogfx.inc
@@ -58,3 +58,10 @@ BBMASK += "meta-rcar-gen3/recipes-graphics/cogl/cogl-1.0_1.%.bbappend"
# packagegroup bbclass is inherited. This can be removed when upstream
# is fixed to add the required PACKAGE_ARCH = "${MACHINE_ARCH}".
PACKAGE_ARCH:pn-packagegroup-multimedia-libs = "${MACHINE_ARCH}"
+
+# Mask out the gstreamer bbappends to avoid failures due to poky moving
+# to 1.20.2. Temporary replacement 1.20.2 versions can be carried in
+# meta-agl-bsp until the BSP is updated for kirkstone 4.0.2.
+BBMASK += "meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.1.bbappend"
+BBMASK += "meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.1.bbappend"
+BBMASK += "meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.1.bbappend" \ No newline at end of file
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/gstomx.conf b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/gstomx.conf
new file mode 100644
index 000000000..5fca3ee89
--- /dev/null
+++ b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/gstomx.conf
@@ -0,0 +1,131 @@
+[omxh264dec]
+type-name=GstOMXH264Dec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.H264
+rank=512
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/x-h264,alignment=(string)au,stream-format=(string)byte-stream,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
+
+[omxaaclcdec]
+type-name=GstOMXAACDec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.AUDIO.DECODER.AACLC
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport
+sink-template-caps=audio/mpeg,mpegversion=(int){2,4},stream-format=(string){raw,adts},rate=(int)[8000,96000],channels=(int)[1,2],framed=(boolean)true
+src-template-caps=audio/x-raw,rate=(int)[8000,96000],channels=(int)[1,2],format=(string)S16LE
+
+[omxmpeg4videodec]
+type-name=GstOMXMPEG4VideoDec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.MPEG4
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/mpeg,mpegversion=(int)4,systemstream=(boolean)false,parsed=(boolean)true,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
+
+[omxvc1dec]
+type-name=GstOMXWMVDec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.VC1
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/x-wmv,wmvversion=(int)3,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
+
+[omxh265dec]
+type-name=GstOMXH265Dec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.H265
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/x-h265,alignment=(string)au,stream-format=(string)byte-stream,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
+
+[omxaacdec]
+type-name=GstOMXAACDec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.AUDIO.DECODER.AAC
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport
+sink-template-caps=audio/mpeg,mpegversion=(int){2,4},stream-format=(string){raw,adts},rate=(int)[8000,48000],channels=(int)[1,6],framed=(boolean)true
+src-template-caps=audio/x-raw,rate=(int)[8000,48000],channels=(int){1,2,6},format=(string)S16LE
+
+[omxmp3dec]
+type-name=GstOMXMP3Dec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.AUDIO.DECODER.MP3
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport
+sink-template-caps=audio/mpeg,mpegversion=(int)1,layer=(int)[1,3],mpegaudioversion=(int)[1,3],rate=(int)[8000,48000],channels=(int)[1,2],parsed=(boolean) true
+src-template-caps=audio/x-raw,rate=(int)[8000,48000],channels=(int){1,2},format=(string)S16LE
+
+[omxwmadec]
+type-name=GstOMXWMADec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.AUDIO.DECODER.WMA
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;skip-handle-codec-data
+sink-template-caps=audio/x-wma,wmaversion=(int)2,rate=(int)[8000,48000],channels=(int){1,2},block_align=(int)[0,2147483647],bitrate=(int)[0,2147483647]
+src-template-caps=audio/x-raw,rate=(int)[8000,48000],channels=(int){1,2},format=(string)S16LE
+
+[omxh264enc]
+type-name=GstOMXH264Enc
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.ENCODER.H264
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;renesas-encmc-stride-align
+sink-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[80,3840],height=(int)[80,2160]
+src-template-caps=video/x-h264,stream-format=(string)byte-stream,width=(int)[80,3840],height=(int)[80,2160]
+
+[omxvp8dec]
+type-name=GstOMXVP8Dec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.VP8
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/x-vp8,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
+
+[omxvp8enc]
+type-name=GstOMXVP8Enc
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.ENCODER.VP8
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;renesas-encmc-stride-align
+sink-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[80,1920],height=(int)[80,1080]
+src-template-caps=video/x-vp8,width=(int)[80,1920],height=(int)[80,1080]
+
+[omxvp9dec]
+type-name=GstOMXVP9Dec
+core-name=@RENESAS_DATADIR@/lib/libomxr_core.so
+component-name=OMX.RENESAS.VIDEO.DECODER.VP9
+rank=256
+in-port-index=0
+out-port-index=1
+hacks=no-disable-outport;default-pix-aspect-ratio;no-component-reconfigure
+sink-template-caps=video/x-vp9,width=(int)[1, MAX],height=(int)[1, MAX]
+src-template-caps=video/x-raw,format=(string){NV12,I420},width=(int)[1, MAX],height=(int)[1, MAX]
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.2.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.2.bbappend
new file mode 100644
index 000000000..aff8d5acb
--- /dev/null
+++ b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.2.bbappend
@@ -0,0 +1,35 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/:"
+
+RENESAS_OMX_URL ?= "gitsm://github.com/renesas-rcar/gstreamer.git;branch=RCAR-GEN3e/1.20.1;protocol=https"
+
+SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
+SRC_URI:append = " \
+ ${RENESAS_OMX_URL} \
+ file://gstomx.conf \
+"
+
+require include/rcar-gen3-path-common.inc
+
+DEPENDS += "omx-user-module mmngrbuf-user-module"
+
+SRCREV = "c8e94177fecb95bc0dcd9d86e8f67cdbc9d913eb"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://omx/gstomx.h;beginline=1;endline=22;md5=4b2e62aace379166f9181a8571a14882 \
+"
+
+S = "${WORKDIR}/git/subprojects/gst-omx"
+
+GSTREAMER_1_0_OMX_TARGET = "rcar"
+GSTREAMER_1_0_OMX_CORE_NAME = "${libdir}/libomxr_core.so"
+EXTRA_OEMESON:append = " -Dheader_path=${STAGING_DIR_TARGET}/usr/local/include"
+
+do_configure:prepend() {
+ cd ${S}
+ install -m 0644 ${WORKDIR}/gstomx.conf ${S}/config/rcar/
+ sed -i 's,@RENESAS_DATADIR@,${RENESAS_DATADIR},g' ${S}/config/rcar/gstomx.conf
+ cd ${B}
+}
+
+RDEPENDS:${PN}:append = " omx-user-module"
+RDEPENDS:${PN}:remove = "libomxil"
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.2.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.2.bbappend
new file mode 100644
index 000000000..2d37ba974
--- /dev/null
+++ b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.2.bbappend
@@ -0,0 +1,21 @@
+RENESAS_GST_PLUGINS_BAD_URL ?= "gitsm://github.com/renesas-rcar/gstreamer.git;branch=RCAR-GEN3e/1.20.1;protocol=https"
+
+SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
+ file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \
+ file://0002-avoid-including-sys-poll.h-directly.patch \
+ file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch \
+ file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
+ file://0005-msdk-fix-includedir-path.patch \
+ "
+
+SRC_URI:append = " ${RENESAS_GST_PLUGINS_BAD_URL}"
+
+SRCREV = "c8e94177fecb95bc0dcd9d86e8f67cdbc9d913eb"
+
+require include/rcar-gen3-modules-common.inc
+DEPENDS += "weston libdrm"
+
+S = "${WORKDIR}/git/subprojects/gst-plugins-bad"
+
+EXTRA_OECONF += "--enable-kms"
+PACKAGECONFIG:append = "kms"
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.2.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.2.bbappend
new file mode 100644
index 000000000..d1b9fcc80
--- /dev/null
+++ b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.2.bbappend
@@ -0,0 +1,19 @@
+RENESAS_GST_PLUGINS_GOOD_URL ?= "gitsm://github.com/renesas-rcar/gstreamer.git;branch=RCAR-GEN3e/1.20.1;protocol=https"
+
+SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
+ file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
+ file://0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch \
+ "
+
+SRC_URI:append = " ${RENESAS_GST_PLUGINS_GOOD_URL}"
+
+SRCREV = "c8e94177fecb95bc0dcd9d86e8f67cdbc9d913eb"
+
+DEPENDS += "mmngrbuf-user-module"
+
+S = "${WORKDIR}/git/subprojects/gst-plugins-good"
+
+EXTRA_OEMESON:append = " \
+ -Dcont-frame-capture=true \
+ -Dignore-fps-of-video-standard=true \
+"