diff --git a/packages/multimedia/rkmpp/package.mk b/packages/multimedia/rkmpp/package.mk
new file mode 100644
index 0000000000..ffffe4a2ec
--- /dev/null
+++ b/packages/multimedia/rkmpp/package.mk
@@ -0,0 +1,48 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2017-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="rkmpp"
+PKG_VERSION="60cbbff"
+PKG_SHA256="fa442a006c5ddf395649ea0ed088851ecf1e15c254f03fd99e84164590b40b4f"
+PKG_ARCH="arm aarch64"
+PKG_LICENSE="APL"
+PKG_SITE="https://github.com/rockchip-linux/mpp"
+PKG_URL="https://github.com/rockchip-linux/mpp/archive/$PKG_VERSION.tar.gz"
+PKG_SOURCE_DIR="mpp-$PKG_VERSION*"
+PKG_DEPENDS_TARGET="toolchain libdrm"
+PKG_SECTION="multimedia"
+PKG_SHORTDESC="rkmpp: Rockchip Media Process Platform (MPP) module"
+PKG_LONGDESC="rkmpp: Rockchip Media Process Platform (MPP) module"
+
+if [ "$UBOOT_SYSTEM" = "rk3328" -o "$UBOOT_SYSTEM" = "rk3399" ]; then
+ PKG_ENABLE_VP9D="ON"
+else
+ PKG_ENABLE_VP9D="OFF"
+fi
+
+PKG_CMAKE_OPTS_TARGET="-DRKPLATFORM=ON \
+ -DENABLE_AVSD=OFF \
+ -DENABLE_H263D=OFF \
+ -DENABLE_H264D=ON \
+ -DENABLE_H265D=ON \
+ -DENABLE_MPEG2D=ON \
+ -DENABLE_MPEG4D=ON \
+ -DENABLE_VP8D=ON \
+ -DENABLE_VP9D=$PKG_ENABLE_VP9D \
+ -DENABLE_JPEGD=OFF \
+ -DHAVE_DRM=ON"
diff --git a/packages/multimedia/rkmpp/patches/rkmpp-0001-fix-32-bit-userland.patch b/packages/multimedia/rkmpp/patches/rkmpp-0001-fix-32-bit-userland.patch
new file mode 100644
index 0000000000..e82a845f2d
--- /dev/null
+++ b/packages/multimedia/rkmpp/patches/rkmpp-0001-fix-32-bit-userland.patch
@@ -0,0 +1,39 @@
+From 376fb9c7c24c3b8a322cd583839d582cd7041d47 Mon Sep 17 00:00:00 2001
+From: Jakob Unterwurzacher
+Date: Mon, 29 May 2017 14:08:43 +0200
+Subject: [PATCH] [drm] fix 32-bit mmap issue on 64-bit kernels
+
+Running 32-bit userland on a 64-bit kernel resulted in the error:
+
+ mpp_drm: mmap failed: Invalid argument
+
+Both the pagesize_mask and the mmap call truncated the offset
+value to 32 bit. This patch fixes both issues.
+
+For details see https://github.com/rockchip-linux/kernel/issues/17
+---
+ osal/allocator/allocator_drm.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/osal/allocator/allocator_drm.c b/osal/allocator/allocator_drm.c
+index 3057671f..9a4e31fe 100644
+--- a/osal/allocator/allocator_drm.c
++++ b/osal/allocator/allocator_drm.c
+@@ -15,6 +15,8 @@
+ */
+
+ #define MODULE_TAG "mpp_drm"
++/* Enable 64-bit mmap also when compiling for 32 bit */
++#define _FILE_OFFSET_BITS 64
+
+ #include
+ #include
+@@ -67,7 +69,7 @@ static int drm_ioctl(int fd, int req, void *arg)
+
+ static void* drm_mmap(int fd, size_t len, int prot, int flags, loff_t offset)
+ {
+- static unsigned long pagesize_mask = 0;
++ static loff_t pagesize_mask = 0;
+ #if !defined(__gnu_linux__)
+ func_mmap64 fp_mmap64 = mpp_rt_get_mmap64();
+ #endif