aboutsummaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3/recipes-multimedia
diff options
context:
space:
mode:
authorTakamitsu Honda <takamitsu.honda.pv@renesas.com>2017-01-27 11:47:06 +0900
committerTakamitsu Honda <takamitsu.honda.pv@renesas.com>2017-01-27 11:47:06 +0900
commit3613b2780a6b5d5d70ea6802be5060a8214cbdb5 (patch)
treefab60ccb7b38da7e8558a2879885f06e5b0662d2 /meta-rcar-gen3/recipes-multimedia
Renesas BSP v3.5.1 (kernel v4.9 stable) [Environment] poky: yocto-2.1.2 (cca8dd15c8096626052f6d8d25ff1e9a606104a3) meta-openembedded: 55c8a76da5dc099a7bc3838495c672140cedb78e meta-linaro: 2f51d38048599d9878f149d6d15539fb97603f8f [Information] - U-boot: Changed load address from H'49000000 to H'50000000 - XDG_RUNTIME_DIR has been changed from "/run/user/root" to "/run/user/0" - Change location of include directory, which stores common user header files, to $(INCSHARED) - In BSP Only, core-image-weston is not supported even though local-wayland.conf is provided. - Please set Salvator-x SW7 Pin-1. In after Yocto BSP v2.12.0, it is  necessary to enable BKUP_TRG signal for Suspend to RAM. - The dtb filename was changed in R-Car H3. Only "Image-r8a7795-es1-salvator-x.dtb" is supported in this version. Please use "Image-r8a7795-es1-salvator-x.dtb" It supports R-Car H3 WS1.0 and WS1.1. - Please update your local.conf and bblayers.conf corresponding to Yocto v2.16.0 package. You can refer to meta-rcargen3/docs/sample/conf/ for updated contents. - You have to re-compile out-of-recipe software like user application by v2.16.0 SDK toolchains. - In some boards, the resuming from System Suspend to RAM may cause unstable operation or failed to resume. Signed-off-by: Takamitsu Honda <takamitsu.honda.pv@renesas.com>
Diffstat (limited to 'meta-rcar-gen3/recipes-multimedia')
-rw-r--r--meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-fw-module.bb29
-rw-r--r--meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-if-module.bb58
-rw-r--r--meta-rcar-gen3/recipes-multimedia/avb-applications/avb-applications.inc9
-rw-r--r--meta-rcar-gen3/recipes-multimedia/avb-applications/avb-demoapps.bb119
-rw-r--r--meta-rcar-gen3/recipes-multimedia/avb-applications/avbtool.bb17
-rw-r--r--meta-rcar-gen3/recipes-multimedia/cms-module/cms-user-module.bb74
-rw-r--r--meta-rcar-gen3/recipes-multimedia/dtv-module/dtv-user-module.bb72
-rw-r--r--meta-rcar-gen3/recipes-multimedia/dvd-module/dvd-user-module.bb62
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bbappend24
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-h3ulcb_r8a7795.conf2
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-m3ulcb_r8a7796.conf2
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7795.conf2
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7796.conf2
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.0.bb37
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bbappend28
-rw-r--r--meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bbappend29
-rw-r--r--meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr-user-module.bb23
-rw-r--r--meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr_lib.inc18
-rw-r--r--meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb23
-rw-r--r--meta-rcar-gen3/recipes-multimedia/omx-module/deltask-omx-user-module.inc2
-rw-r--r--meta-rcar-gen3/recipes-multimedia/omx-module/libalacdla-l.bb61
-rw-r--r--meta-rcar-gen3/recipes-multimedia/omx-module/libflacdla-l.bb50
-rw-r--r--meta-rcar-gen3/recipes-multimedia/omx-module/omx-user-module.bb449
-rw-r--r--meta-rcar-gen3/recipes-multimedia/open-avb/open-avb_git.bb66
-rw-r--r--meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-gstreamer1.0-plugins.bb85
-rw-r--r--meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-kernel.bb31
-rw-r--r--meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-libs.bb20
-rw-r--r--meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-tp-user-module.bb46
-rw-r--r--meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-user-module.bb49
-rw-r--r--meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif.inc15
-rw-r--r--meta-rcar-gen3/recipes-multimedia/webp/libwebp/disabled_arm_neon.diff12
-rw-r--r--meta-rcar-gen3/recipes-multimedia/webp/libwebp_%.bbappend5
32 files changed, 1521 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-fw-module.bb b/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-fw-module.bb
new file mode 100644
index 0000000..c57a47a
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-fw-module.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "ADSP Framework for Linux"
+LICENSE = "CLOSED"
+
+require include/adsp-control.inc
+
+SRC_URI = "${@base_conditional('USE_ADSP', '1', 'file://RCG3AHFWN0101ZDP.tar.gz', '', d )}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/RCG3AHFWN0101ZDP"
+
+do_install() {
+ # create the firmware dir
+ install -d ${D}/lib/firmware
+
+ # install the firmware bin
+ install -m 0644 ${S}/lib/firmware/xf-rcar.fw ${D}/lib/firmware
+}
+
+PACKAGES = " \
+ ${PN} \
+"
+
+FILES_${PN} = " \
+ /lib/firmware \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-if-module.bb b/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-if-module.bb
new file mode 100644
index 0000000..7128f7d
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/adsp-module/adsp-if-module.bb
@@ -0,0 +1,58 @@
+DESCRIPTION = "ADSP Interface for Linux"
+LICENSE = "CLOSED"
+
+require include/adsp-control.inc
+
+DEPENDS += "kernel-module-xtensa-hifi"
+
+SRC_URI = "${@base_conditional('USE_ADSP', '1', 'file://RCG3AHIFL4001ZDP.tar.gz', '', d )}"
+
+S = "${WORKDIR}/RCG3AHIFL4001ZDP"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# Don't need to do_configure
+do_configure[noexec] = "1"
+
+# Don't use EXTRA_OEMAKE default value to avoid default CFLAGS, LDFLAGS
+# of poky override the CFLAGS, LDFLAGS inside RCG3AHIFL4001ZDP/Makefile
+EXTRA_OEMAKE = "INCSHARED=${STAGING_INCDIR}"
+
+do_compile() {
+ cd ${S}
+ oe_runmake
+}
+
+do_install() {
+ # Create destination directory
+ install -d ${D}/${libdir}
+ install -d ${D}/${includedir}
+ install -d ${D}/${includedir}/sys/fio
+ install -d ${D}/${includedir}/os/linux
+
+ # Copy library
+ install -m 0755 ${S}/libRCG3AHIFL4001ZDP.so.1.0 ${D}/${libdir}
+
+ # Copy shared header files
+ install -m 0644 ${S}/include/*.h ${D}/${includedir}
+ install -m 0644 ${S}/include/sys/fio/*.h ${D}/${includedir}/sys/fio/
+ install -m 0644 ${S}/include/os/linux/*.h ${D}/${includedir}/os/linux/
+
+ # Create the symbolic link
+ cd ${D}/${libdir}
+ ln -s libRCG3AHIFL4001ZDP.so.1.0 libRCG3AHIFL4001ZDP.so.1
+ ln -s libRCG3AHIFL4001ZDP.so.1 libRCG3AHIFL4001ZDP.so
+}
+
+PACKAGES = " \
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-dbg \
+"
+
+INSANE_SKIP_${PN} += "dev-so"
+
+FILES_${PN} += " \
+ ${libdir}/*.so* \
+ ${includedir} \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-applications.inc b/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-applications.inc
new file mode 100644
index 0000000..c5ec56c
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-applications.inc
@@ -0,0 +1,9 @@
+require include/avb-control.inc
+require include/rcar-gen3-modules-common.inc
+
+inherit distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "avb"
+
+SRC_URI = "git://github.com/renesas-rcar/avb-applications.git;branch=rcar-gen3"
+SRCREV = "65ed4abc3d403b61405bde89a755da37390052c9"
diff --git a/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-demoapps.bb b/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-demoapps.bb
new file mode 100644
index 0000000..ca9fd9c
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/avb-applications/avb-demoapps.bb
@@ -0,0 +1,119 @@
+DESCRIPTION = "Renesas Ethernet AVB demo applications"
+
+require avb-applications.inc
+
+LICENSE = "MIT & BSD"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.MIT;md5=96659f2a7571bfa27483882a653c3bb9 \
+ file://lib/msrp/LICENSE.BSD;md5=60ba0ea0afdcbf8d26ce31ce1503aba3 \
+ file://lib/avdecc/jdksavdecc-c/COPYRIGHT;md5=6592ded5140540a936b8d98ed1b6a577 \
+ file://avblauncher/inih/LICENSE.txt;md5=a7a95d2af90376e85a05318794e6f202 \
+"
+
+DEPENDS = "kernel-module-avb-streaming libyaml"
+
+S = "${WORKDIR}/git/avb-demoapps"
+
+includedir = "/usr/local/include"
+
+# submodule is extracted before do_populate_lic
+addtask do_init_submodule after do_unpack before do_patch
+
+do_init_submodule() {
+ cd ${S}
+ git submodule init
+ git submodule update
+}
+
+EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}'"
+
+do_install_append() {
+ oe_runmake install INSTALL_DIR=${D}/${bindir}
+
+ # Create intall directories
+ install -d ${D}/${sysconfdir}/linuxptp
+ install -d ${D}/${sysconfdir}/daemon_cl
+ install -d ${D}/${sysconfdir}/avblauncher
+
+ # Install
+ install -m 644 ${S}/etc/linuxptp/avb-demoapps.cfg ${D}/${sysconfdir}/linuxptp
+ install -m 644 ${S}/etc/daemon_cl/gptp_cfg_100mb.ini ${D}/${sysconfdir}/daemon_cl
+ install -m 644 ${S}/etc/daemon_cl/gptp_cfg.ini ${D}/${sysconfdir}/daemon_cl
+ install -m 755 ${S}/etc/avblauncher/mse_aaf_pcm.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_aaf_pcm_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_aaf_pcm_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/mse_cvf_h264.sh ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/mse_cvf_h264_d13.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_h264_d13_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_h264_d13_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_h264_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_h264_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/mse_cvf_mjpeg.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_mjpeg_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_cvf_mjpeg_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/mse_iec61883_4.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_iec61883_4_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_iec61883_4_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/mse_iec61883_6.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_iec61883_6_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/mse_iec61883_6_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 755 ${S}/etc/avblauncher/simple_application.sh ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/simple_listener.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/simple_talker.ini ${D}/${sysconfdir}/avblauncher
+ install -m 644 ${S}/etc/avblauncher/avdecc_entity_audio.yaml ${D}/${sysconfdir}/avblauncher
+}
+
+PACKAGES =+ " \
+ ${PN}-simple \
+ ${PN}-mrpdummy \
+ ${PN}-avblauncher \
+"
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-mrpdummy = " \
+ ${bindir}/mrpdummy \
+"
+
+FILES_${PN}-avblauncher = " \
+ ${sysconfdir}/daemon_cl/gptp_cfg_100mb.ini \
+ ${sysconfdir}/daemon_cl/gptp_cfg.ini \
+ ${sysconfdir}/avblauncher/mse_aaf_pcm.sh \
+ ${sysconfdir}/avblauncher/mse_aaf_pcm_listener.ini \
+ ${sysconfdir}/avblauncher/mse_aaf_pcm_talker.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_h264.sh \
+ ${sysconfdir}/avblauncher/mse_cvf_h264_d13.sh \
+ ${sysconfdir}/avblauncher/mse_cvf_h264_d13_listener.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_h264_d13_talker.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_h264_listener.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_h264_talker.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_mjpeg.sh \
+ ${sysconfdir}/avblauncher/mse_cvf_mjpeg_listener.ini \
+ ${sysconfdir}/avblauncher/mse_cvf_mjpeg_talker.ini \
+ ${sysconfdir}/avblauncher/mse_iec61883_4.sh \
+ ${sysconfdir}/avblauncher/mse_iec61883_4_listener.ini \
+ ${sysconfdir}/avblauncher/mse_iec61883_4_talker.ini \
+ ${sysconfdir}/avblauncher/mse_iec61883_6.sh \
+ ${sysconfdir}/avblauncher/mse_iec61883_6_listener.ini \
+ ${sysconfdir}/avblauncher/mse_iec61883_6_talker.ini \
+ ${sysconfdir}/avblauncher/simple_application.sh \
+ ${sysconfdir}/avblauncher/simple_listener.ini \
+ ${sysconfdir}/avblauncher/simple_talker.ini \
+ ${sysconfdir}/avblauncher/avdecc_entity_audio.yaml \
+ ${bindir}/avblauncher \
+"
+
+FILES_${PN}-simple = " \
+ ${sysconfdir}/linuxptp/avb-demoapps.cfg \
+ ${bindir}/simple_talker \
+ ${bindir}/simple_listener \
+"
+
+RDEPENDS_${PN} = " \
+ ${PN}-simple \
+ ${PN}-avblauncher \
+"
+
+RDEPENDS_${PN}-avblauncher = " \
+ ${PN}-mrpdummy \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/avb-applications/avbtool.bb b/meta-rcar-gen3/recipes-multimedia/avb-applications/avbtool.bb
new file mode 100644
index 0000000..5c00277
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/avb-applications/avbtool.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Utility tool of the AVB Streaming Driver for Linux for the R-Car Gen3"
+
+require avb-applications.inc
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=96659f2a7571bfa27483882a653c3bb9"
+
+DEPENDS = "kernel-module-avb-streaming"
+
+S = "${WORKDIR}/git/avbtool"
+
+EXTRA_OEMAKE = "'CC=${CC}'"
+
+do_install_append() {
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/avbtool ${D}/${bindir}
+}
diff --git a/meta-rcar-gen3/recipes-multimedia/cms-module/cms-user-module.bb b/meta-rcar-gen3/recipes-multimedia/cms-module/cms-user-module.bb
new file mode 100644
index 0000000..645d8b8
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/cms-module/cms-user-module.bb
@@ -0,0 +1,74 @@
+DESCRIPTION = "R-Car Gen3 Color Management System"
+LICENSE = "CLOSED"
+
+require include/cms-control.inc
+
+SRC_CMSBCM = "${@bb.utils.contains('USE_CMSBCM', '1', 'file://RTM0AC0000JRCMBCV0SL40C.tar.gz;subdir=cms/bcm', '', d)}"
+SRC_CMSBLC = "${@bb.utils.contains('USE_CMSBLC', '1', 'file://RTM0AC0000JRCMBLC0SL40C.tar.gz;subdir=cms/blc', '', d)}"
+SRC_CMSDGC = "${@bb.utils.contains('USE_CMSDGC', '1', 'file://RTM0AC0000JRCMDGV0SL40C.tar.gz;subdir=cms/dgc', '', d)}"
+
+SRC_URI = " \
+ ${SRC_CMSBCM} \
+ ${SRC_CMSBLC} \
+ ${SRC_CMSDGC} \
+"
+
+S = "${WORKDIR}/cms"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ # Create the lib directory
+ install -d ${D}/${libdir}
+
+ if [ "X${USE_CMSBCM}" = "X1" ]; then
+ install -d ${D}/${includedir}/cms/bcm
+ install -m 755 ${S}/bcm/${baselib}/libcmsbcm.so.0.5.2 ${D}/${libdir}
+ install -m 644 ${S}/bcm/include/*.h ${D}/${includedir}/cms/bcm
+
+ cd ${D}/${libdir}
+ ln -s libcmsbcm.so.0.5.2 libcmsbcm.so.0
+ ln -s libcmsbcm.so.0 libcmsbcm.so
+ fi
+
+ if [ "X${USE_CMSBLC}" = "X1" ]; then
+ install -d ${D}/${includedir}/cms/blc
+ install -m 755 ${S}/blc/${baselib}/libcmsblc.so.0.5.2 ${D}/${libdir}
+ install -m 644 ${S}/blc/include/*.h ${D}/${includedir}/cms/blc
+
+ cd ${D}/${libdir}
+ ln -s libcmsblc.so.0.5.2 libcmsblc.so.0
+ ln -s libcmsblc.so.0 libcmsblc.so
+ fi
+
+ if [ "X${USE_CMSDGC}" = "X1" ]; then
+ install -d ${D}/${includedir}/cms/dgc
+ install -m 755 ${S}/dgc/${baselib}/libcmsdgc.so.0.5.1 ${D}/${libdir}
+ install -m 644 ${S}/dgc/include/*.h ${D}/${includedir}/cms/dgc
+
+ cd ${D}/${libdir}
+ ln -s libcmsdgc.so.0.5.1 libcmsdgc.so.0
+ ln -s libcmsdgc.so.0 libcmsdgc.so
+ fi
+}
+
+FILES_${PN} = " \
+ ${libdir}/*.so.* \
+ ${libdir}/lib*.so \
+"
+
+FILES_${PN}-dev = " \
+ ${includedir} \
+"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+# Skip debug strip of do_populate_sysroot()
+INHIBIT_SYSROOT_STRIP = "1"
+
+# Skip debug split and strip of do_package()
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/dtv-module/dtv-user-module.bb b/meta-rcar-gen3/recipes-multimedia/dtv-module/dtv-user-module.bb
new file mode 100644
index 0000000..76d96f8
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/dtv-module/dtv-user-module.bb
@@ -0,0 +1,72 @@
+DESCRIPTION = "ISDB-T DTV Software Package for Linux for the R-Car Gen3"
+LICENSE = "CLOSED"
+
+require include/rcar-gen3-modules-common.inc
+require include/dtv-dvd-control.inc
+
+inherit distro_features_check
+
+DEPENDS = " \
+ kernel-module-vspmif mmngr-user-module \
+ vspmif-user-module kernel-module-vspmif kernel-module-vspm \
+ omx-user-module kernel-module-uvcs-drv \
+ kernel-module-scu-src kernel-module-ssp \
+ kernel-module-tddmac kernel-module-tsif \
+"
+
+PN = "dtv-user-module"
+PR = "r0"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+REQUIRED_DISTRO_FEATURES = "dtv"
+
+SRC_URI_DTV_SW = "file://Software.tar.gz"
+SRC_URI_DTV_UDF = "file://Reference.tar.gz"
+
+SRC_URI = " \
+ ${SRC_URI_DTV_SW} \
+ ${SRC_URI_DTV_UDF} \
+"
+
+S = "${WORKDIR}"
+
+# do_configure() nothing
+do_configure[noexec] = "1"
+# do_compile() nothing
+do_compile[noexec] = "1"
+
+do_install() {
+ # Create destination folders
+ install -d ${D}/${libdir}
+ install -d ${D}/usr/local/include
+ install -d ${D}/usr/local/src/dtv/reference
+
+ # Copy library
+ install -m 644 ${S}/${baselib}/*.a ${D}/${libdir}/
+
+ # Copy shared header files
+ install -m 644 ${S}/include/*.h ${D}/usr/local/include
+
+ # Copy reference files
+ install -m 644 ${S}/userfunc/*.h ${D}/usr/local/src/dtv/reference
+ install -m 644 ${S}/userfunc/*.c ${D}/usr/local/src/dtv/reference
+}
+
+PACKAGES = " \
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-staticdev \
+"
+
+FILES_${PN} = ""
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev = " \
+ /usr/local/include/*.h \
+ /usr/local/src/dtv/reference/* \
+"
+FILES_${PN}-staticdev = " \
+ ${libdir}/*.a \
+"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/dvd-module/dvd-user-module.bb b/meta-rcar-gen3/recipes-multimedia/dvd-module/dvd-user-module.bb
new file mode 100644
index 0000000..ff3633b
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/dvd-module/dvd-user-module.bb
@@ -0,0 +1,62 @@
+DESCRIPTION = "DVD Core-Middleware for Linux for the R-Car Gen3"
+LICENSE = "CLOSED"
+
+require include/rcar-gen3-modules-common.inc
+require include/dtv-dvd-control.inc
+
+inherit distro_features_check
+
+DEPENDS = " \
+ kernel-module-vspmif mmngr-user-module \
+ vspmif-user-module kernel-module-vspmif kernel-module-vspm \
+ omx-user-module kernel-module-uvcs-drv \
+"
+
+PN = "dvd-user-module"
+PR = "r0"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+REQUIRED_DISTRO_FEATURES = "dvd"
+
+SRC_URI_DVD_SW = "file://Software.tar.gz"
+
+SRC_URI = " \
+ ${SRC_URI_DVD_SW} \
+"
+
+S = "${WORKDIR}"
+
+# do_configure() nothing
+do_configure[noexec] = "1"
+# do_compile() nothing
+do_compile[noexec] = "1"
+
+do_install() {
+ # Create destination folders
+ install -d ${D}/${libdir}
+ install -d ${D}/usr/local/include
+
+ # Copy library
+ install -m 644 ${S}/${baselib}/*.a ${D}/${libdir}
+
+ # Copy shared header files
+ install -m 644 ${S}/include/*.h ${D}/usr/local/include
+}
+
+PACKAGES = " \
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-staticdev \
+"
+
+FILES_${PN} = ""
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev = " \
+ /usr/local/include/*.h \
+"
+FILES_${PN}-staticdev = " \
+ ${libdir}/*.a \
+"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bbappend b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bbappend
new file mode 100644
index 0000000..cf19c00
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bbappend
@@ -0,0 +1,24 @@
+SRC_URI = "git://github.com/renesas-rcar/gst-omx.git;branch=RCAR-GEN3/1.2.0"
+
+DEPENDS += "omx-user-module mmngrbuf-user-module"
+
+SRCREV = "39061698da1b8e29b1cfc8648210837cbdc11295"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://omx/gstomx.h;beginline=1;endline=22;md5=9281ffe981001da5a13db0303fa7c4ab \
+"
+
+S = "${WORKDIR}/git"
+
+GSTREAMER_1_0_OMX_TARGET = "rcar"
+GSTREAMER_1_0_OMX_CORE_NAME = "${libdir}/libomxr_core.so"
+EXTRA_OECONF_append = " --enable-experimental"
+EXTRA_OECONF_append = " --with-omx-header-path=${S}/omx/openmax"
+
+do_configure_prepend() {
+ cd ${S}
+ ./autogen.sh --noconfigure
+ cd ${B}
+}
+
+RDEPENDS_${PN} = "libwayland-egl"
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-h3ulcb_r8a7795.conf b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-h3ulcb_r8a7795.conf
new file mode 100644
index 0000000..4807dc3
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-h3ulcb_r8a7795.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video12
+output-device-name=/dev/video13
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-m3ulcb_r8a7796.conf b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-m3ulcb_r8a7796.conf
new file mode 100644
index 0000000..890c5ad
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-m3ulcb_r8a7796.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video6
+output-device-name=/dev/video7
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7795.conf b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7795.conf
new file mode 100644
index 0000000..586b13b
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7795.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video20
+output-device-name=/dev/video21
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7796.conf b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7796.conf
new file mode 100644
index 0000000..74a8ab9
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter/gstvspfilter-salvator-x_r8a7796.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video14
+output-device-name=/dev/video15
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.0.bb b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.0.bb
new file mode 100644
index 0000000..f7b573e
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "GStreamer VSP filter plugin"
+SECTION = "multimedia"
+LICENSE = "GPLv2+"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base pkgconfig"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+inherit autotools
+
+PN = "gstreamer1.0-plugin-vspfilter"
+
+EXTRA_AUTORECONF_append = " -I ${STAGING_DATADIR}/aclocal"
+
+VSPFILTER_CONF_r8a7795 = "gstvspfilter-${MACHINE}_r8a7795.conf"
+VSPFILTER_CONF_r8a7796 = "gstvspfilter-${MACHINE}_r8a7796.conf"
+
+SRC_URI = " \
+ git://github.com/renesas-rcar/gst-plugin-vspfilter.git;branch=RCAR-GEN3/1.0.0 \
+ file://${VSPFILTER_CONF} \
+"
+
+SRCREV = "a1fa0a51e7d93ddd04b66521f8c5c4a486fdcc17"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} = " \
+ ${libdir}/gstreamer-1.0/libgstvspfilter.so \
+ ${sysconfdir}/gstvspfilter.conf"
+FILES_${PN}-dev = "${libdir}/gstreamer-1.0/libgstvspfilter.la"
+FILES_${PN}-staticdev = "${libdir}/gstreamer-1.0/libgstvspfilter.a"
+FILES_${PN}-dbg = " \
+ ${libdir}/gstreamer-1.0/.debug \
+ ${prefix}/src"
+
+do_install_append() {
+ install -Dm 644 ${WORKDIR}/${VSPFILTER_CONF} ${D}/etc/gstvspfilter.conf
+}
+
+RDEPENDS_${PN} = "kernel-module-vsp2driver"
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bbappend b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bbappend
new file mode 100644
index 0000000..0b78fc2
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bbappend
@@ -0,0 +1,28 @@
+SRC_URI = "git://github.com/renesas-rcar/gst-plugins-bad.git;branch=RCAR-GEN3/1.6.3"
+SRC_URI += " \
+ file://configure-allow-to-disable-libssh2.patch \
+ file://0001-glimagesink-Downrank-to-marginal.patch \
+ file://0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch \
+"
+SRCREV = "3143b25ca69f1f6bacdac0a33248007c979ba4a5"
+
+DEPENDS += "weston"
+
+S = "${WORKDIR}/git"
+
+# submodule is extracted before do_populate_lic
+addtask do_init_submodule after do_unpack before do_patch
+
+do_init_submodule() {
+ cd ${S}
+ git submodule init
+ git submodule update
+}
+
+do_configure_prepend() {
+ cd ${S}
+ ./autogen.sh --noconfigure
+ cd ${B}
+}
+
+RDEPENDS_${PN} = "libwayland-egl"
diff --git a/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bbappend b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bbappend
new file mode 100644
index 0000000..67afefd
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bbappend
@@ -0,0 +1,29 @@
+SRC_URI = "git://github.com/renesas-rcar/gst-plugins-good.git;branch=RCAR-GEN3/1.6.3"
+
+# patches come from poky
+SRC_URI += " \
+ file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \
+"
+
+SRCREV = "ef4a8e903673cd0415ac7485b700b022c2e4410a"
+
+DEPENDS += "mmngrbuf-user-module"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF_append = " --enable-cont-frame-capture"
+
+# submodule is extracted before do_populate_lic
+addtask do_init_submodule after do_unpack before do_patch
+
+do_init_submodule() {
+ cd ${S}
+ git submodule init
+ git submodule update
+}
+
+do_configure_prepend() {
+ cd ${S}
+ ./autogen.sh --noconfigure
+ cd ${B}
+}
diff --git a/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr-user-module.bb b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr-user-module.bb
new file mode 100644
index 0000000..b22490e
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr-user-module.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Memory Manager User module for Renesas R-Car Gen3"
+require mmngr_lib.inc
+
+DEPENDS = "kernel-module-mmngr"
+PN = "mmngr-user-module"
+PR = "r0"
+
+S = "${WORKDIR}/git/libmmngr/mmngr"
+
+EXTRA_OECONF = "${@bb.utils.contains("DISTRO_FEATURES", "mm-test", \
+ " --enable-mmngr-test", "", d)}"
+
+exec_prefix = "/usr"
+bindir = "/usr/local/bin"
+includedir = "/usr/local/include"
+
+do_install_append() {
+ if [ -f ${D}/usr/local/bin/mmtp ]; then
+ if [ X${WS} = "X32" ]; then
+ mv ${D}/usr/local/bin/mmtp ${D}/usr/local/bin/mmtp${WS}
+ fi
+ fi
+}
diff --git a/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr_lib.inc b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr_lib.inc
new file mode 100644
index 0000000..4474c61
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngr_lib.inc
@@ -0,0 +1,18 @@
+# Common path of MMNGR and MMNGRBUF module
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "\
+ file://${WORKDIR}/git/COPYING.MIT;md5=30a99e0d36a3da1f5cf93c070ad7888a"
+
+MMNGR_LIB_URI = "git://github.com/renesas-rcar/mmngr_lib.git"
+
+SRC_URI = "${MMNGR_LIB_URI};branch=rcar_gen3"
+SRCREV = "6f7b2c35afea5513aeb0ac3b182ff28726f2952c"
+
+# Get Wordsize of test app and change their names later to avoid override
+WS_aarch64 = ""
+WS_virtclass-multilib-lib32 = "32"
+
+# These modules are machine specific.
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit autotools
diff --git a/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb
new file mode 100644
index 0000000..916d567
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Memory Manager Buffer User module for Renesas R-Car Gen3"
+require mmngr_lib.inc
+
+DEPENDS = "kernel-module-mmngrbuf"
+PN = "mmngrbuf-user-module"
+PR = "r0"
+
+S = "${WORKDIR}/git/libmmngr/mmngrbuf"
+
+EXTRA_OECONF = "${@bb.utils.contains("DISTRO_FEATURES", "mm-test", \
+ " --enable-mmngrbuf-test", "", d)}"
+
+exec_prefix = "/usr"
+bindir = "/usr/local/bin"
+includedir = "/usr/local/include"
+
+do_install_append() {
+ if [ -f ${D}/usr/local/bin/mmbuftp ]; then
+ if [ X${WS} = "X32" ]; then
+ mv ${D}/usr/local/bin/mmbuftp ${D}/usr/local/bin/mmbuftp${WS}
+ fi
+ fi
+}
diff --git a/meta-rcar-gen3/recipes-multimedia/omx-module/deltask-omx-user-module.inc b/meta-rcar-gen3/recipes-multimedia/omx-module/deltask-omx-user-module.inc
new file mode 100644
index 0000000..6f3f847
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/omx-module/deltask-omx-user-module.inc
@@ -0,0 +1,2 @@
+deltask do_configure
+deltask do_compile
diff --git a/meta-rcar-gen3/recipes-multimedia/omx-module/libalacdla-l.bb b/meta-rcar-gen3/recipes-multimedia/omx-module/libalacdla-l.bb
new file mode 100644
index 0000000..f370778
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/omx-module/libalacdla-l.bb
@@ -0,0 +1,61 @@
+DESCRIPTION = "ALAC decoder library"
+SECTION = "libs"
+LICENSE = "Apache-2.0 & APSL-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=5cf67868b9e038eccb149ec80809d9f5 \
+ file://APPLE_LICENSE.txt;md5=b180a94f894d2a868d40ea43da2bbaba \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEPENDS = " \
+ kernel-module-mmngr mmngr-user-module \
+ vspmif-user-module kernel-module-vspmif \
+ kernel-module-vspm kernel-module-vsp2driver \
+"
+
+RDEPENDS_${PN} += "mmngr-user-module vspmif-user-module"
+
+SRC_URI = "git://github.com/renesas-rcar/alac_decoder.git;branch=master"
+SRCREV = "30eea301f6b3be87e58f2db0f479d0045ad66764"
+
+S = "${WORKDIR}/git"
+B = "${S}/build/linux_armyocto/lib"
+
+EXTRA_OEMAKE = "ARCH=${ARCH}"
+
+ARCH = "arm"
+ARCH_aarch64 = "arm64"
+
+do_install() {
+ # Create directories
+ install -d ${D}/${libdir}
+ install -d ${D}/${includedir}
+
+ # Install library
+ install -m 755 ${S}/build/linux_armyocto/libALACDLA_L.so.2.0 ${D}/${libdir}/
+
+ # Create symbolic link
+ cd ${D}/${libdir}
+ ln -s libALACDLA_L.so.2.0 libALACDLA_L.so.2
+ ln -s libALACDLA_L.so.2 libALACDLA_L.so
+
+ # Install shared header file
+ install -m 644 ${S}/lib/alacd_Lib.h ${D}/${includedir}/
+}
+
+FILES_${PN} += " \
+ ${libdir}/libALACDLA_L.so.* \
+ ${libdir}/libALACDLA_L.so \
+"
+
+FILES_${PN}-dev = "${includedir}/*.h"
+
+INSANE_SKIP_${PN} += "dev-so"
+
+# Skip debug strip of do_populate_sysroot()
+INHIBIT_SYSROOT_STRIP = "1"
+
+# Skip debug split and strip of do_package()
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/omx-module/libflacdla-l.bb b/meta-rcar-gen3/recipes-multimedia/omx-module/libflacdla-l.bb
new file mode 100644
index 0000000..c7e405c
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/omx-module/libflacdla-l.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "FLAC decoder library"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING.Xiph;md5=a2c4b71c0198682376d483eb5bcc9197"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "git://github.com/renesas-rcar/flac_decoder.git;branch=master"
+SRCREV = "75791faa549e60fdad34228e6e13a2560962e9ae"
+
+S = "${WORKDIR}/git"
+B = "${S}/build/linux_armyocto/lib"
+
+EXTRA_OEMAKE = "ARCH=${ARCH}"
+
+ARCH = "arm"
+ARCH_aarch64 = "arm64"
+
+do_install() {
+ # Create directories
+ install -d ${D}/${libdir}
+ install -d ${D}/${includedir}
+
+ # Install library
+ install -m 755 ${S}/build/linux_armyocto/libFLACDLA_L.so.2.0 ${D}/${libdir}/
+
+ # Create symbolic link
+ cd ${D}/${libdir}
+ ln -s libFLACDLA_L.so.2.0 libFLACDLA_L.so.2
+ ln -s libFLACDLA_L.so.2 libFLACDLA_L.so
+
+ # Install shared header file
+ install -m 644 ${S}/lib/flacd_Lib.h ${D}/${includedir}/
+}
+
+FILES_${PN} += " \
+ ${libdir}/libFLACDLA_L.so.* \
+ ${libdir}/libFLACDLA_L.so \
+"
+
+FILES_${PN}-dev = "${includedir}/*.h"
+
+INSANE_SKIP_${PN} += "dev-so"
+
+# Skip debug strip of do_populate_sysroot()
+INHIBIT_SYSROOT_STRIP = "1"
+
+# Skip debug split and strip of do_package()
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/omx-module/omx-user-module.bb b/meta-rcar-gen3/recipes-multimedia/omx-module/omx-user-module.bb
new file mode 100644
index 0000000..87a5937
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/omx-module/omx-user-module.bb
@@ -0,0 +1,449 @@
+DESCRIPTION = "OMX Media Components R-Car Gen3"
+LICENSE = "CLOSED"
+require include/omx-control.inc
+require include/rcar-gen3-modules-common.inc
+
+DEPENDS = " \
+ kernel-module-mmngr mmngr-user-module \
+ vspmif-user-module kernel-module-vspmif \
+ kernel-module-vspm kernel-module-vsp2driver \
+"
+
+# Task Control. Compile is not performed when not installing OMX Video and Audio Libs.
+# Note) dummy-omx-user-module.inc does not exist.
+INCLUDE_FILE = '${@base_conditional("USE_OMX_COMMON", "1", "dummy", "deltask", d )}'
+include ${INCLUDE_FILE}-omx-user-module.inc
+
+DEPENDS += '${@base_conditional("USE_VIDEO_OMX", "1", "kernel-module-uvcs-drv", "", d )}'
+
+inherit autotools
+
+includedir = "/usr/local/include"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+OMX_EVA_PREFIX = '${@base_conditional("USE_OMX_EVA_PKG", "1", "EVA", "", d )}'
+
+# SRC file name
+SRC_URI_OMX = '${@base_conditional("USE_OMX_COMMON", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XCMCTL30SL40C.tar.bz2;unpack=0", "", d )}'
+SRC_URI_VCMND = '${@base_conditional("USE_VIDEO_DEC", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVCMND30SL40C.tar.bz2;unpack=0", "", d )}'
+SRC_URI_VCMNE = '${@base_conditional("USE_VIDEO_ENC", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVCMNE30SL40C.tar.bz2;unpack=0", "", d )}'
+SRC_URI_H263D = '${@base_conditional("USE_H263D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XV263D30SL40C.tar.bz2", "", d )}'
+SRC_URI_H264D = '${@base_conditional("USE_H264D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XV264D30SL40C.tar.bz2", "", d )}'
+SRC_URI_H264E = '${@base_conditional("USE_H264E_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XV264E30SL40C.tar.bz2", "", d )}'
+SRC_URI_H265D = '${@base_conditional("USE_H265D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XV265D30SL40C.tar.bz2", "", d )}'
+SRC_URI_MPEG2D = '${@base_conditional("USE_MPEG2D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVM2VD30SL40C.tar.bz2", "", d )}'
+SRC_URI_MPEG4D = '${@base_conditional("USE_MPEG4D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVM4VD30SL40C.tar.bz2", "", d )}'
+SRC_URI_VC1D = '${@base_conditional("USE_VC1D_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVVC1D30SL40C.tar.bz2", "", d )}'
+SRC_URI_DIVXD = '${@base_conditional("USE_DIVXD_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVDVXD30SL40C.tar.bz2", "", d )}'
+SRC_URI_RVD = '${@base_conditional("USE_RVD_OMX", "1", "file://${OMX_EVA_PREFIX}RTM0AC0000XVRLVD30SL40C.tar.bz2", "", d )}'
+SRC_URI_ACMND = '${@base_conditional("USE_AUDIO_OMX", "1", "file://RTM0AC0000XACMND30SL40C.tar.gz", "", d )}'
+SRC_URI_AACLC = '${@base_conditional("USE_AACLCD_OMX", "1", "file://RTM0AC0000XAAACD30SL40C.tar.gz", "", d )}'
+SRC_URI_AACPV2 = '${@base_conditional("USE_AACPV2D_OMX", "1", "file://RTM0AC0000XAAAPD30SL40C.tar.gz", "", d )}'
+SRC_URI_MP3 = '${@base_conditional("USE_MP3D_OMX", "1", "file://RTM0AC0000XAMP3D30SL40C.tar.gz", "", d )}'
+SRC_URI_AACLCE = '${@base_conditional("USE_AACLCE_OMX", "1", "file://RTM0AC0000XAAACE30SL40C.tar.gz", "", d )}'
+SRC_URI_WMA = '${@base_conditional("USE_WMAD_OMX", "1", "file://RTM0AC0000XAWMAD30SL40C.tar.gz", "", d )}'
+SRC_URI_ALACD = '${@base_conditional("USE_ALACD_OMX", "1", "file://RTM0AC0000XAALAD30SL40C.tar.gz", "", d )}'
+SRC_URI_FLACD = '${@base_conditional("USE_FLACD_OMX", "1", "file://RTM0AC0000XAFLAD30SL40C.tar.gz", "", d )}'
+SRC_URI_DDD = '${@base_conditional("USE_DDD_OMX", "1", "file://RTM0AC0000XADD5D30SL40C.tar.gz", "", d )}'
+SRC_URI_AACMZ = '${@base_conditional("USE_AACLC_MDW", "1", "file://RTM0AC0000ADAACMZ1SL40C.tar.gz", "", d )}'
+SRC_URI_AACPV2MZ = '${@base_conditional("USE_AACPV2_MDW", "1", "file://RTM0AC0000ADAAPMZ1SL40C.tar.gz", "", d )}'
+SRC_URI_MP3MZ = '${@base_conditional("USE_MP3_MDW", "1", "file://RTM0AC0000ADMP3MZ1SL40C.tar.gz", "", d )}'
+SRC_URI_WMAMZ = '${@base_conditional("USE_WMA_MDW", "1", "file://RTM0AC0000ADWMAMZ1SL40C.tar.gz", "", d )}'
+SRC_URI_DDMZ = '${@base_conditional("USE_DD_MDW", "1", "file://RTM0AC0000ADDD5MZ1SL40C.tar.gz", "", d )}'
+SRC_URI_AEAACMZ = '${@base_conditional("USE_AACLCE_MDW", "1", "file://RTM0AC0000AEAACMZ1SL40C.tar.gz", "", d )}'
+
+SRC_URI = " \
+ ${SRC_URI_OMX} \
+ ${SRC_URI_VCMND} \
+ ${SRC_URI_VCMNE} \
+ ${SRC_URI_H263D} \
+ ${SRC_URI_H264D} \
+ ${SRC_URI_H264E} \
+ ${SRC_URI_H265D} \
+ ${SRC_URI_MPEG2D} \
+ ${SRC_URI_MPEG4D} \
+ ${SRC_URI_VC1D} \
+ ${SRC_URI_DIVXD} \
+ ${SRC_URI_RVD} \
+ ${SRC_URI_ACMND} \
+ ${SRC_URI_AACLC} \
+ ${SRC_URI_AACPV2} \
+ ${SRC_URI_MP3} \
+ ${SRC_URI_WMA} \
+ ${SRC_URI_ALACD} \
+ ${SRC_URI_FLACD} \
+ ${SRC_URI_DDD} \
+ ${SRC_URI_AACLCE} \
+ ${SRC_URI_AACMZ} \
+ ${SRC_URI_AACPV2MZ} \
+ ${SRC_URI_MP3MZ} \
+ ${SRC_URI_WMAMZ} \
+ ${SRC_URI_DDMZ} \
+ ${SRC_URI_AEAACMZ} \
+"
+
+# SRC directory name
+OMX_COMMON_SRC = '${@base_conditional("USE_OMX_COMMON", "1", "${OMX_EVA_PREFIX}RTM0AC0000XCMCTL30SL40C", "", d )}'
+OMX_VIDEO_DEC_COMMON_SRC = '${@base_conditional("USE_VIDEO_DEC", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVCMND30SL40C", "", d )}'
+OMX_VIDEO_ENC_COMMON_SRC = '${@base_conditional("USE_VIDEO_ENC", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVCMNE30SL40C", "", d )}'
+
+OMX_H263_DEC_SRC = '${@base_conditional("USE_H263D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XV263D30SL40C", "", d )}'
+OMX_H264_DEC_SRC = '${@base_conditional("USE_H264D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XV264D30SL40C", "", d )}'
+OMX_H264_ENC_SRC = '${@base_conditional("USE_H264E_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XV264E30SL40C", "", d )}'
+OMX_H265_DEC_SRC = '${@base_conditional("USE_H265D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XV265D30SL40C", "", d )}'
+OMX_MPEG2_DEC_SRC = '${@base_conditional("USE_MPEG2D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVM2VD30SL40C", "", d )}'
+OMX_MPEG4_DEC_SRC = '${@base_conditional("USE_MPEG4D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVM4VD30SL40C", "", d )}'
+OMX_VC1_DEC_SRC = '${@base_conditional("USE_VC1D_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVVC1D30SL40C", "", d )}'
+OMX_DIVX_DEC_SRC = '${@base_conditional("USE_DIVXD_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVDVXD30SL40C", "", d )}'
+OMX_RV_DEC_SRC = '${@base_conditional("USE_RVD_OMX", "1", "${OMX_EVA_PREFIX}RTM0AC0000XVRLVD30SL40C", "", d )}'
+
+OMX_VIDEO_SRC_LIST = " \
+ ${OMX_COMMON_SRC} \
+ ${OMX_VIDEO_DEC_COMMON_SRC} \
+ ${OMX_VIDEO_ENC_COMMON_SRC} \
+ ${OMX_H263_DEC_SRC} \
+ ${OMX_H264_DEC_SRC} \
+ ${OMX_H264_ENC_SRC} \
+ ${OMX_H265_DEC_SRC} \
+ ${OMX_MPEG2_DEC_SRC} \
+ ${OMX_MPEG4_DEC_SRC} \
+ ${OMX_VC1_DEC_SRC} \
+ ${OMX_DIVX_DEC_SRC} \
+ ${OMX_RV_DEC_SRC} \
+"
+
+AAC_MIDDLEWARE_SRC = "RTM0AC0000ADAACMZ1SL40C"
+AACPV2_MIDDLEWARE_SRC = "RTM0AC0000ADAAPMZ1SL40C"
+MP3_MIDDLEWARE_SRC = "RTM0AC0000ADMP3MZ1SL40C"
+WMA_MIDDLEWARE_SRC = "RTM0AC0000ADWMAMZ1SL40C"
+DD_MIDDLEWARE_SRC = "RTM0AC0000ADDD5MZ1SL40C"
+AEAAC_MIDDLEWARE_SRC = "RTM0AC0000AEAACMZ1SL40C"
+
+OMX_AUDIO_COMMON_SRC = '${@base_conditional("USE_AUDIO_OMX", "1", "RTM0AC0000XACMND30SL40C", "", d )}'
+OMX_AACLC_DEC_SRC = '${@base_conditional("USE_AACLCD_OMX", "1", "RTM0AC0000XAAACD30SL40C", "", d )}'
+OMX_AACPV2_DEC_SRC = '${@base_conditional("USE_AACPV2D_OMX", "1", "RTM0AC0000XAAAPD30SL40C", "", d )}'
+OMX_MP3_DEC_SRC = '${@base_conditional("USE_MP3D_OMX", "1", "RTM0AC0000XAMP3D30SL40C", "", d )}'
+OMX_WMA_DEC_SRC = '${@base_conditional("USE_WMAD_OMX", "1", "RTM0AC0000XAWMAD30SL40C", "", d )}'
+OMX_ALAC_DEC_SRC = '${@base_conditional("USE_ALACD_OMX", "1", "RTM0AC0000XAALAD30SL40C", "", d )}'
+OMX_FLAC_DEC_SRC = '${@base_conditional("USE_FLACD_OMX", "1", "RTM0AC0000XAFLAD30SL40C", "", d )}'
+OMX_DD_DEC_SRC = '${@base_conditional("USE_DDD_OMX", "1", "RTM0AC0000XADD5D30SL40C", "", d )}'
+OMX_AACLC_ENC_SRC = '${@base_conditional("USE_AACLCE_OMX", "1", "RTM0AC0000XAAACE30SL40C", "", d )}'
+
+OMX_AUDIO_SRC_LIST = " \
+ ${OMX_AUDIO_COMMON_SRC} \
+ ${OMX_AACLC_DEC_SRC} \
+ ${OMX_AACPV2_DEC_SRC} \
+ ${OMX_MP3_DEC_SRC} \
+ ${OMX_WMA_DEC_SRC} \
+ ${OMX_ALAC_DEC_SRC} \
+ ${OMX_FLAC_DEC_SRC} \
+ ${OMX_DD_DEC_SRC} \
+ ${OMX_AACLC_ENC_SRC} \
+"
+
+S = "${WORKDIR}/omx/"
+
+# Create ${S} directory
+do_unpack_prepend() {
+ os.system("install -d ${S}")
+}
+
+do_unpack_append() {
+ bb.build.exec_func('setup_build_tree', d)
+}
+
+setup_build_tree() {
+ for omxmc in ${OMX_COMMON_SRC} ${OMX_VIDEO_DEC_COMMON_SRC} ${OMX_VIDEO_ENC_COMMON_SRC}
+ do
+ tar xf ${WORKDIR}/${omxmc}.tar.bz2 -C ${WORKDIR}
+ tar xf ${WORKDIR}/${omxmc}.tar.bz2 ${omxmc}/src --strip=2 -C ${S}
+ tar xf ${WORKDIR}/${omxmc}.tar.bz2 ${omxmc}/include --strip=1 -C ${S}
+ done
+}
+
+B = "${S}"
+
+EXTRA_OECONF = "OMXR_DEFAULT_CONFIG_FILE_NAME=${sysconfdir}/omxr/omxr_config_base.txt"
+
+do_configure() {
+ export uvcsdrv_dir="${INCSHARED}"
+ chmod u+x autogen.sh
+ ./autogen.sh
+ oe_runconf
+}
+
+do_install_omx_video() {
+ cd ${D}/${libdir}
+ for omxmc in ${OMX_VIDEO_SRC_LIST}
+ do
+ src="${WORKDIR}/${omxmc}"
+ install -m 755 ${src}/${baselib}/lib*.so.* ${D}/${libdir}
+ install -m 644 ${src}/include/*.h ${D}/${includedir}
+ install -m 644 ${src}/config/*.txt ${D}/${sysconfdir}/omxr
+ done
+
+ if [ "X${USE_OMX_COMMON}" = "X1" ] ; then
+ ln -s libomxr_core.so.3.0.0 libomxr_core.so.3
+ ln -s libomxr_core.so.3 libomxr_core.so
+
+ ln -s libomxr_mc_cmn.so.3.0.0 libomxr_mc_cmn.so.3
+ ln -s libomxr_mc_cmn.so.3 libomxr_mc_cmn.so
+ fi
+
+ if [ "X${USE_VIDEO_OMX}" = "X1" ] ; then
+ ln -s libomxr_mc_vcmn.so.3.0.0 libomxr_mc_vcmn.so.3
+ ln -s libomxr_mc_vcmn.so.3 libomxr_mc_vcmn.so
+ fi
+
+ if [ "X${USE_VIDEO_DEC}" = "X1" ] ; then
+ ln -s libomxr_mc_vdcmn.so.3.0.0 libomxr_mc_vdcmn.so.3
+ ln -s libomxr_mc_vdcmn.so.3 libomxr_mc_vdcmn.so
+
+ ln -s libuvcs_dec.so.3.0.0 libuvcs_dec.so.3
+ ln -s libuvcs_dec.so.3 libuvcs_dec.so
+ fi
+
+ if [ "X${USE_VIDEO_ENC}" = "X1" ] ; then
+ ln -s libomxr_mc_vecmn.so.3.0.0 libomxr_mc_vecmn.so.3
+ ln -s libomxr_mc_vecmn.so.3 libomxr_mc_vecmn.so
+
+ ln -s libuvcs_enc.so.3.0.0 libuvcs_enc.so.3
+ ln -s libuvcs_enc.so.3 libuvcs_enc.so
+ fi
+
+ if [ "X${USE_H263D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_h263d.so.3.0.0 libomxr_mc_h263d.so.3
+ ln -s libomxr_mc_h263d.so.3 libomxr_mc_h263d.so
+
+ ln -s libuvcs_hv3d.so.3.0.0 libuvcs_hv3d.so.3
+ ln -s libuvcs_hv3d.so.3 libuvcs_hv3d.so
+ fi
+
+ if [ "X${USE_H264D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_h264d.so.3.0.0 libomxr_mc_h264d.so.3
+ ln -s libomxr_mc_h264d.so.3 libomxr_mc_h264d.so
+
+ ln -s libuvcs_avcd.so.3.0.0 libuvcs_avcd.so.3
+ ln -s libuvcs_avcd.so.3 libuvcs_avcd.so
+ fi
+
+ if [ "X${USE_H264E_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_h264e.so.3.0.0 libomxr_mc_h264e.so.3
+ ln -s libomxr_mc_h264e.so.3 libomxr_mc_h264e.so
+
+ ln -s libuvcs_avce.so.3.0.0 libuvcs_avce.so.3
+ ln -s libuvcs_avce.so.3 libuvcs_avce.so
+ fi
+
+ if [ "X${USE_H265D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_hevd.so.3.0.0 libomxr_mc_hevd.so.3
+ ln -s libomxr_mc_hevd.so.3 libomxr_mc_hevd.so
+
+ ln -s libuvcs_hevd.so.3.0.0 libuvcs_hevd.so.3
+ ln -s libuvcs_hevd.so.3 libuvcs_hevd.so
+ fi
+
+ if [ "X${USE_MPEG2D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_m2vd.so.3.0.0 libomxr_mc_m2vd.so.3
+ ln -s libomxr_mc_m2vd.so.3 libomxr_mc_m2vd.so
+
+ ln -s libuvcs_m2vd.so.3.0.0 libuvcs_m2vd.so.3
+ ln -s libuvcs_m2vd.so.3 libuvcs_m2vd.so
+ fi
+
+ if [ "X${USE_MPEG4D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_m4vd.so.3.0.0 libomxr_mc_m4vd.so.3
+ ln -s libomxr_mc_m4vd.so.3 libomxr_mc_m4vd.so
+
+ ln -s libuvcs_m4vd.so.3.0.0 libuvcs_m4vd.so.3
+ ln -s libuvcs_m4vd.so.3 libuvcs_m4vd.so
+ fi
+
+ if [ "X${USE_VC1D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_vc1d.so.3.0.0 libomxr_mc_vc1d.so.3
+ ln -s libomxr_mc_vc1d.so.3 libomxr_mc_vc1d.so
+
+ ln -s libuvcs_vc1d.so.3.0.0 libuvcs_vc1d.so.3
+ ln -s libuvcs_vc1d.so.3 libuvcs_vc1d.so
+ fi
+
+ if [ "X${USE_DIVXD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_divxd.so.3.0.0 libomxr_mc_divxd.so.3
+ ln -s libomxr_mc_divxd.so.3 libomxr_mc_divxd.so
+
+ ln -s libuvcs_dvxd.so.3.0.0 libuvcs_dvxd.so.3
+ ln -s libuvcs_dvxd.so.3 libuvcs_dvxd.so
+ fi
+
+ if [ "X${USE_RVD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_rlvd.so.3.0.0 libomxr_mc_rlvd.so.3
+ ln -s libomxr_mc_rlvd.so.3 libomxr_mc_rlvd.so
+
+ ln -s libuvcs_rlvd.so.3.0.0 libuvcs_rlvd.so.3
+ ln -s libuvcs_rlvd.so.3 libuvcs_rlvd.so
+ fi
+}
+
+do_install_audio_middleware() {
+ cd ${D}/${libdir}
+
+ if [ "X${USE_AACLC_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${AAC_MIDDLEWARE_SRC}/${baselib}/libAACDLA_L.so.3.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${AAC_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libAACDLA_L.so.3.0 libAACDLA_L.so.3
+ ln -s libAACDLA_L.so.3 libAACDLA_L.so
+ fi
+
+ if [ "X${USE_AACPV2_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${AACPV2_MIDDLEWARE_SRC}/${baselib}/libRSACPDLA_L.so.2.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${AACPV2_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libRSACPDLA_L.so.2.0 libRSACPDLA_L.so.2
+ ln -s libRSACPDLA_L.so.2 libRSACPDLA_L.so
+ fi
+
+ if [ "X${USE_MP3_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${MP3_MIDDLEWARE_SRC}/${baselib}/libMP3DLA_L.so.2.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${MP3_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libMP3DLA_L.so.2.0 libMP3DLA_L.so.2
+ ln -s libMP3DLA_L.so.2 libMP3DLA_L.so
+ fi
+
+ if [ "X${USE_WMA_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${WMA_MIDDLEWARE_SRC}/${baselib}/libWMASTDLA_L.so.2.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${WMA_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libWMASTDLA_L.so.2.0 libWMASTDLA_L.so.2
+ ln -s libWMASTDLA_L.so.2 libWMASTDLA_L.so
+ fi
+
+ if [ "X${USE_DD_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${DD_MIDDLEWARE_SRC}/${baselib}/libRSDACDLA_L.so.2.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${DD_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libRSDACDLA_L.so.2.0 libRSDACDLA_L.so.2
+ ln -s libRSDACDLA_L.so.2 libRSDACDLA_L.so
+ fi
+
+ if [ "X${USE_AACLCE_MDW}" = "X1" ]; then
+ install -m 755 ${WORKDIR}/${AEAAC_MIDDLEWARE_SRC}/${baselib}/libRSAACELA_L.so.3.0 \
+ ${D}/${libdir}
+ install -m 644 ${WORKDIR}/${AEAAC_MIDDLEWARE_SRC}/include/*.h ${D}/${includedir}
+
+ ln -s libRSAACELA_L.so.3.0 libRSAACELA_L.so.3
+ ln -s libRSAACELA_L.so.3 libRSAACELA_L.so
+ fi
+}
+
+do_install_omx_audio() {
+ cd ${D}/${libdir}
+ for omxmc in ${OMX_AUDIO_SRC_LIST}
+ do
+ src="${WORKDIR}/${omxmc}/"
+ install -m 755 ${src}/${baselib}/lib*.so.* ${D}/${libdir}
+ if [ -d ${src}/include ]; then
+ install -m 644 ${src}/include/*.h ${D}/${includedir}
+ fi
+ install -m 644 ${src}/config/*.txt ${D}/${sysconfdir}/omxr
+ done
+
+ if [ "X${USE_AUDIO_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_acmn.so.3.0.0 libomxr_mc_acmn.so.3
+ ln -s libomxr_mc_acmn.so.3 libomxr_mc_acmn.so
+ fi
+
+ if [ "X${USE_AACLCD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_aacd.so.3.0.0 libomxr_mc_aacd.so.3
+ ln -s libomxr_mc_aacd.so.3 libomxr_mc_aacd.so
+ fi
+
+ if [ "X${USE_AACPV2D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_aapd.so.3.0.0 libomxr_mc_aapd.so.3
+ ln -s libomxr_mc_aapd.so.3 libomxr_mc_aapd.so
+ fi
+
+ if [ "X${USE_MP3D_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_mp3d.so.3.0.0 libomxr_mc_mp3d.so.3
+ ln -s libomxr_mc_mp3d.so.3 libomxr_mc_mp3d.so
+ fi
+
+ if [ "X${USE_WMAD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_wmad.so.3.0.0 libomxr_mc_wmad.so.3
+ ln -s libomxr_mc_wmad.so.3 libomxr_mc_wmad.so
+ fi
+
+ if [ "X${USE_ALACD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_alacd.so.3.0.0 libomxr_mc_alacd.so.3
+ ln -s libomxr_mc_alacd.so.3 libomxr_mc_alacd.so
+ fi
+
+ if [ "X${USE_FLACD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_flacd.so.3.0.0 libomxr_mc_flacd.so.3
+ ln -s libomxr_mc_flacd.so.3 libomxr_mc_flacd.so
+ fi
+
+ if [ "X${USE_AACLCE_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_aace.so.3.0.0 libomxr_mc_aace.so.3
+ ln -s libomxr_mc_aace.so.3 libomxr_mc_aace.so
+ fi
+
+ if [ "X${USE_DDD_OMX}" = "X1" ]; then
+ ln -s libomxr_mc_ddd.so.3.0.0 libomxr_mc_ddd.so.3
+ ln -s libomxr_mc_ddd.so.3 libomxr_mc_ddd.so
+ fi
+}
+
+do_install () {
+ if [ "X${USE_OMX_COMMON}" = "X1" ]; then
+ oe_runmake 'DESTDIR=${D}' install
+ # Info dir listing isn't interesting at this point so remove it if it exists.
+ if [ -e "${D}/${infodir}/dir" ]; then
+ rm -f ${D}/${infodir}/dir
+ fi
+ fi
+}
+
+do_install_append() {
+ # Create destination directory
+ install -d ${D}/${libdir}
+ install -d ${D}/${includedir}
+ if [ "X${USE_OMX_COMMON}" = "X1" ]; then
+ install -d ${D}/${sysconfdir}/omxr
+ fi
+
+ # Copy omx video library
+ do_install_omx_video
+ # Copy audio middleware library
+ do_install_audio_middleware
+ # Copy omx audio library
+ do_install_omx_audio
+}
+
+INSANE_SKIP_${PN} = "dev-so"
+
+FILES_${PN} += " \
+ ${libdir}/*.so \
+"
+
+FILES_${PN}-dev = " \
+ ${includedir} \
+ ${libdir}/*.la \
+"
+
+RDEPENDS_${PN} += "mmngr-user-module vspmif-user-module"
+RDEPENDS_${PN} += '${@base_conditional("USE_ALACD_OMX", "1", "libalacdla-l", "", d )}'
+RDEPENDS_${PN} += '${@base_conditional("USE_FLACD_OMX", "1", "libflacdla-l", "", d )}'
+
+# Skip debug strip of do_populate_sysroot()
+INHIBIT_SYSROOT_STRIP = "1"
+
+# Skip debug split and strip of do_package()
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta-rcar-gen3/recipes-multimedia/open-avb/open-avb_git.bb b/meta-rcar-gen3/recipes-multimedia/open-avb/open-avb_git.bb
new file mode 100644
index 0000000..88900b5
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/open-avb/open-avb_git.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "Open AVB - an AVnu sponsored repository for Audio/Video Bridging technology"
+HOMEPAGE = "https://github.com/AVnu/Open-AVB"
+LICENSE = "BSD & MIT & GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = " \
+ file://daemons/LICENSE;md5=81ccd62d4bc28bafc5e1a2576536b927 \
+ file://kmod/igb/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://kmod/igb/LICENSE;md5=e2c0cd0820d168b0b26e19f13df4dc56 \
+ file://lib/igb/LICENSE;md5=9bc783ca40be823a8b237df5eed80fc4 \
+ file://lib/avtp_pipeline/LICENSE;md5=8f7b370a91d698ed80d2d20e8e01fbb6 \
+ file://examples/LICENSE;md5=81ccd62d4bc28bafc5e1a2576536b927 \
+ file://examples/gstreamer-avb-plugins/COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
+ file://examples/gstreamer-avb-plugins/COPYING.MIT;md5=bba6cdb9c2b03c849ed4975ed9ed90dc \
+"
+
+DEPENDS = "libpcap"
+
+PV = "1.1+git${SRCPV}"
+
+SRCREV = "20731bd82d2b2e59387f7b3a61fc0370c93ec568"
+SRC_URI = "git://github.com/AVnu/Open-AVB.git;branch=open-avb-next"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}'"
+
+do_compile() {
+ oe_runmake daemons_all
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 755 daemons/maap/linux/maap_daemon ${D}/${bindir}
+ install -m 755 daemons/mrpd/mrpd daemons/mrpd/mrpctl ${D}/${bindir}
+ install -m 755 daemons/gptp/linux/build/obj/daemon_cl ${D}/${bindir}
+}
+
+PACKAGES =+ " \
+ ${PN}-gptp \
+ ${PN}-mrpd \
+ ${PN}-maap \
+"
+
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-gptp = " \
+ ${bindir}/daemon_cl \
+"
+
+FILES_${PN}-mrpd = " \
+ ${bindir}/mrpd \
+ ${bindir}/mrpctl \
+"
+
+FILES_${PN}-maap = " \
+ ${bindir}/maap_daemon \
+"
+
+RDEPENDS_${PN} = " \
+ ${PN}-gptp \
+ ${PN}-mrpd \
+ ${PN}-maap \
+"
+
+RDEPENDS_${PN}-maap = " \
+ libpcap \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-gstreamer1.0-plugins.bb b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-gstreamer1.0-plugins.bb
new file mode 100644
index 0000000..4f76373
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-gstreamer1.0-plugins.bb
@@ -0,0 +1,85 @@
+SUMMARY = "GStreamer 1.0 package groups"
+LICENSE = "MIT"
+
+require include/omx-control.inc
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good"
+DEPENDS += "gstreamer1.0-plugins-bad"
+DEPENDS += "gstreamer1.0-plugins-ugly"
+DEPENDS += "${@base_conditional("USE_OMX_COMMON", "1", "gstreamer1.0-omx", "", d)}"
+
+LIC_FILES_CHKSUM = " \
+ file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PR = "r0"
+
+inherit packagegroup
+
+PACKAGES = " \
+ packagegroup-gstreamer1.0-plugins \
+ packagegroup-gstreamer1.0-plugins-base \
+ packagegroup-gstreamer1.0-plugins-audio \
+ packagegroup-gstreamer1.0-plugins-video \
+ ${@base_conditional("USE_OMX_COMMON", "1", "packagegroup-gstreamer1.0-omx", "", d)} \
+ packagegroup-gstreamer1.0-plugins-debug \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-plugins = " \
+ packagegroup-gstreamer1.0-plugins-base \
+ packagegroup-gstreamer1.0-plugins-audio \
+ packagegroup-gstreamer1.0-plugins-video \
+ ${@base_conditional("USE_OMX_COMMON", "1", "packagegroup-gstreamer1.0-omx", "", d)} \
+ packagegroup-gstreamer1.0-plugins-debug \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-plugins-base = " \
+ gstreamer1.0-meta-base \
+ gstreamer1.0-plugins-base-typefindfunctions \
+ gstreamer1.0-plugins-good-id3demux \
+ gstreamer1.0-plugins-good-autodetect \
+ ${@base_conditional("USE_OMX_COMMON", "1", "gstreamer1.0-plugin-vspfilter", "", d)} \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-plugins-audio = " \
+ gstreamer1.0-meta-audio \
+ gstreamer1.0-plugins-good-audioparsers \
+ gstreamer1.0-plugins-base-audiotestsrc \
+ gstreamer1.0-plugins-base-audioconvert \
+ gstreamer1.0-plugins-base-audioresample \
+ gstreamer1.0-plugins-base-alsa \
+ gstreamer1.0-plugins-base-ogg \
+ gstreamer1.0-plugins-base-vorbis \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-plugins-video = " \
+ gstreamer1.0-meta-video \
+ gstreamer1.0-plugins-base-videotestsrc \
+ gstreamer1.0-plugins-base-videoconvert \
+ gstreamer1.0-plugins-base-playback \
+ gstreamer1.0-plugins-base-videoscale \
+ gstreamer1.0-plugins-base-videorate \
+ gstreamer1.0-plugins-good-matroska \
+ gstreamer1.0-plugins-good-isomp4 \
+ gstreamer1.0-plugins-good-avi \
+ gstreamer1.0-plugins-good-videofilter \
+ gstreamer1.0-plugins-good-videomixer \
+ gstreamer1.0-plugins-good-videocrop \
+ gstreamer1.0-plugins-good-video4linux2 \
+ gstreamer1.0-plugins-good-jpeg \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \
+ 'gstreamer1.0-plugins-bad-waylandsink', '', d)} \
+ gstreamer1.0-plugins-bad-videoparsersbad \
+ gstreamer1.0-plugins-bad-mpegtsdemux \
+ gstreamer1.0-plugins-bad-jpegformat \
+ gstreamer1.0-plugins-ugly-asf \
+ gstreamer1.0-libav \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-omx = " \
+ ${@base_conditional("USE_OMX_COMMON", "1", "gstreamer1.0-omx", "", d)} \
+"
+
+RDEPENDS_packagegroup-gstreamer1.0-plugins-debug = " \
+ gstreamer1.0-meta-debug \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-kernel.bb b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-kernel.bb
new file mode 100644
index 0000000..8d62972
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-kernel.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Multimedia kernel modules package groups"
+LICENSE = "GPLv2 & MIT"
+
+require include/omx-control.inc
+
+DEPENDS = "kernel-module-mmngr kernel-module-mmngrbuf \
+ kernel-module-vspm kernel-module-vspmif \
+ kernel-module-vsp2driver \
+"
+
+DEPENDS += '${@base_conditional("USE_VIDEO_OMX", "1", "kernel-module-uvcs-drv", "", d )}'
+
+PR = "r0"
+
+inherit packagegroup
+
+PACKAGES = " \
+ packagegroup-multimedia-kernel-modules \
+"
+
+RDEPENDS_packagegroup-multimedia-kernel-modules = " \
+ kernel-module-mmngr \
+ kernel-module-mmngrbuf \
+ kernel-module-vspm \
+ kernel-module-vspmif \
+ kernel-module-vsp2driver \
+"
+
+RDEPENDS_packagegroup-multimedia-kernel-modules += " \
+ ${@base_conditional("USE_VIDEO_OMX", "1", "kernel-module-uvcs-drv", "", d )} \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-libs.bb b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-libs.bb
new file mode 100644
index 0000000..323f6ae
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/packagegroups/packagegroup-multimedia-libs.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Multimedia user libraries modules package groups"
+LICENSE = "MIT"
+
+DEPENDS = "mmngr-user-module mmngrbuf-user-module \
+ vspmif-user-module libalacdla-l libflacdla-l \
+"
+
+PR = "r0"
+
+inherit packagegroup
+
+PACKAGES = " \
+ packagegroup-multimedia-libs \
+"
+
+RDEPENDS_packagegroup-multimedia-libs = " \
+ mmngr-user-module mmngrbuf-user-module \
+ vspmif-user-module \
+ libalacdla-l libflacdla-l \
+"
diff --git a/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-tp-user-module.bb b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-tp-user-module.bb
new file mode 100644
index 0000000..fb41431
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-tp-user-module.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "VSP Manager Interface test app for R-Car Gen3"
+
+require vspmif.inc
+
+DEPENDS = "vspmif-user-module mmngr-user-module"
+PN = "vspmif-tp-user-module"
+PR = "r0"
+
+S = "${WORKDIR}/git"
+VSPMIF_TP_DIR = "vspm_if-tp-user/files/vspm_if"
+
+# Get Wordsize of test app and change their names later to avoid override
+WS_aarch64 = ""
+WS_virtclass-multilib-lib32 = "32"
+
+do_compile() {
+ cd ${S}/${VSPMIF_TP_DIR}
+ make all
+}
+
+do_install() {
+ # Create destination folder
+ install -d ${D}/usr/local/bin/
+
+ # Copy user test program
+ if [ X${WS} = "X32" ]; then
+ install -m 755 ${S}/${VSPMIF_TP_DIR}/vspm_tp ${D}/usr/local/bin/vspm_tp32
+ install -m 755 ${S}/${VSPMIF_TP_DIR}/fdpm_tp ${D}/usr/local/bin/fdpm_tp32
+ else
+ install -m 755 ${S}/${VSPMIF_TP_DIR}/vspm_tp ${D}/usr/local/bin/
+ install -m 755 ${S}/${VSPMIF_TP_DIR}/fdpm_tp ${D}/usr/local/bin/
+ fi
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dbg \
+"
+FILES_${PN} = " \
+ ${@base_conditional('WS', '32', '/usr/local/bin/vspm_tp32 /usr/local/bin/fdpm_tp32', \
+ '/usr/local/bin/vspm_tp /usr/local/bin/fdpm_tp', d)}"
+
+FILES_${PN}-dbg = " \
+ /usr/local/bin/.debug/*"
+
+RPROVIDES_${PN} += "vspmif-tp-user-module"
diff --git a/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-user-module.bb b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-user-module.bb
new file mode 100644
index 0000000..3e47d1f
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif-user-module.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "VSP Manager Interface library for R-Car Gen3"
+
+require vspmif.inc
+
+DEPENDS = "kernel-module-vspmif mmngr-user-module"
+PN = "vspmif-user-module"
+PR = "r0"
+
+S = "${WORKDIR}/git"
+VSPMIF_LIB_DIR = "vspm_if-module/files/vspm_if"
+
+EXTRA_OEMAKE = "ARCH=${TARGET_ARCH}"
+
+includedir = "/usr/local/include"
+
+do_compile() {
+ export VSPM_LEGACY_IF="1"
+
+ # Build shared library
+ cd ${S}/${VSPMIF_LIB_DIR}/if
+ rm -rf ${S}/${VSPMIF_LIB_DIR}/if/libvspm.so*
+ oe_runmake
+}
+
+do_install() {
+ # Create destination folders
+ install -d ${D}/${libdir}
+ install -d ${D}/${includedir}
+
+ # Copy shared library
+ install -m 755 ${S}/${VSPMIF_LIB_DIR}/if/libvspm.so* ${D}/${libdir}/
+ cd ${D}/${libdir}/
+ ln -sf libvspm.so.1.0.0 libvspm.so.1
+ ln -sf libvspm.so.1 libvspm.so
+
+ # Copy shared header files
+ install -m 644 ${S}/${VSPMIF_LIB_DIR}/include/vspm_public.h ${D}/${includedir}/
+ install -m 644 ${S}/${VSPMIF_LIB_DIR}/include/fdpm_api.h ${D}/${includedir}/
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-dbg \
+"
+
+RPROVIDES_${PN} += "vspmif-user-module"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
diff --git a/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif.inc b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif.inc
new file mode 100644
index 0000000..29096b5
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/vspmif-module/vspmif.inc
@@ -0,0 +1,15 @@
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.MIT;md5=30a99e0d36a3da1f5cf93c070ad7888a \
+"
+
+require include/rcar-gen3-modules-common.inc
+
+VSPMIF_LIB_URL = "git://github.com/renesas-rcar/vspmif_lib.git"
+BRANCH = "rcar_gen3"
+SRCREV = "24e0703eea77bfa3f6b7681dbaaa848d0e5416ce"
+
+SRC_URI = "${VSPMIF_LIB_URL};branch=${BRANCH}"
+
+# This module is machine specific.
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-rcar-gen3/recipes-multimedia/webp/libwebp/disabled_arm_neon.diff b/meta-rcar-gen3/recipes-multimedia/webp/libwebp/disabled_arm_neon.diff
new file mode 100644
index 0000000..80b1811
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/webp/libwebp/disabled_arm_neon.diff
@@ -0,0 +1,12 @@
+diff --git a/src/dsp/dsp.h b/src/dsp/dsp.h
+index 95f1ce0..fc20ffe 100644
+--- a/src/dsp/dsp.h
++++ b/src/dsp/dsp.h
+@@ -73,7 +73,6 @@ extern "C" {
+ // inline assembly would need to be modified for use with Native Client.
+ #if (defined(__ARM_NEON__) || defined(WEBP_ANDROID_NEON) || \
+ defined(__aarch64__)) && !defined(__native_client__)
+-#define WEBP_USE_NEON
+ #endif
+
+ #if defined(_MSC_VER) && _MSC_VER >= 1700 && defined(_M_ARM)
diff --git a/meta-rcar-gen3/recipes-multimedia/webp/libwebp_%.bbappend b/meta-rcar-gen3/recipes-multimedia/webp/libwebp_%.bbappend
new file mode 100644
index 0000000..e9469ed
--- /dev/null
+++ b/meta-rcar-gen3/recipes-multimedia/webp/libwebp_%.bbappend
@@ -0,0 +1,5 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+# Add W/A patch for linaro gcc.
+# This patch disabled neon. (undefined #WEBP_USE_NEON)
+SRC_URI_append = " file://disabled_arm_neon.diff"