aboutsummaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen2/recipes-multimedia
diff options
context:
space:
mode:
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>2015-03-25 10:47:45 +0900
committerNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>2015-03-25 10:47:45 +0900
commit1c35920d85e424b3f65aa6df1dbde689dd6ec007 (patch)
tree58b2cacb3674111aad5a4ded694db0cef5cf55f3 /meta-rcar-gen2/recipes-multimedia
commit BSP v1.8.0
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Diffstat (limited to 'meta-rcar-gen2/recipes-multimedia')
-rw-r--r--meta-rcar-gen2/recipes-multimedia/dtv-module/dtv-user-module.bb52
-rw-r--r--meta-rcar-gen2/recipes-multimedia/dtv-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-tp-user-module.bb31
-rw-r--r--meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-user-module.bb68
-rw-r--r--meta-rcar-gen2/recipes-multimedia/fdpm-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bbappend26
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bbappend26
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-alt.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-gose.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-koelsch.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-lager.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-porter.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-silk.conf2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bbappend49
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bbappend12
-rw-r--r--meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bbappend12
-rw-r--r--meta-rcar-gen2/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend3
-rw-r--r--meta-rcar-gen2/recipes-multimedia/mmngr-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-tp-user-module.bb29
-rw-r--r--meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-user-module.bb65
-rw-r--r--meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-tp-user-module.bb29
-rw-r--r--meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb67
-rw-r--r--meta-rcar-gen2/recipes-multimedia/omx-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/omx-module/omx-user-module.bb426
-rw-r--r--meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bb69
-rw-r--r--meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bbappend17
-rw-r--r--meta-rcar-gen2/recipes-multimedia/s3ctl-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-tp-user-module.bb32
-rw-r--r--meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-user-module.bb64
-rw-r--r--meta-rcar-gen2/recipes-multimedia/v4l2apps/media-ctl_git.bbappend2
-rw-r--r--meta-rcar-gen2/recipes-multimedia/vspm-module/files/.gitkeep0
-rw-r--r--meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-tp-user-module.bb29
-rw-r--r--meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-user-module.bb58
33 files changed, 1178 insertions, 0 deletions
diff --git a/meta-rcar-gen2/recipes-multimedia/dtv-module/dtv-user-module.bb b/meta-rcar-gen2/recipes-multimedia/dtv-module/dtv-user-module.bb
new file mode 100644
index 0000000..7b8e5ca
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/dtv-module/dtv-user-module.bb
@@ -0,0 +1,52 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+PN = "dtv"
+PR = "r0"
+SRC_URI = "file://dtv.tar.bz2"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_populate_lic[noexec] = "1"
+
+do_install() {
+ # Create share folders
+ mkdir -p ${D}/usr/local/include/ ${D}/usr/local/lib ${D}/usr/local/src/dtv/reference
+
+ # Copy share files to destination
+ cp -f ${WORKDIR}/dtv/include/*.h ${D}/usr/local/include/
+ cp -f ${WORKDIR}/dtv/lib/libdtv.a ${D}/usr/local/lib
+ cp -f ${WORKDIR}/dtv/userfunc/* ${D}/usr/local/src/dtv/reference
+}
+
+SYSROOT_PREPROCESS_FUNCS += "do_populate_reference_src"
+
+do_populate_reference_src () {
+ sysroot_stage_dir ${D}/usr/local ${SYSROOT_DESTDIR}/usr/local
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-staticdev \
+"
+
+FILES_${PN} = ""
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev = " \
+ /usr/local/include/*.h \
+ /usr/local/src/dtv/reference/*.c \
+ /usr/local/src/dtv/reference/*.h \
+"
+
+FILES_${PN}-staticdev = " \
+ /usr/local/lib/*.a \
+"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+do_configure[noexec] = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/dtv-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/dtv-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/dtv-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-tp-user-module.bb b/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-tp-user-module.bb
new file mode 100644
index 0000000..2f01ed3
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-tp-user-module.bb
@@ -0,0 +1,31 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+S = "${WORKDIR}"
+
+LICENSE = "CLOSED"
+DEPENDS = "fdpm-user-module mmngr-user-module"
+SRC_URI = "file://fdpm-tp-user.tar.bz2"
+
+do_compile() {
+ cd ${S}/fdpm/
+ make all ARCH=arm
+}
+
+do_install() {
+ # Create destination folder
+ mkdir -p ${D}/usr/local/bin/
+
+ # Copy user test program
+ cp ${S}/fdpm/fdpm_tp ${D}/usr/local/bin/
+}
+
+PACKAGES = "\
+ ${PN} \
+"
+
+FILES_${PN} = " \
+ /usr/local/bin/fdpm_tp \
+"
+
+RPROVIDES_${PN} += "fdpm-tp-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-user-module.bb b/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-user-module.bb
new file mode 100644
index 0000000..7146a2a
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/fdpm-module/fdpm-user-module.bb
@@ -0,0 +1,68 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "fdpm-kernel-module mmngr-user-module"
+PN = "fdpm-user-module"
+SRC_URI = "file://fdpm.tar.bz2"
+
+S = "${WORKDIR}/fdpm"
+
+do_compile() {
+ # Build shared library
+ cd ${S}/if
+ rm -rf libfdpm.so*
+ make all ARCH=arm
+ # Copy shared library for reference from other modules
+ cp -P ${S}/if/libfdpm.so* ${LIBSHARED}
+ cp -rf ${S}/include/*h ${STAGING_INCDIR}
+}
+
+do_install() {
+ # Create destination folder
+ mkdir -p ${D}/usr/local/lib/ ${D}/usr/local/include/
+
+ # Copy shared library
+ cp -P ${S}/if/libfdpm.so* ${D}/usr/local/lib
+ cp -rf ${S}/include/*h ${D}/usr/local/include/
+}
+
+# Append function to clean extract source
+do_cleansstate_prepend() {
+ bb.build.exec_func('do_clean_source', d)
+}
+
+do_clean_source() {
+ rm -f ${LIBSHARED}/libfdpm.so*
+ rm -f ${STAGING_INCDIR}/fdpm_api.h
+ rm -f ${STAGING_INCDIR}/fdpm_drv.h
+ rm -f ${STAGING_INCDIR}/fdpm_if_fd.h
+ rm -f ${STAGING_INCDIR}/fdpm_if.h
+ rm -f ${STAGING_INCDIR}/fdpm_if_par.h
+ rm -f ${STAGING_INCDIR}/fdpm_if_priv.h
+ rm -f ${STAGING_INCDIR}/fdpm_public.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/libfdpm.so.* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/lib/libfdpm.so \
+ /usr/local/include/*.h \
+"
+
+RPROVIDES_${PN} += "fdpm-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+
+do_configure[noexec] = "1"
+
+python do_package_ipk_prepend () {
+ d.setVar('ALLOW_EMPTY', '1')
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/fdpm-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/fdpm-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/fdpm-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bbappend b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bbappend
new file mode 100644
index 0000000..8a7128e
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bbappend
@@ -0,0 +1,26 @@
+require ../../include/gles-control.inc
+
+SRC_URI_rcar-gen2 = "git://github.com/renesas-devel/gst-omx.git;protocol=git;branch=RCAR-GEN2/1.0.0"
+SRCREV_rcar-gen2 = "05563465faad99243ee2dd30547e3075eb8cf5e3"
+
+LIC_FILES_CHKSUM_remove_rcar-gen2 = " file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
+LIC_FILES_CHKSUM_append_rcar-gen2 = " file://omx/gstomx.h;beginline=1;endline=22;md5=17e5f2943dace9e5cde4a8587a31e8f9"
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ./autogen.sh --noconfigure
+ oe_runconf
+}
+
+DEPENDS_append_rcar-gen2 = " omx-user-module mmngrbuf-user-module"
+EXTRA_OECONF_append_rcar-gen2 = " --with-omx-target=rcar --enable-experimental \
+ '${@'--disable-dmabuf' if '${USE_GLES}' == '0' and '${USE_WAYLAND}' == '1' else ''}'"
+
+# Overwrite do_install[postfuncs] += " set_omx_core_name "
+# because it will force the plugin to use bellagio instead of our config
+revert_omx_core_name() {
+ sed -i -e "s;^core-name=.*;core-name=/usr/local/lib/libomxr_core.so;" "${D}/etc/xdg/gstomx.conf"
+}
+REVERT_OMX_CORE_NAME = ""
+REVERT_OMX_CORE_NAME_rcar-gen2 = "revert_omx_core_name"
+do_install[postfuncs] += "${REVERT_OMX_CORE_NAME}"
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bbappend b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bbappend
new file mode 100644
index 0000000..ac9e52e
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bbappend
@@ -0,0 +1,26 @@
+require ../../include/gles-control.inc
+require ../../include/multimedia-control.inc
+
+SRC_URI_rcar-gen2 = "git://github.com/renesas-devel/gst-plugins-bad.git;protocol=git;branch=RCAR-GEN2/1.2.3"
+SRCREV_rcar-gen2 = "${@'eda7155f94981ace11b866fc02daca6ad4869221' \
+ if '1' in '${USE_GLES_WAYLAND}' else 'c1f5e09ce341f3438fb601a852ee70e72d375646'}"
+LIC_FILES_CHKSUM_remove_rcar-gen2 = "\
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
+
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ./autogen.sh --noconfigure
+ oe_runconf
+}
+
+# for wayland
+PACKAGECONFIG_remove_rcar-gen2 = "${@'orc' if '1' in '${USE_GLES_WAYLAND}' else ''}"
+PACKAGECONFIG_append_rcar-gen2 = " faad ${@base_contains('USE_GLES_WAYLAND', '1', 'wayland', '', d)}"
+
+# for lcb
+DEPENDS_append_silk = " ${@base_conditional('USE_MULTIMEDIA', '1', 'faac', '', d)}"
+PACKAGECONFIG_silk = " ${@base_conditional('USE_MULTIMEDIA', '1', 'faac', '', d)}"
+
+DEPENDS_append_porter = " ${@base_conditional('USE_MULTIMEDIA', '1', 'faac', '', d)}"
+PACKAGECONFIG_porter = " ${@base_conditional('USE_MULTIMEDIA', '1', 'faac', '', d)}"
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-alt.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-alt.conf
new file mode 100644
index 0000000..b324cbe
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-alt.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video1
+output-device-name=/dev/video5
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-gose.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-gose.conf
new file mode 100644
index 0000000..c534883
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-gose.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video2
+output-device-name=/dev/video6
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-koelsch.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-koelsch.conf
new file mode 100644
index 0000000..c534883
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-koelsch.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video2
+output-device-name=/dev/video6
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-lager.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-lager.conf
new file mode 100644
index 0000000..c534883
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-lager.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video2
+output-device-name=/dev/video6
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-porter.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-porter.conf
new file mode 100644
index 0000000..b324cbe
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-porter.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video1
+output-device-name=/dev/video5
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-silk.conf b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-silk.conf
new file mode 100644
index 0000000..b324cbe
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstvspfilter-silk.conf
@@ -0,0 +1,2 @@
+input-device-name=/dev/video1
+output-device-name=/dev/video5
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bbappend b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bbappend
new file mode 100644
index 0000000..eee4b59
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bbappend
@@ -0,0 +1,49 @@
+require ../../include/gles-control.inc
+
+SRC_URI_rcar-gen2 = "git://github.com/renesas-devel/gst-plugins-base.git;protocol=git;branch=RCAR-GEN2/1.2.3"
+SRCREV_rcar-gen2 = "f5176e8e2e9b39ee96181c37cf61e2a90e56069b"
+LIC_FILES_CHKSUM_remove_rcar-gen2 = "\
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
+
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ./autogen.sh --noconfigure
+ oe_runconf
+}
+
+# For Common
+FILESEXTRAPATHS_prepend_rcar-gen2 := '${THISDIR}/${PN}:'
+VSPFILTER_CONFIGS = " \
+ file://gstvspfilter-alt.conf \
+ file://gstvspfilter-gose.conf \
+ file://gstvspfilter-koelsch.conf \
+ file://gstvspfilter-lager.conf \
+ file://gstvspfilter-porter.conf \
+ file://gstvspfilter-silk.conf \
+"
+
+# For wayland
+PACKAGECONFIG_remove_rcar-gen2 = "${@base_contains("DISTRO_FEATURES", "wayland", "orc", "", d)}"
+
+SRC_URI_append_rcar-gen2 = \
+ "${@'${VSPFILTER_CONFIGS}' \
+ if '${USE_WAYLAND}' == '1' else ''}"
+
+EXTRA_OECONF_append_rcar-gen2 = " \
+ ${@'--enable-vspfilter' \
+ if '${USE_WAYLAND}' == '1' else ''}"
+
+do_install_append_rcar-gen2() {
+ if [ '${USE_WAYLAND}' = '1' ] ; then
+ mkdir ${D}/etc/
+ install -m644 ${WORKDIR}/gstvspfilter-${MACHINE}.conf ${D}/etc/gstvspfilter.conf
+ fi
+}
+
+FILES_${PN}_append_rcar-gen2 = " \
+ ${@'${datadir}/gst-plugins-base/1.0/* ${sysconfdir}/*.conf' \
+ if '${USE_WAYLAND}' == '1' else ''}"
+
+# For x11
+# None
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bbappend b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bbappend
new file mode 100644
index 0000000..573f71a
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bbappend
@@ -0,0 +1,12 @@
+SRC_URI_rcar-gen2 = "git://github.com/renesas-devel/gst-plugins-good.git;protocol=git;branch=RCAR-GEN2/1.2.3"
+SRCREV_rcar-gen2 = "e752441fef9f70c97bb0976476fdaa6c7df27b6b"
+
+LIC_FILES_CHKSUM_remove_rcar-gen2 = "\
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
+
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ./autogen.sh --noconfigure
+ oe_runconf
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bbappend b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bbappend
new file mode 100644
index 0000000..6d43b52
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bbappend
@@ -0,0 +1,12 @@
+SRC_URI_rcar-gen2 = "git://github.com/renesas-devel/gst-plugins-ugly.git;protocol=git;branch=RCAR-GEN2/1.2.3"
+SRCREV_rcar-gen2 = "af884db954b53bf083ebc39e3a90b639f81513e1"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= " \
+ a52dec lame mad mpeg2dec \
+ "
+
+do_configure() {
+ ./autogen.sh --noconfigure
+ oe_runconf
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend b/meta-rcar-gen2/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend
new file mode 100644
index 0000000..3be14f6
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend
@@ -0,0 +1,3 @@
+do_populate_sysroot () {
+ rm -f ${D}/usr/include/*.h
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/mmngr-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/mmngr-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/mmngr-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-tp-user-module.bb b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-tp-user-module.bb
new file mode 100644
index 0000000..515f784
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-tp-user-module.bb
@@ -0,0 +1,29 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "mmngr-kernel-module mmngr-user-module"
+SRC_URI = "file://mmngr-tp-user.tar.bz2"
+
+S = "${WORKDIR}/mmngr"
+
+do_compile() {
+ # Build test kernel module
+ cd ${S}
+ make all ARCH=arm
+}
+
+do_install() {
+ # Copy kernel test program
+ mkdir -p ${D}/usr/local/bin/
+ cp ${S}/mmtp ${D}/usr/local/bin/
+}
+
+PACKAGES = "\
+ ${PN} \
+"
+FILES_${PN} = " \
+ /usr/local/bin/mmtp \
+"
+
+RPROVIDES_${PN} += "mmngr-tp-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-user-module.bb b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-user-module.bb
new file mode 100644
index 0000000..3205915
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngr-user-module.bb
@@ -0,0 +1,65 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "mmngr-kernel-module"
+PN = "mmngr-user-module"
+S = "${WORKDIR}/mmngr"
+SRC_URI = "file://mmngr.tar.bz2"
+
+do_compile() {
+ # Build shared library
+ cd ${S}/if
+ rm -rf ${S}/if/libmmngr.so*
+ make all ARCH=arm
+ # Copy shared library into shared folder
+ cp -P ${S}/if/libmmngr.so* ${LIBSHARED}
+}
+
+do_install() {
+ mkdir -p ${D}/usr/local/lib/ ${D}/usr/local/include
+
+ # Copy shared library
+ cp -P ${S}/if/libmmngr.so* ${D}/usr/local/lib/
+ cd ${D}/usr/local/lib/
+ # Copy shared header files
+ cp -f ${BUILDDIR}/include/mmngr_user_public.h ${D}/usr/local/include
+ cp -f ${BUILDDIR}/include/mmngr_user_private.h ${D}/usr/local/include
+}
+
+# Append function to clean extract source
+do_cleansstate_prepend() {
+ bb.build.exec_func('do_clean_source', d)
+}
+
+do_clean_source() {
+ rm -f ${LIBSHARED}/libmmngr.so*
+ rm -Rf ${BUILDDIR}/include/mmngr_user_public.h
+ rm -Rf ${BUILDDIR}/include/mmngr_user_private.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/libmmngr.so.* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/include \
+ /usr/local/include/*.h \
+ /usr/local/lib \
+ /usr/local/lib/libmmngr.so \
+"
+
+RPROVIDES_${PN} += "mmngr-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+
+do_configure[noexec] = "1"
+
+python do_package_ipk_prepend () {
+ d.setVar('ALLOW_EMPTY', '1')
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-tp-user-module.bb b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-tp-user-module.bb
new file mode 100644
index 0000000..c07945d
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-tp-user-module.bb
@@ -0,0 +1,29 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "mmngrbuf-kernel-module mmngrbuf-user-module"
+SRC_URI = "file://mmngrbuf-tp-user.tar.bz2"
+
+S = "${WORKDIR}/mmngrbuf"
+
+do_compile() {
+ # Build test kernel module
+ cd ${S}
+ make all ARCH=arm
+}
+
+do_install() {
+ # Copy kernel test program
+ mkdir -p ${D}/usr/local/bin/
+ cp ${S}/mmbuftp ${D}/usr/local/bin/
+}
+
+PACKAGES = "\
+ ${PN} \
+"
+FILES_${PN} = " \
+ /usr/local/bin/mmbuftp \
+"
+
+RPROVIDES_${PN} += "mmngrbuf-tp-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb
new file mode 100644
index 0000000..d2f90e0
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/mmngr-module/mmngrbuf-user-module.bb
@@ -0,0 +1,67 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "mmngrbuf-kernel-module"
+PN = "mmngrbuf-user-module"
+PR = "r0"
+S = "${WORKDIR}/mmngrbuf"
+SRC_URI = "file://mmngrbuf.tar.bz2"
+
+
+do_compile() {
+ # Build shared library
+ cd ${S}/if
+ rm -rf ${S}/if/libmmngrbuf.so*
+ make all ARCH=arm
+ # Copy shared library into shared folder
+ cp -P ${S}/if/libmmngrbuf.so* ${LIBSHARED}
+}
+
+do_install() {
+ mkdir -p ${D}/usr/local/lib/ ${D}/usr/local/include
+
+ # Copy shared library
+ cp -P ${S}/if/libmmngrbuf.so* ${D}/usr/local/lib/
+ cd ${D}/usr/local/lib/
+ # Copy shared header files
+ cp -f ${BUILDDIR}/include/mmngr_buf_user_public.h ${D}/usr/local/include
+ cp -f ${BUILDDIR}/include/mmngr_buf_user_private.h ${D}/usr/local/include
+}
+
+# Append function to clean extract source
+do_cleansstate_prepend() {
+ bb.build.exec_func('do_clean_source', d)
+}
+
+do_clean_source() {
+ rm -f ${LIBSHARED}/libmmngrbuf.so*
+ rm -Rf ${BUILDDIR}/include/mmngr_buf_user_public.h
+ rm -Rf ${BUILDDIR}/include/mmngr_buf_user_private.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/libmmngrbuf.so.* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/include \
+ /usr/local/include/*.h \
+ /usr/local/lib \
+ /usr/local/lib/libmmngrbuf.so \
+"
+
+RPROVIDES_${PN} += "mmngrbuf-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+
+do_configure[noexec] = "1"
+
+python do_package_ipk_prepend () {
+ d.setVar('ALLOW_EMPTY', '1')
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/omx-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/omx-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/omx-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/omx-module/omx-user-module.bb b/meta-rcar-gen2/recipes-multimedia/omx-module/omx-user-module.bb
new file mode 100644
index 0000000..f4f0c8b
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/omx-module/omx-user-module.bb
@@ -0,0 +1,426 @@
+require ../../include/rcar-gen2-modules-common.inc
+require ../../include/omx-components-control.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "mmngr-kernel-module mmngr-user-module \
+ vspm-kernel-module vspm-user-module \
+ s3ctl-kernel-module s3ctl-user-module \
+ fdpm-kernel-module fdpm-user-module \
+ uvcs-kernel-module"
+
+PR = "r0"
+PV = "1.0"
+PN = "omx-user-module"
+
+SRC_URI = "file://RTM0AC0000XCMCTL20SL32C.tar.bz2;name=file1 \
+ file://RTM0AC0000XVCMND20SL32C.tar.bz2;name=file2 \
+ file://RTM0AC0000XV264D20SL32C.tar.bz2;name=file3 \
+ "
+SRC_URI += '${@base_conditional( "USE_H263_DECODER", "1", " file://RTM0AC0000XV263D20SL32C.tar.bz2;name=file4", "", d )}'
+SRC_URI += '${@base_conditional( "USE_MPEG2_DECODER", "1", " file://RTM0AC0000XVM2VD20SL32C.tar.bz2;name=file5", "", d )}'
+SRC_URI += '${@base_conditional( "USE_MPEG4_DECODER", "1", " file://RTM0AC0000XVM4VD20SL32C.tar.bz2;name=file6", "", d )}'
+SRC_URI += '${@base_conditional( "USE_DIVX_DECODER", "1", " file://RTM0AC0000XVDVXD20SL32C.tar.bz2;name=file7", "", d )}'
+SRC_URI += '${@base_conditional( "USE_VC1_DECODER", "1", " file://RTM0AC0000XVVC1D20SL32C.tar.bz2;name=file8", "", d )}'
+SRC_URI += '${@base_conditional( "USE_H264AVC_ENCODER", "1", " file://RTM0AC0000XV264E20SL32C.tar.bz2;name=file9", "", d )}'
+SRC_URI += '${@base_conditional( "USE_VIDEO_COMMON_ENCODER", "1", " file://RTM0AC0000XVCMNE20SL32C.tar.bz2;name=file10", "", d )}'
+SRC_URI += '${@base_conditional( "USE_AUDIO_COMMON", "1", " file://RTM0AC0000XACMND20SL32C.tar.bz2;name=file11", "", d )}'
+SRC_URI += '${@base_conditional( "USE_AACP2_DECODER", "1", " file://RTM0AC0000XAAAPD20SL32C.tar.bz2;name=file12", "", d )}'
+SRC_URI += '${@base_conditional( "USE_MP3_DECODER", "1", " file://RTM0AC0000XAMP3D20SL32C.tar.bz2;name=file13", "", d )}'
+SRC_URI += '${@base_conditional( "USE_WMA_DECODER", "1", " file://RTM0AC0000XAWMAD20SL32C.tar.bz2;name=file14", "", d )}'
+SRC_URI += '${@base_conditional( "USE_DDD_DECODER", "1", " file://RTM0AC0000XADD5D20SL32C.tar.bz2;name=file15", "", d )}'
+SRC_URI += '${@base_conditional( "USE_ALAC_DECODER", "1", " file://RTM0AC0000XAALAD20SL32C.tar.bz2;name=file16", "", d )}'
+SRC_URI += '${@base_conditional( "USE_FLAC_DECODER", "1", " file://RTM0AC0000XAFLAD20SL32C.tar.bz2;name=file17", "", d )}'
+SRC_URI += '${@base_conditional( "USE_AAC_ENCODER", "1", " file://RTM0AC0000XAAACE20SL32C.tar.bz2;name=file18", "", d )}'
+SRC_URI += '${@base_conditional( "ARMAACP2_MDW_DECODER", "1", " file://RTM0AC0000ADAAPMZ1SL32C.tar.bz2;name=file19", "", d )}'
+SRC_URI += '${@base_conditional( "MP3_MDW_DECODER", "1", " file://RTM0AC0000ADMP3MZ1SL32C.tar.bz2;name=file20", "", d )}'
+SRC_URI += '${@base_conditional( "WMA_MDW_DECODER", "1", " file://RTM0AC0000ADWMAMZ1SL32C.tar.bz2;name=file21", "", d )}'
+SRC_URI += '${@base_conditional( "DDD_MDW_DECODER", "1", " file://RTM0AC0000ADDD5MZ1SL32C.tar.bz2;name=file22", "", d )}'
+SRC_URI += '${@base_conditional( "ALAC_MDW_DECODER", "1", " file://RCG2ADALAMZ1SL32.tar.bz2;name=file23", "", d )}'
+SRC_URI += '${@base_conditional( "FLAC_MDW_DECODER", "1", " file://RCG2ADFLAMZ1SL32.tar.bz2;name=file24", "", d )}'
+SRC_URI += '${@base_conditional( "AAC_MDW_ENCODER", "1", " file://RTM0AC0000AEAACMZ1SL32C.tar.bz2;name=file25", "", d )}'
+
+LISTSRC = "RTM0AC0000XCMCTL20SL32C \
+ RTM0AC0000XVCMND20SL32C \
+ RTM0AC0000XV264D20SL32C"
+
+LISTSRC += '${@base_conditional( "USE_H263_DECODER", "1", "RTM0AC0000XV263D20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_MPEG2_DECODER", "1", "RTM0AC0000XVM2VD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_MPEG4_DECODER", "1", "RTM0AC0000XVM4VD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_DIVX_DECODER", "1", "RTM0AC0000XVDVXD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_VC1_DECODER", "1", "RTM0AC0000XVVC1D20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_H264AVC_ENCODER", "1", "RTM0AC0000XV264E20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_VIDEO_COMMON_ENCODER", "1", "RTM0AC0000XVCMNE20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_AUDIO_COMMON", "1", "RTM0AC0000XACMND20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_AACP2_DECODER", "1", "RTM0AC0000XAAAPD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_MP3_DECODER", "1", "RTM0AC0000XAMP3D20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_WMA_DECODER", "1", "RTM0AC0000XAWMAD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_DDD_DECODER", "1", "RTM0AC0000XADD5D20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_ALAC_DECODER", "1", "RTM0AC0000XAALAD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_FLAC_DECODER", "1", "RTM0AC0000XAFLAD20SL32C", "", d )}'
+LISTSRC += '${@base_conditional( "USE_AAC_ENCODER", "1", "RTM0AC0000XAAACE20SL32C", "", d )}'
+
+MIDWARESRC = '${@base_conditional( "ARMAACP2_MDW_DECODER", "1", "RTM0AC0000ADAAPMZ1SL32C", "", d )}'
+MIDWARESRC += '${@base_conditional( "MP3_MDW_DECODER", "1", "RTM0AC0000ADMP3MZ1SL32C", "", d )}'
+MIDWARESRC += '${@base_conditional( "WMA_MDW_DECODER", "1", "RTM0AC0000ADWMAMZ1SL32C", "", d )}'
+MIDWARESRC += '${@base_conditional( "DDD_MDW_DECODER", "1", "RTM0AC0000ADDD5MZ1SL32C", "", d )}'
+MIDWARESRC += '${@base_conditional( "ALAC_MDW_DECODER", "1", "RCG2ADALAMZ1SL32", "", d )}'
+MIDWARESRC += '${@base_conditional( "FLAC_MDW_DECODER", "1", "RCG2ADFLAMZ1SL32", "", d )}'
+MIDWARESRC += '${@base_conditional( "AAC_MDW_ENCODER", "1", "RTM0AC0000AEAACMZ1SL32C", "", d )}'
+
+S = "${WORKDIR}/omx"
+
+do_unpack_append () {
+ bb.build.exec_func('do_collect_src', d)
+}
+
+do_collect_src() {
+ cd ${WORKDIR}
+ mkdir -p ${S}
+ for dir in ${LISTSRC}; do
+ cp -rf ${dir}/Software/* ${S}
+ rm -rf ${dir}
+ done
+ cp -rf ${S}/OMXR/include ${S}/UDF_Linux
+ cp -rf ${S}/OMXR/lib/linux/linaro_4_7_3/* ${S}/OMXR/lib/
+ rm -rf ${S}/OMXR/lib/linux/
+
+ # Colect audio midleware
+ mkdir -p ${S}/audio_mdw
+ for dir in ${MIDWARESRC}; do
+ cp -rf ${dir}/* ${S}/audio_mdw
+ rm -rf ${dir}
+ done
+}
+
+
+do_configure() {
+ cd ${S}/UDF_Linux
+ ./autogen.sh
+ ./configure --prefix=${D}/usr/local/ --host=arm-linux \
+ CFLAGS="-I${BUILDDIR}/include -I${KERNELDIR}/include" \
+ LDFLAGS="-L${LIBSHARED}" \
+ OMXR_DEFAULT_CONFIG_FILE_NAME=/usr/local/config/omxr_config_base.txt
+}
+
+do_compile() {
+ cd ${S}/UDF_Linux
+ make
+}
+
+do_install() {
+ # Create share files
+ mkdir -p ${D}/usr/local/lib ${D}/usr/local/config
+ cd ${S}/UDF_Linux
+ make install
+ cp -rf ${S}/OMXR/config/*.txt ${D}/usr/local/config/
+ cp -rf ${S}/UDF_Linux/include ${D}/usr/local/include
+ cp -rf ${S}/UDF_Linux/include/*.h ${STAGING_INCDIR}
+
+ cd ${S}/OMXR/lib/
+
+ # OMX ctrl part
+ ln -sf libomxr_core.so.2.0.0 libomxr_core.so.2
+ ln -sf libomxr_core.so.2.0.0 libomxr_core.so
+
+ ln -sf libomxr_mc_cmn.so.2.0.0 libomxr_mc_cmn.so.2
+ ln -sf libomxr_mc_cmn.so.2.0.0 libomxr_mc_cmn.so
+
+ # Video (decode) common
+ ln -sf libomxr_mc_vcmn.so.2.0.0 libomxr_mc_vcmn.so.2
+ ln -sf libomxr_mc_vcmn.so.2.0.0 libomxr_mc_vcmn.so
+
+ ln -sf libomxr_mc_vdcmn.so.2.0.0 libomxr_mc_vdcmn.so.2
+ ln -sf libomxr_mc_vdcmn.so.2.0.0 libomxr_mc_vdcmn.so
+
+ ln -sf libuvcs_dec.so.1.0.0 libuvcs_dec.so.1
+ ln -sf libuvcs_dec.so.1.0.0 libuvcs_dec.so
+
+ ln -sf libvcp3_mcvd.so.1.0.0 libvcp3_mcvd.so.1
+ ln -sf libvcp3_mcvd.so.1.0.0 libvcp3_mcvd.so
+
+ # H264 Decoder
+ ln -sf libomxr_mc_h264d.so.2.0.0 libomxr_mc_h264d.so.2
+ ln -sf libomxr_mc_h264d.so.2.0.0 libomxr_mc_h264d.so
+
+ ln -sf libvcp3_avcd.so.1.0.0 libvcp3_avcd.so.1
+ ln -sf libvcp3_avcd.so.1.0.0 libvcp3_avcd.so
+
+ # H263 Decoder
+ if [ "X${USE_H263_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_h263d.so.2.0.0 libomxr_mc_h263d.so.2
+ ln -sf libomxr_mc_h263d.so.2.0.0 libomxr_mc_h263d.so
+
+ ln -sf libvcp3_hv3d.so.1.0.0 libvcp3_hv3d.so.1
+ ln -sf libvcp3_hv3d.so.1.0.0 libvcp3_hv3d.so
+ fi
+
+ # M2VD decoder
+ if [ "X${USE_MPEG2_DECODER}" = "X1" ] ; then
+ ln -sf libvcp3_m2vd.so.1.0.0 libvcp3_m2vd.so.1
+ ln -sf libvcp3_m2vd.so.1 libvcp3_m2vd.so
+
+ ln -sf libomxr_mc_m2vd.so.2.0.0 libomxr_mc_m2vd.so.2
+ ln -sf libomxr_mc_m2vd.so.2 libomxr_mc_m2vd.so
+ fi
+
+ # M4VD decoder
+ if [ "X${USE_MPEG4_DECODER}" = "X1" ] ; then
+ ln -sf libvcp3_m4vd.so.1.0.0 libvcp3_m4vd.so.1
+ ln -sf libvcp3_m4vd.so.1 libvcp3_m4vd.so
+
+ ln -sf libomxr_mc_m4vd.so.2.0.0 libomxr_mc_m4vd.so.2
+ ln -sf libomxr_mc_m4vd.so.2 libomxr_mc_m4vd.so
+ fi
+
+ # DIVX decoder
+ if [ "X${USE_DIVX_DECODER}" = "X1" ] ; then
+ ln -sf libvcp3_dvxd.so.1.0.0 libvcp3_dvxd.so.1
+ ln -sf libvcp3_dvxd.so.1 libvcp3_dvxd.so
+
+ ln -sf libomxr_mc_divxd.so.2.0.0 libomxr_mc_divxd.so.2
+ ln -sf libomxr_mc_divxd.so.2 libomxr_mc_divxd.so
+ fi
+
+ # VC1D decoder
+ if [ "X${USE_VC1_DECODER}" = "X1" ] ; then
+ ln -sf libvcp3_vc1d.so.1.0.0 libvcp3_vc1d.so.1
+ ln -sf libvcp3_vc1d.so.1 libvcp3_vc1d.so
+
+ ln -sf libomxr_mc_vc1d.so.2.0.0 libomxr_mc_vc1d.so.2
+ ln -sf libomxr_mc_vc1d.so.2 libomxr_mc_vc1d.so
+ fi
+
+ #Encoder
+ # H264E
+ if [ "X${USE_H264AVC_ENCODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_h264e.so.2.0.0 libomxr_mc_h264e.so.2
+ ln -sf libomxr_mc_h264e.so.2 libomxr_mc_h264e.so
+
+ ln -sf libvcp3_avce.so.1.0.0 libvcp3_avce.so.1
+ ln -sf libvcp3_avce.so.1.0.0 libvcp3_avce.so
+ fi
+
+ ### Encoder common
+ if [ "X${USE_VIDEO_COMMON_ENCODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_vecmn.so.2.0.0 libomxr_mc_vecmn.so.2
+ ln -sf libomxr_mc_vecmn.so.2.0.0 libomxr_mc_vecmn.so
+
+ ln -sf libuvcs_enc.so.1.0.0 libuvcs_enc.so.1
+ ln -sf libuvcs_enc.so.1.0.0 libuvcs_enc.so
+
+ ln -sf libvcp3_mcve.so.1.0.0 libvcp3_mcve.so.1
+ ln -sf libvcp3_mcve.so.1.0.0 libvcp3_mcve.so
+ fi
+
+ # audio common OMX
+ if [ "X${USE_AUDIO_COMMON}" = "X1" ] ; then
+ ln -sf libomxr_mc_acmn.so.2.0.0 libomxr_mc_acmn.so.2
+ ln -sf libomxr_mc_acmn.so.2.0.0 libomxr_mc_acmn.so
+ fi
+
+ # aacd OMX
+ if [ "X${USE_AACP2_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_aacd.so.2.0.0 libomxr_mc_aacd.so.2
+ ln -sf libomxr_mc_aacd.so.2.0.0 libomxr_mc_aacd.so
+ fi
+
+ # mp3 OMX
+ if [ "X${USE_MP3_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_mp3d.so.2.0.0 libomxr_mc_mp3d.so.2
+ ln -sf libomxr_mc_mp3d.so.2.0.0 libomxr_mc_mp3d.so
+ fi
+
+ # wma OMX
+ if [ "X${USE_WMA_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_wmad.so.2.0.0 libomxr_mc_wmad.so.2
+ ln -sf libomxr_mc_wmad.so.2.0.0 libomxr_mc_wmad.so
+ fi
+
+ # ddd OMX
+ if [ "X${USE_DDD_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_ddd.so.2.0.0 libomxr_mc_ddd.so.2
+ ln -sf libomxr_mc_ddd.so.2.0.0 libomxr_mc_ddd.so
+ fi
+
+ # alac OMX
+ if [ "X${USE_ALAC_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_alacd.so.2.0.0 libomxr_mc_alacd.so.2
+ ln -sf libomxr_mc_alacd.so.2.0.0 libomxr_mc_alacd.so
+ fi
+
+ # flac OMX
+ if [ "X${USE_FLAC_DECODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_flacd.so.2.0.0 libomxr_mc_flacd.so.2
+ ln -sf libomxr_mc_flacd.so.2.0.0 libomxr_mc_flacd.so
+ fi
+
+ # aac enc omx
+ if [ "X${USE_AAC_ENCODER}" = "X1" ] ; then
+ ln -sf libomxr_mc_aace.so.2.0.0 libomxr_mc_aace.so.2
+ ln -sf libomxr_mc_aace.so.2.0.0 libomxr_mc_aace.so
+ fi
+
+ # Copy all the symbolic link and lib to destination
+ cp -Prf ${S}/OMXR/lib/* ${D}/usr/local/lib
+
+ # Copy the audio midleware
+ # audio aacp2 midleware
+ if [ "X${ARMAACP2_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libRSACPDLA_L.so.1.1 libRSACPDAL_L.so.1.1
+ ln -sf libRSACPDLA_L.so.1.1 libRSACPDLA_L.so.1
+ ln -sf libRSACPDLA_L.so.1.1 libRSACPDLA_L.so
+ ln -sf libRSACPDAL_L.so.1.1 libRSACPDAL_L.so.1
+ ln -sf libRSACPDAL_L.so.1.1 libRSACPDAL_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/RSACPD_ADL.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/RSACPD_ADL.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${MP3_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libMP3DLA_L.so.1.4 libMP3DLA_L.so.1
+ ln -sf libMP3DLA_L.so.1.4 libMP3DLA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/mp3d_Lib.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/mp3d_Lib.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${WMA_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libWMASTDLA_L.so.1.3 libWMASTDLA_L.so.1
+ ln -sf libWMASTDLA_L.so.1.3 libWMASTDLA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/wmastd_Lib.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/wmastd_Lib.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${DDD_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libRSDACDLA_L.so.1.0 libRSDACDLA_L.so.1
+ ln -sf libRSDACDLA_L.so.1.0 libRSDACDLA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/RSDACD_ADL.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/RSDACD_ADL.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${ALAC_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libALACDLA_L.so.1.0 libALACDLA_L.so.1
+ ln -sf libALACDLA_L.so.1.0 libALACDLA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/alacd_Lib.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/alacd_Lib.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${FLAC_MDW_DECODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libFLACDLA_L.so.1.1 libFLACDLA_L.so.1
+ ln -sf libFLACDLA_L.so.1.1 libFLACDLA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/flacd_Lib.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/flacd_Lib.h ${STAGING_INCDIR}
+ fi
+
+ if [ "X${AAC_MDW_ENCODER}" = "X1" ] ; then
+ cd ${S}/audio_mdw
+ ln -sf libRSAACELA_L.so.2.1 libRSAACELA_L.so.2
+ ln -sf libRSAACELA_L.so.2.1 libRSAACELA_L.so
+ cp -P ${S}/audio_mdw/*.so* ${D}/usr/local/lib/
+ cp -P ${S}/audio_mdw/RSAACE_AAC.h ${D}/usr/local/include
+ cp -P ${S}/audio_mdw/RSAACE_AAC.h ${STAGING_INCDIR}
+ fi
+}
+
+do_install_append() {
+ if [ "X${MACHINE}" = "Xsilk" -o "X${MACHINE}" = "Xporter" ] ; then
+ cd ${S}/OMXR/lib/
+
+ ln -sf libomxr_core.so.0.0.0 libomxr_core.so.2.0.0
+ ln -sf libomxr_core.so.0.0.0 libomxr_core.so.0
+ ln -sf libomxr_mc_cmn.so.0.0.0 libomxr_mc_cmn.so.2.0.0
+ ln -sf libomxr_mc_h264d.so.0.0.0 libomxr_mc_h264d.so.2.0.0
+ ln -sf libomxr_mc_h264d.so.0.0.0 libomxr_mc_h264d.so.0
+ ln -sf libomxr_mc_h264e.so.0.0.0 libomxr_mc_h264e.so.2.0.0
+ ln -sf libomxr_mc_h264e.so.0.0.0 libomxr_mc_h264e.so.0
+ ln -sf libomxr_mc_vecmn.so.0.0.0 libomxr_mc_vecmn.so.2.0.0
+ ln -sf libomxr_mc_vcmn.so.0.0.0 libomxr_mc_vcmn.so.2.0.0
+ ln -sf libomxr_mc_vdcmn.so.0.0.0 libomxr_mc_vdcmn.so.2.0.0
+ ln -sf libuvcs_dec.so.0.0.0 libuvcs_dec.so.1.0.0
+ ln -sf libuvcs_enc.so.0.0.0 libuvcs_enc.so.1.0.0
+ ln -sf libvcp3_avcd.so.0.0.0 libvcp3_avcd.so.1.0.0
+ ln -sf libvcp3_avce.so.0.0.0 libvcp3_avce.so.1.0.0
+ ln -sf libvcp3_mcvd.so.0.0.0 libvcp3_mcvd.so.1.0.0
+ ln -sf libvcp3_mcve.so.0.0.0 libvcp3_mcve.so.1.0.0
+
+ # Copy all the symbolic link and lib to destination
+ cp -Prf ${S}/OMXR/lib/* ${D}/usr/local/lib
+ fi
+}
+
+SYSROOT_PREPROCESS_FUNCS += "do_populate_share_lib"
+
+do_populate_share_lib () {
+ sysroot_stage_dir ${D}/usr/local/lib ${SYSROOT_DESTDIR}/usr/lib
+}
+
+# Append function to clean extract source
+CLEANFUNCS += 'do_clean_sharedfiles'
+
+do_clean_sharedfiles() {
+ rm -f ${LIBSHARED}/libomxr_*.so*
+ rm -f ${LIBSHARED}/libuvcs*.so*
+ rm -f ${LIBSHARED}/libvcp3_*.so*
+ rm -f ${STAGING_INCDIR}/OMX_*.h
+ rm -f ${STAGING_INCDIR}/OMXR_*.h
+
+ rm -f ${LIBSHARED}/libRSACPDLA_L.so*
+ rm -f ${LIBSHARED}/libRSACPDAL_L.so*
+ rm -f ${STAGING_INCDIR}/RSACPD_ADL.h
+
+ rm -f ${LIBSHARED}/libMP3DLA_L.so*
+ rm -f ${STAGING_INCDIR}/mp3d_Lib.h
+
+ rm -f ${LIBSHARED}/libWMASTDLA_L.so*
+ rm -f ${STAGING_INCDIR}/wmastd_Lib.h
+
+ rm -f ${LIBSHARED}/libRSDACDLA_L.so*
+ rm -f ${STAGING_INCDIR}/RSDACD_ADL.h
+
+ rm -f ${LIBSHARED}/libALACDLA_L.so*
+ rm -f ${STAGING_INCDIR}/alacd_Lib.h
+
+ rm -f ${LIBSHARED}/libFLACDLA_L.so*
+ rm -f ${STAGING_INCDIR}/flacd_Lib.h
+
+ rm -f ${LIBSHARED}/libRSAACELA_L.so*
+ rm -f ${STAGING_INCDIR}/RSAACE_AAC.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-staticdev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/*.so \
+ /usr/local/lib/*.so.* \
+ /usr/local/config/* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/include/* \
+"
+
+FILES_${PN}-staticdev = " \
+ /usr/local/lib/*.a \
+ /usr/local/lib/*.la \
+"
+
+INSANE_SKIP_${PN} += "rpaths"
+INSANE_SKIP_${PN} += "dev-so"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+RPROVIDES_${PN} += "omx-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bb b/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bb
new file mode 100644
index 0000000..688c6b7
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bb
@@ -0,0 +1,69 @@
+require ../../include/gles-control.inc
+require ../../include/multimedia-control.inc
+
+DESCRIPTION = "Package Group for multimedia of R-Car Gen2"
+LICENSE = "CLOSED"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-rcar-gen2-multimedia \
+ packagegroup-rcar-gen2-multimedia-tp \
+ packagegroup-rcar-gen2-dtv \
+"
+
+MULTIMEDIA_PACKAGES ="\
+ mmngr-kernel-module mmngr-user-module \
+ mmngrbuf-kernel-module mmngrbuf-user-module \
+ mmngrbuf-user-module-dev \
+ fdpm-kernel-module fdpm-user-module \
+ vspm-kernel-module vspm-user-module \
+ s3ctl-kernel-module s3ctl-user-module \
+ uvcs-kernel-module omx-user-module \
+ libmemcpy \
+"
+
+RDEPENDS_packagegroup-rcar-gen2-multimedia = "\
+ ${@ "${MULTIMEDIA_PACKAGES}" if "${USE_MULTIMEDIA}" == "1" else "" } \
+ media-ctl \
+ gstreamer1.0-meta-base \
+ gstreamer1.0-meta-audio \
+ gstreamer1.0-meta-video \
+ gstreamer1.0-plugins-base-audioconvert \
+ gstreamer1.0-plugins-base-audioresample \
+ gstreamer1.0-plugins-base-playback \
+ gstreamer1.0-plugins-base-videoconvert \
+ gstreamer1.0-plugins-base-typefindfunctions \
+ gstreamer1.0-plugins-base-videoscale \
+ gstreamer1.0-plugins-good-avi \
+ gstreamer1.0-plugins-good-audioparsers \
+ gstreamer1.0-plugins-good-id3demux \
+ gstreamer1.0-plugins-bad-faad \
+ gstreamer1.0-plugins-bad-mpegtsdemux \
+ gstreamer1.0-plugins-bad-debugutilsbad \
+ ${@base_contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-omx gstreamer1.0-plugins-ugly-asf", "", d )} \
+ ${@base_conditional("USE_GLES_WAYLAND", "1", "gstreamer1.0-plugins-base-vspfilter", "", d )} \
+"
+
+MULTIMEDIA_TEST_PACKAGES = "\
+ ${MULTIMEDIA_PACKAGES} \
+ mmngr-tp-user-module \
+ mmngrbuf-tp-user-module \
+ fdpm-tp-user-module \
+ vspm-tp-user-module \
+ s3ctl-tp-user-module \
+"
+
+RDEPENDS_packagegroup-rcar-gen2-multimedia-tp = "\
+ ${@ '${MULTIMEDIA_TEST_PACKAGES}' if '${USE_MULTIMEDIA}' == '1' and '${USE_MULTIMEDIA_TEST}' == '1' else '' } \
+"
+
+DTV_PACKAGES = "\
+ ${MULTIMEDIA_PACKAGES} \
+ scu-kernel-module ssp-kernel-module \
+ dtv \
+"
+
+RDEPENDS_packagegroup-rcar-gen2-dtv = "\
+ ${@ '${DTV_PACKAGES}' if '${USE_DTV}' == '1' else '' } \
+"
diff --git a/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bbappend b/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bbappend
new file mode 100644
index 0000000..b74228d
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/packagegroups/packagegroup-rcar-gen2-multimedia.bbappend
@@ -0,0 +1,17 @@
+PACKAGES_append_silk = " packagegroup-lcb-oss-codecs"
+PACKAGES_append_porter = " packagegroup-lcb-oss-codecs"
+
+RDEPENDS_packagegroup-lcb-oss-codecs = "\
+ libmad \
+ lame \
+ faac \
+ faad2 \
+ libvorbis \
+ libogg \
+ gstreamer1.0-plugins-ugly-mad \
+ gstreamer1.0-plugins-ugly-lame \
+ gstreamer1.0-plugins-bad-faac \
+ gstreamer1.0-plugins-bad-faad \
+ gstreamer1.0-plugins-base-ogg \
+ gstreamer1.0-plugins-base-vorbis \
+"
diff --git a/meta-rcar-gen2/recipes-multimedia/s3ctl-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-tp-user-module.bb b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-tp-user-module.bb
new file mode 100644
index 0000000..3fcc5ad
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-tp-user-module.bb
@@ -0,0 +1,32 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "s3ctl-kernel-module s3ctl-user-module"
+SRC_URI = "file://s3ctl-tp-user.tar.bz2"
+S = "${WORKDIR}/s3ctl"
+
+do_compile() {
+ # Build user test program
+ cd ${S}
+ make all ARCH=arm
+}
+
+do_install() {
+ # Create shared folder
+ mkdir -p ${D}/usr/local/bin/
+ # Copy user test program
+ cp ${S}/s3tp ${D}/usr/local/bin/
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-dbg \
+"
+
+FILES_${PN} = " \
+ /usr/local/bin/s3tp \
+"
+
+RPROVIDES_${PN} += "s3ctl-tp-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-user-module.bb b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-user-module.bb
new file mode 100644
index 0000000..ed02e0a
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/s3ctl-module/s3ctl-user-module.bb
@@ -0,0 +1,64 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "s3ctl-kernel-module"
+PN = "s3ctl-user-module"
+PR = "r0"
+SRC_URI = "file://s3ctl.tar.bz2"
+
+S = "${WORKDIR}/s3ctl"
+
+do_compile() {
+ # Build shared library
+ cd ${S}/if
+ rm -rf libs3ctl.so*
+ make all ARCH=arm
+ # Copy shared library for reference from other modules
+ cp -P ${S}/if/libs3ctl.so* ${LIBSHARED}
+}
+
+do_install() {
+ # Create shared folder
+ mkdir -p ${D}/usr/local/lib/ ${D}/usr/local/include/
+ # Copy share library
+ cp -P ${S}/if/libs3ctl.so* ${D}/usr/local/lib/
+ # Copy shared header files
+ cp -f ${BUILDDIR}/include/s3ctl_user_public.h ${D}/usr/local/include/
+ cp -f ${BUILDDIR}/include/s3ctl_user_private.h ${D}/usr/local/include/
+}
+
+# Append function to clean extract source
+do_cleansstate_prepend() {
+ bb.build.exec_func('do_clean_source', d)
+}
+
+do_clean_source() {
+ rm -f ${LIBSHARED}/libs3ctl.so*
+ rm -f ${BUILDDIR}/include/s3ctl_user_public.h
+ rm -f ${BUILDDIR}/include/s3ctl_user_private.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/libs3ctl.so.* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/lib/libs3ctl.so \
+ /usr/local/include/*.h \
+"
+
+RPROVIDES_${PN} += "s3ctl-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+
+do_configure[noexec] = "1"
+
+python do_package_ipk_prepend () {
+ d.setVar('ALLOW_EMPTY', '1')
+}
diff --git a/meta-rcar-gen2/recipes-multimedia/v4l2apps/media-ctl_git.bbappend b/meta-rcar-gen2/recipes-multimedia/v4l2apps/media-ctl_git.bbappend
new file mode 100644
index 0000000..aeb591c
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/v4l2apps/media-ctl_git.bbappend
@@ -0,0 +1,2 @@
+SRCREV = "114c1b274edc40e07e9b99a435d26438f5b99943"
+PV = "0.0.1+git${SRCPV}"
diff --git a/meta-rcar-gen2/recipes-multimedia/vspm-module/files/.gitkeep b/meta-rcar-gen2/recipes-multimedia/vspm-module/files/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/vspm-module/files/.gitkeep
diff --git a/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-tp-user-module.bb b/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-tp-user-module.bb
new file mode 100644
index 0000000..b7b97a0
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-tp-user-module.bb
@@ -0,0 +1,29 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "vspm-user-module mmngr-user-module"
+SRC_URI = "file://vspm-tp-user.tar.bz2"
+S = "${WORKDIR}"
+
+do_compile() {
+ cd ${S}/vspm/
+ make all ARCH=arm
+}
+
+do_install() {
+ # Create destination folder
+ mkdir -p ${D}/usr/local/bin/
+
+ # Copy user test program
+ cp ${S}/vspm/vspm_tp ${D}/usr/local/bin/
+}
+
+PACKAGES = "\
+ ${PN} \
+"
+FILES_${PN} = " \
+ /usr/local/bin/vspm_tp \
+"
+
+RPROVIDES_${PN} += "vspm-tp-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-user-module.bb b/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-user-module.bb
new file mode 100644
index 0000000..3327861
--- /dev/null
+++ b/meta-rcar-gen2/recipes-multimedia/vspm-module/vspm-user-module.bb
@@ -0,0 +1,58 @@
+require ../../include/rcar-gen2-modules-common.inc
+
+LICENSE = "CLOSED"
+DEPENDS = "vspm-kernel-module"
+PN = "vspm-user-module"
+PR = "r0"
+SRC_URI = "file://vspm-user.tar.bz2"
+
+S = "${WORKDIR}"
+
+do_compile() {
+ # Build shared library
+ cd ${S}/vspm/if
+ rm -rf ${S}/vspm/if/libvspm.so*
+ make all ARCH=arm
+ # Copy shared library for reference from other modules
+ cp -P ${S}/vspm/if/libvspm.so* ${LIBSHARED}
+}
+
+do_install() {
+ # Create destination folder
+ mkdir -p ${D}/usr/local/lib/ ${D}/usr/local/include
+ # Copy shared library
+ cp -P ${S}/vspm/if/libvspm.so* ${D}/usr/local/lib/
+ # Copy shared header files
+ cp -f ${BUILDDIR}/include/vspm_public.h ${D}/usr/local/include
+ cp -f ${BUILDDIR}/include/vsp_drv.h ${D}/usr/local/include
+ cp -f ${BUILDDIR}/include/tddmac_drv.h ${D}/usr/local/include
+}
+
+do_clean_source() {
+ rm -f ${LIBSHARED}/libvspm.so*
+ rm -f ${BUILDDIR}/include/vspm_public.h
+ rm -f ${BUILDDIR}/include/vsp_drv.h
+ rm -f ${BUILDDIR}/include/tddmac_drv.h
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /usr/local/lib/libvspm.so.* \
+"
+
+FILES_${PN}-dev = " \
+ /usr/local/lib \
+ /usr/local/lib/libvspm.so \
+ /usr/local/lib/* \
+ /usr/local/include \
+ /usr/local/include/*.h \
+"
+
+RPROVIDES_${PN} += "vspm-user-module"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"