aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-multimedia')
-rw-r--r--meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend3
-rw-r--r--meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb149
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bbappend8
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-gstomx.conf-add-mesa-omx-bellagio-encoder-avc-decode.patch37
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14.4.bbappend16
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend7
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_%.bbappend3
-rw-r--r--meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_%.bbappend1
-rw-r--r--meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-Added-NULL-pointer-check-for-failure-scenario.patch34
-rw-r--r--meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-test-components-fix-linking-issue.patch44
-rw-r--r--meta-amd-bsp/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend35
-rw-r--r--meta-amd-bsp/recipes-multimedia/mpv/mpv_%.bbappend6
-rw-r--r--meta-amd-bsp/recipes-multimedia/mpv/mpv_0.28.2.bb73
-rw-r--r--meta-amd-bsp/recipes-multimedia/packagegroups/packagegroup-multimedia-risky.bb17
-rw-r--r--meta-amd-bsp/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend1
15 files changed, 434 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend b/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend
new file mode 100644
index 00000000..be3d0a0c
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend
@@ -0,0 +1,3 @@
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG_append_amdgpu = " vdpau vaapi"
+PACKAGECONFIG_append_radeon = " vdpau"
diff --git a/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb b/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb
new file mode 100644
index 00000000..9875ed20
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb
@@ -0,0 +1,149 @@
+SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
+DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
+ mux, demux, stream, filter and play pretty much anything that humans and machines \
+ have created. It supports the most obscure ancient formats up to the cutting edge."
+HOMEPAGE = "https://www.ffmpeg.org/"
+SECTION = "libs"
+
+LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT"
+LICENSE_${PN} = "GPLv2+"
+LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libpostproc = "GPLv2+"
+LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
+LICENSE_FLAGS = "commercial"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+ file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
+SRC_URI[md5sum] = "ae0bfdf809306a212b4f0e6eb8d1c75e"
+SRC_URI[sha256sum] = "a95c0cc9eb990e94031d2183f2e6e444cc61c99f6f182d1575c433d62afb2f97"
+
+# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
+ARM_INSTRUCTION_SET = "arm"
+
+# Should be API compatible with libav (which was a fork of ffmpeg)
+# libpostproc was previously packaged from a separate recipe
+PROVIDES = "libav libpostproc"
+
+DEPENDS = "alsa-lib zlib libogg yasm-native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
+ bzlib gpl lzma theora x264 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv', '', d)}"
+
+# libraries to build in addition to avutil
+PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
+PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
+PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
+PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
+PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
+PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
+PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
+PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
+
+# features to support
+PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
+PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
+PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
+PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
+PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
+PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
+PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2"
+PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
+PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
+PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
+PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
+
+# Check codecs that require --enable-nonfree
+USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}"
+
+def cpu(d):
+ for arg in (d.getVar('TUNE_CCARGS') or '').split():
+ if arg.startswith('-mcpu='):
+ return arg[6:]
+ return 'generic'
+
+EXTRA_OECONF = " \
+ --disable-stripping \
+ --enable-pic \
+ --enable-shared \
+ --enable-pthreads \
+ --disable-libxcb \
+ --disable-libxcb-shm \
+ --disable-libxcb-xfixes \
+ --disable-libxcb-shape \
+ ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
+ \
+ --cross-prefix=${TARGET_PREFIX} \
+ \
+ --ld="${CCLD}" \
+ --cc="${CC}" \
+ --cxx="${CXX}" \
+ --arch=${TARGET_ARCH} \
+ --target-os="linux" \
+ --enable-cross-compile \
+ --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+ --extra-ldflags="${TARGET_LDFLAGS}" \
+ --sysroot="${STAGING_DIR_TARGET}" \
+ --enable-hardcoded-tables \
+ ${EXTRA_FFCONF} \
+ --libdir=${libdir} \
+ --shlibdir=${libdir} \
+ --datadir=${datadir}/ffmpeg \
+ ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \
+ --cpu=${@cpu(d)} \
+ --pkg-config=pkg-config \
+"
+
+EXTRA_OECONF_append_linux-gnux32 = " --disable-asm"
+
+do_configure() {
+ ${S}/configure ${EXTRA_OECONF}
+}
+
+PACKAGES =+ "libavcodec \
+ libavdevice \
+ libavfilter \
+ libavformat \
+ libavresample \
+ libavutil \
+ libpostproc \
+ libswresample \
+ libswscale"
+
+FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}"
+FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}"
+FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}"
+FILES_libavformat = "${libdir}/libavformat${SOLIBS}"
+FILES_libavresample = "${libdir}/libavresample${SOLIBS}"
+FILES_libavutil = "${libdir}/libavutil${SOLIBS}"
+FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}"
+FILES_libswresample = "${libdir}/libswresample${SOLIBS}"
+FILES_libswscale = "${libdir}/libswscale${SOLIBS}"
+
+# ffmpeg disables PIC on some platforms (e.g. x86-32)
+INSANE_SKIP_${MLPREFIX}libavcodec = "textrel"
+INSANE_SKIP_${MLPREFIX}libavdevice = "textrel"
+INSANE_SKIP_${MLPREFIX}libavfilter = "textrel"
+INSANE_SKIP_${MLPREFIX}libavformat = "textrel"
+INSANE_SKIP_${MLPREFIX}libavutil = "textrel"
+INSANE_SKIP_${MLPREFIX}libavresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libswscale = "textrel"
+INSANE_SKIP_${MLPREFIX}libswresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bbappend b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bbappend
new file mode 100644
index 00000000..d2975992
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bbappend
@@ -0,0 +1,8 @@
+RDEPENDS_gstreamer1.0-meta-video_append_amd = " \
+ gstreamer1.0-plugins-good-video4linux2 \
+ gstreamer1.0-plugins-good-isomp4 \
+ gstreamer1.0-plugins-good-deinterlace \
+ gstreamer1.0-plugins-good-audioparsers \
+ gstreamer1.0-plugins-good-id3demux \
+ gstreamer1.0-plugins-good-videomixer \
+"
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-gstomx.conf-add-mesa-omx-bellagio-encoder-avc-decode.patch b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-gstomx.conf-add-mesa-omx-bellagio-encoder-avc-decode.patch
new file mode 100644
index 00000000..cf82c3d6
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-gstomx.conf-add-mesa-omx-bellagio-encoder-avc-decode.patch
@@ -0,0 +1,37 @@
+From 39a94d69833508a351376456dad08ea5facf9362 Mon Sep 17 00:00:00 2001
+From: "Arsalan H. Awan" <Arsalan_Awan@mentor.com>
+Date: Wed, 4 Sep 2019 22:12:59 +0500
+Subject: [PATCH] gstomx.conf add mesa omx bellagio encoder avc & decoder hevc
+
+Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
+---
+ config/bellagio/gstomx.conf | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/config/bellagio/gstomx.conf b/config/bellagio/gstomx.conf
+index 0e856be..3e43011 100644
+--- a/config/bellagio/gstomx.conf
++++ b/config/bellagio/gstomx.conf
+@@ -58,3 +58,19 @@ component-name=OMX.mesa.video_decoder.mpeg2
+ rank=0
+ in-port-index=0
+ out-port-index=1
++
++[omxh265dec]
++type-name=GstOMXH265Dec
++core-name=/usr/lib/libomxil-bellagio.so.0
++component-name=OMX.mesa.video_decoder.hevc
++rank=0
++in-port-index=0
++out-port-index=1
++
++[omxh264enc]
++type-name=GstOMXH264Enc
++core-name=/usr/lib/libomxil-bellagio.so.0
++component-name=OMX.mesa.video_encoder.avc
++rank=256
++in-port-index=0
++out-port-index=1
+--
+2.11.1
+
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14.4.bbappend b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14.4.bbappend
new file mode 100644
index 00000000..f10ce33b
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14.4.bbappend
@@ -0,0 +1,16 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+#
+# Remove plugins-bad from DEPENDS as it is
+# not strictly needed.
+#
+DEPENDS_remove_amd = "gstreamer1.0-plugins-bad"
+
+SRC_URI += "file://0001-gstomx.conf-add-mesa-omx-bellagio-encoder-avc-decode.patch"
+
+#
+# This package should not have commercial license flags.
+# There is discussion in the OE community about fixing this
+# but in the meantime we'll explicitly remove it here.
+#
+LICENSE_FLAGS_remove = "commercial"
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
new file mode 100644
index 00000000..646a2cea
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
@@ -0,0 +1,7 @@
+PACKAGECONFIG_append_amd = " faad"
+
+EXTRA_OECONF_remove_amd = " --disable-vdpau"
+EXTRA_OECONF_append_amd = " --enable-vdpau"
+
+# we do not support wayland
+PACKAGECONFIG_remove_amd = "wayland"
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_%.bbappend b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_%.bbappend
new file mode 100644
index 00000000..8ce382ed
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_%.bbappend
@@ -0,0 +1,3 @@
+PACKAGECONFIG_append_amd = " x264"
+
+FILES_${PN}-x264_append_amd = " ${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_%.bbappend b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_%.bbappend
new file mode 100644
index 00000000..08c41975
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_%.bbappend
@@ -0,0 +1 @@
+DEPENDS_append_amd = " libva-x11"
diff --git a/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-Added-NULL-pointer-check-for-failure-scenario.patch b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-Added-NULL-pointer-check-for-failure-scenario.patch
new file mode 100644
index 00000000..e86f2d4b
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-Added-NULL-pointer-check-for-failure-scenario.patch
@@ -0,0 +1,34 @@
+From 3eb67fb18c26f6cdf4daf7dc3f987b217315e984 Mon Sep 17 00:00:00 2001
+From: Indrajit Das <indrajit-kumar.das@amd.com>
+Date: Tue, 29 Mar 2016 22:51:13 +0530
+Subject: [PATCH] Added NULL pointer check for failure scenario
+
+---
+ src/base/omx_base_component.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/base/omx_base_component.c b/src/base/omx_base_component.c
+index 4156c37..86c6795 100644
+--- a/src/base/omx_base_component.c
++++ b/src/base/omx_base_component.c
+@@ -1631,12 +1631,17 @@ OSCL_EXPORT_REF OMX_ERRORTYPE omx_base_component_MessageHandler(OMX_COMPONENTTYP
+ }
+ }
+ else {
++ if(NULL != omx_base_component_Private->ports)
++ {
+ pPort=omx_base_component_Private->ports[message->messageParam];
+ if(omx_base_component_Private->state!=OMX_StateLoaded) {
+ err = pPort->FlushProcessingBuffers(pPort);
+ DEBUG(DEB_LEV_FULL_SEQ, "In %s: Port Flush completed for Comp %s\n",__func__,omx_base_component_Private->name);
+ }
+ err = pPort->Port_DisablePort(pPort);
++ }
++ else
++ printf("Skipping NULL pointer access\n");
+ }
+ /** This condition is added to pass the tests, it is not significant for the environment */
+ if (err != OMX_ErrorNone) {
+--
+2.1.4
+
diff --git a/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-test-components-fix-linking-issue.patch b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-test-components-fix-linking-issue.patch
new file mode 100644
index 00000000..4704c30a
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil/0001-test-components-fix-linking-issue.patch
@@ -0,0 +1,44 @@
+From a923a068ec8c44a88cfcac545d6d0cee074cbffa Mon Sep 17 00:00:00 2001
+From: Awais Belal <awais_belal@mentor.com>
+Date: Fri, 20 May 2016 16:09:39 +0500
+Subject: [PATCH] test/components: fix linking issue
+
+The test binaries pick up incorrect rpaths due to the wrong
+usage of linking of the libomxil-bellagio lib which
+is produced by the same package.
+We now use the libtool description file in the link
+command to correctly identify and pick up the libs
+without hardcoding.
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+Upstream-status: Pending
+---
+ test/components/audio_effects/Makefile.am | 4 ++--
+ test/components/resource_manager/Makefile.am | 4 ++--
+
+diff --git a/test/components/audio_effects/Makefile.am b/test/components/audio_effects/Makefile.am
+index b28b992..ee9cffa 100644
+--- a/test/components/audio_effects/Makefile.am
++++ b/test/components/audio_effects/Makefile.am
+@@ -1,6 +1,6 @@
+ check_PROGRAMS = omxvolcontroltest omxaudiomixertest
+
+-bellagio_LDADD = -lomxil-bellagio
++bellagio_LDADD = $(top_builddir)/src/libomxil-bellagio.la
+ common_CFLAGS = -I$(top_srcdir)/test/components/common -I$(includedir)
+
+ omxvolcontroltest_SOURCES = omxvolcontroltest.c omxvolcontroltest.h
+diff --git a/test/components/resource_manager/Makefile.am b/test/components/resource_manager/Makefile.am
+index fcc1d99..c24d32c 100644
+--- a/test/components/resource_manager/Makefile.am
++++ b/test/components/resource_manager/Makefile.am
+@@ -1,6 +1,6 @@
+ check_PROGRAMS = omxrmtest omxprioritytest
+
+-bellagio_LDADD = -lomxil-bellagio
++bellagio_LDADD = $(top_builddir)/src/libomxil-bellagio.la
+ common_CFLAGS = -I$(top_srcdir)/test/components/common -I$(includedir)
+
+ omxrmtest_SOURCES = omxrmtest.c omxrmtest.h
+--
+1.9.1
diff --git a/meta-amd-bsp/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend
new file mode 100644
index 00000000..aadab2cd
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/libomxil/libomxil_0.9.3.bbappend
@@ -0,0 +1,35 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_amd = " file://0001-test-components-fix-linking-issue.patch"
+
+RDEPENDS_${PN}_append_amd = " libomx-mesa"
+RDEPENDS_${PN}-test_append_amd = " bash"
+
+#
+# This package should not have commercial license flags.
+# There is discussion in the OE community about fixing this
+# but in the meantime we'll explicitly remove it here.
+#
+LICENSE_FLAGS_remove = "commercial"
+
+SRC_URI_append_amd = " file://0001-Added-NULL-pointer-check-for-failure-scenario.patch"
+
+#
+# The upstream sources expect that "make check" is run
+# after "make install" and we have to jump through some
+# extra hoops since we are cross building to avoid RPATH
+# issues.
+#
+do_install_append_amd () {
+ oe_runmake includedir=${D}${includedir} LDFLAGS="${LDFLAGS}" check
+ install test/components/audio_effects/omxvolcontroltest ${D}${bindir}
+ install test/components/audio_effects/omxaudiomixertest ${D}${bindir}
+ install test/components/resource_manager/omxrmtest ${D}${bindir}
+}
+
+PACKAGES_prepend_amd = "${PN}-test "
+FILES_${PN}-test_amd = "${bindir}/omxvolcontroltest ${bindir}/omxaudiomixertest ${bindir}/omxrmtest"
+
+pkg_postinst_ontarget_${PN}_amd () {
+ OMX_BELLAGIO_REGISTRY=${ROOT_HOME}/.omxregister ${bindir}/omxregister-bellagio -v
+}
diff --git a/meta-amd-bsp/recipes-multimedia/mpv/mpv_%.bbappend b/meta-amd-bsp/recipes-multimedia/mpv/mpv_%.bbappend
new file mode 100644
index 00000000..5b17e367
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/mpv/mpv_%.bbappend
@@ -0,0 +1,6 @@
+PACKAGECONFIG_append_amdx86 = " drm gbm vdpau vaapi"
+PACKAGECONFIG_remove_amdx86 = "lua"
+PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva libva-x11"
+
+EXTRA_OECONF_remove = "--disable-gl"
+EXTRA_OECONF_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--disable-gl', d)}"
diff --git a/meta-amd-bsp/recipes-multimedia/mpv/mpv_0.28.2.bb b/meta-amd-bsp/recipes-multimedia/mpv/mpv_0.28.2.bb
new file mode 100644
index 00000000..f6d981e8
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/mpv/mpv_0.28.2.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Open Source multimedia player"
+DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mpv.io/"
+DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \
+ libxscrnsaver libv4l libxinerama \
+"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=91f1cb870c1cc2d31351a4d2595441cb"
+
+# While this item does not require it, it depends on ffmpeg which does
+LICENSE_FLAGS = "commercial"
+
+SRC_URI = " \
+ https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \
+ http://www.freehackers.org/~tnagy/release/waf-1.9.8;name=waf;downloadfilename=waf;subdir=${BPN}-${PV} \
+"
+SRC_URI[mpv.md5sum] = "b6538dec29a2a69574f4e3a3d688fb8b"
+SRC_URI[mpv.sha256sum] = "aada14e025317b5b3e8e58ffaf7902e8b6e4ec347a93d25a7c10d3579426d795"
+SRC_URI[waf.md5sum] = "fbb646eafa430f959743010c85e269be"
+SRC_URI[waf.sha256sum] = "167dc42bab6d5bd823b798af195420319cb5c9b571e00db7d83df2a0fe1f4dbf"
+
+inherit waf pkgconfig pythonnative distro_features_check
+
+# Note: both lua and libass are required to get on-screen-display (controls)
+PACKAGECONFIG ??= " \
+ lua \
+ libass \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+"
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa"
+PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
+PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
+PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
+PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
+PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau, --disable-vdpau,libvdpau"
+PACKAGECONFIG[wayland] = "--enable-wayland, --disable-wayland,wayland libxkbcommon"
+
+SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
+
+EXTRA_OECONF = " \
+ --prefix=${prefix} \
+ --target=${SIMPLE_TARGET_SYS} \
+ --confdir=${sysconfdir} \
+ --datadir=${datadir} \
+ --disable-manpage-build \
+ --disable-gl \
+ --disable-libsmbclient \
+ --disable-encoding \
+ --disable-libbluray \
+ --disable-dvdread \
+ --disable-dvdnav \
+ --disable-cdda \
+ --disable-uchardet \
+ --disable-rubberband \
+ --disable-lcms2 \
+ --disable-vapoursynth \
+ --disable-vapoursynth-lazy \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+adjust_waf_perms() {
+ chmod +x ${S}/waf
+}
+
+do_patch[postfuncs] += "adjust_waf_perms"
+
+FILES_${PN} += "${datadir}/icons"
diff --git a/meta-amd-bsp/recipes-multimedia/packagegroups/packagegroup-multimedia-risky.bb b/meta-amd-bsp/recipes-multimedia/packagegroups/packagegroup-multimedia-risky.bb
new file mode 100644
index 00000000..deae2946
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/packagegroups/packagegroup-multimedia-risky.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "AMD risky multimedia packages"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+PR = "r0"
+
+inherit packagegroup
+
+RDEPENDS_${PN} += "\
+ faad2 \
+ libid3tag \
+ gstreamer1.0-plugins-bad-meta \
+ gstreamer1.0-plugins-ugly-meta \
+ gstreamer1.0-libav \
+"
+
+RDEPENDS_${PN}_append_r1000 = " ffmpeg"
+RDEPENDS_${PN}_append_v1000 = " ffmpeg"
diff --git a/meta-amd-bsp/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend b/meta-amd-bsp/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
new file mode 100644
index 00000000..0c850614
--- /dev/null
+++ b/meta-amd-bsp/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
@@ -0,0 +1 @@
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl libglu', '', d)}"