0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2025-04-01 10:08:52 +00:00

Fix recording/streaming in Lakka 4.x builds Few other minor fixes..... (#1617)

* Add Xvideo Extension Support

* Fix moonlight dependencies

* Fix retroarch recording/streaming.

* Fix melonds for tegra210 builds
This commit is contained in:
GavinDarkglider
2022-02-27 09:38:45 -08:00
committed by Tomáš Kelemen (vudiq)
parent 57ab31843d
commit f6f6a2a455
7 changed files with 1386 additions and 86 deletions
packages
lakka
libretro_cores
retroarch_base/retroarch
multimedia
x11/lib/libXv
projects/L4T/devices/Switch/patches/retroarch

@ -3,7 +3,7 @@ PKG_VERSION="20d2d77d219613a2809fa9afe9606f6cf3be2aa0"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/rock88/moonlight-libretro"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain ffmpeg opus cairo"
PKG_DEPENDS_TARGET="toolchain ffmpeg opus cairo curl"
PKG_LONGDESC="Moonlight-libretro is a port of Moonlight Game Streaming Project for RetroArch platform."
if [ "${PROJECT}" = "L4T" -a "${DEVICE}" = "Switch" ]; then

@ -0,0 +1,25 @@
diff -Naur melonds-1ad65728476d7b9594c4ff91a1ba60460a0a30e7/Makefile melonds-1ad65728476d7b9594c4ff91a1ba60460a0a30e7-2/Makefile
--- melonds-1ad65728476d7b9594c4ff91a1ba60460a0a30e7/Makefile 2022-02-23 05:16:02.377658636 +0100
+++ melonds-1ad65728476d7b9594c4ff91a1ba60460a0a30e7-2/Makefile 2022-02-23 05:27:31.772948432 +0100
@@ -240,7 +240,20 @@
HAVE_OPENGLES3 = 1
HAVE_THREADS = 1
JIT_ARCH = aarch64
-
+
+# Tegra210
+else ifeq ($(platform), tegra210)
+ EXT ?= so
+ CPUFLAGS += -march=armv8-a -mtune=cortex-a57 -mtp=soft -mcpu=cortex-a57+crc+fp+simd
+ HAVE_NEON = 1
+ TARGET := $(TARGET_NAME)_libretro.$(EXT)
+ fpic := -fPIC
+ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined
+ LIBS += -lpthread -lGL -lrt
+ HAVE_OPENGL = 1
+ HAVE_THREADS = 1
+ JIT_ARCH = aarch64
+
# Odroid C4
else ifeq ($(platform), odroidc4)
EXT ?= so

@ -66,7 +66,7 @@ if [ "${DISPLAYSERVER}" != "no" ]; then
fi
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_DEPENDS_TARGET+=" libXxf86vm"
PKG_DEPENDS_TARGET+=" libXxf86vm libXv"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-x11"
else
PKG_CONFIGURE_OPTS_TARGET+=" --disable-x11"
@ -134,6 +134,8 @@ pre_make_target() {
CFLAGS+=" -I${SYSROOT_PREFIX}/usr/include/interface/vcos/pthreads \
-I${SYSROOT_PREFIX}/usr/include/interface/vmcs_host/linux"
fi
CFLAGS=${CFLAGS/"-Os"/"-O2"}
CFLAGS=${CFLAGS/"-O3"/"-O2"}
}
make_target() {

@ -6,6 +6,9 @@ PKG_NAME="ffmpeg"
PKG_LICENSE="LGPLv2.1+"
PKG_SITE="https://ffmpeg.org"
PKG_DEPENDS_TARGET="toolchain zlib bzip2 gnutls speex"
if [ "${DISTRO}" = "Lakka" ]; then
PKG_DEPENDS_TARGET+=" libx264 lame rtmpdump"
fi
PKG_LONGDESC="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video."
PKG_BUILD_FLAGS="-gold"
@ -128,6 +131,109 @@ pre_configure_target() {
}
configure_target() {
CONFIG_OPTIONS_STANDARD_FFMPEG="--disable-static \
--enable-shared \
--enable-gpl \
--disable-version3 \
--enable-logging \
--disable-doc \
${PKG_FFMPEG_DEBUG} \
--enable-pic \
--enable-optimizations \
--disable-extra-warnings \
--disable-programs \
--enable-avdevice \
--enable-avcodec \
--enable-avformat \
--enable-swscale \
--enable-postproc \
--enable-avfilter \
--disable-devices \
--enable-pthreads \
--enable-network \
--enable-gnutls --disable-openssl \
--disable-gray \
--enable-swscale-alpha \
--disable-small \
--enable-dct \
--enable-fft \
--enable-mdct \
--enable-rdft \
--disable-crystalhd \
${PKG_FFMPEG_V4L2} \
${PKG_FFMPEG_VAAPI} \
${PKG_FFMPEG_VDPAU} \
${PKG_FFMPEG_RPI} \
--enable-runtime-cpudetect \
--disable-hardcoded-tables \
--disable-encoders \
--enable-encoder=ac3 \
--enable-encoder=aac \
--enable-encoder=wmav2 \
--enable-encoder=mjpeg \
--enable-encoder=png \
${PKG_FFMPEG_HWACCEL} \
--disable-muxers \
--enable-muxer=spdif \
--enable-muxer=adts \
--enable-muxer=asf \
--enable-muxer=ipod \
--enable-muxer=mpegts \
--enable-demuxers \
--enable-parsers \
--enable-bsfs \
--enable-protocol=http \
--disable-indevs \
--disable-outdevs \
--enable-filters \
--disable-avisynth \
--enable-bzlib \
--disable-lzma \
--disable-alsa \
--disable-frei0r \
--disable-libopencore-amrnb \
--disable-libopencore-amrwb \
--disable-libopencv \
--disable-libdc1394 \
--disable-libfreetype \
--disable-libgsm \
--disable-libmp3lame \
--disable-libopenjpeg \
--disable-librtmp \
${PKG_FFMPEG_AV1} \
--enable-libspeex \
--disable-libtheora \
--disable-libvo-amrwbenc \
--disable-libvorbis \
--disable-libvpx \
--disable-libx264 \
--disable-libxavs \
--disable-libxvid \
--enable-zlib \
--enable-asm \
--disable-altivec \
${PKG_FFMPEG_FPU} \
--disable-symver \
${PKG_FFMPEG_NVV4L2}"
if [ "${DISTRO}" = "Lakka" ]; then
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--disable-encoders "/"--enable-encoders "}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-encoder=ac3 "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-encoder=aac "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-encoder=wmav2 "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-encoder=mjpeg "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-encoder=png "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--disable-muxers "/"--enable-muxers "}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-muxer=spdif "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-muxer=adts "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-muxer=asf "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-muxer=ipod "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--enable-muxer=mpegts "/""}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--disable-libmp3lame "/"--enable-libmp3lame "}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--disable-librtmp "/"--enable-librtmp "}
CONFIG_OPTIONS_STANDARD_FFMPEG=${CONFIG_OPTIONS_STANDARD_FFMPEG/"--disable-libx264 "/"--enable-libx264 "}
fi
./configure --prefix="/usr" \
--cpu="${TARGET_CPU}" \
--arch="${TARGET_ARCH}" \
@ -147,91 +253,8 @@ configure_target() {
--extra-cflags="${CFLAGS} ${EXTRA_CFLAGS}" \
--extra-ldflags="${LDFLAGS}" \
--extra-libs="${PKG_FFMPEG_LIBS}" \
--disable-static \
--enable-shared \
--enable-gpl \
--disable-version3 \
--enable-logging \
--disable-doc \
${PKG_FFMPEG_DEBUG} \
--enable-pic \
--pkg-config="${TOOLCHAIN}/bin/pkg-config" \
--enable-optimizations \
--disable-extra-warnings \
--disable-programs \
--enable-avdevice \
--enable-avcodec \
--enable-avformat \
--enable-swscale \
--enable-postproc \
--enable-avfilter \
--disable-devices \
--enable-pthreads \
--enable-network \
--enable-gnutls --disable-openssl \
--disable-gray \
--enable-swscale-alpha \
--disable-small \
--enable-dct \
--enable-fft \
--enable-mdct \
--enable-rdft \
--disable-crystalhd \
${PKG_FFMPEG_V4L2} \
${PKG_FFMPEG_VAAPI} \
${PKG_FFMPEG_VDPAU} \
${PKG_FFMPEG_RPI} \
--enable-runtime-cpudetect \
--disable-hardcoded-tables \
--disable-encoders \
--enable-encoder=ac3 \
--enable-encoder=aac \
--enable-encoder=wmav2 \
--enable-encoder=mjpeg \
--enable-encoder=png \
${PKG_FFMPEG_HWACCEL} \
--disable-muxers \
--enable-muxer=spdif \
--enable-muxer=adts \
--enable-muxer=asf \
--enable-muxer=ipod \
--enable-muxer=mpegts \
--enable-demuxers \
--enable-parsers \
--enable-bsfs \
--enable-protocol=http \
--disable-indevs \
--disable-outdevs \
--enable-filters \
--disable-avisynth \
--enable-bzlib \
--disable-lzma \
--disable-alsa \
--disable-frei0r \
--disable-libopencore-amrnb \
--disable-libopencore-amrwb \
--disable-libopencv \
--disable-libdc1394 \
--disable-libfreetype \
--disable-libgsm \
--disable-libmp3lame \
--disable-libopenjpeg \
--disable-librtmp \
${PKG_FFMPEG_AV1} \
--enable-libspeex \
--disable-libtheora \
--disable-libvo-amrwbenc \
--disable-libvorbis \
--disable-libvpx \
--disable-libx264 \
--disable-libxavs \
--disable-libxvid \
--enable-zlib \
--enable-asm \
--disable-altivec \
${PKG_FFMPEG_FPU} \
--disable-symver \
${PKG_FFMPEG_NVV4L2}
${CONFIG_OPTIONS_STANDARD_FFMPEG}
}
post_makeinstall_target() {

@ -0,0 +1,15 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libx264"
PKG_VERSION="6d10612ab0007f8f60dd2399182efd696da3ffe4"
PKG_LICENSE="Videolan(?)"
PKG_SITE="https://code.videolan.org/videolan/x264"
PKG_URL="${PKG_SITE}".git
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Software based x264 decoder/encoder"
PKG_TOOLCHAIN="configure"
PKG_CONFIGURE_OPTS_TARGET="--cross-prefix=${TARGET_PREFIX} \
--sysroot=${SYSROOT_PREFIX} \
--disable-asm"

@ -0,0 +1,30 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libXv"
PKG_VERSION="1.0.11"
PKG_SHA256="11c7e47bed737c8fa01741d1dba4d39a523ded25dd5f3d47f516a0c62dbc450a"
PKG_LICENSE="OSS"
PKG_SITE="http://www.x.org/"
PKG_URL="https://github.com/freedesktop/xorg-libXv/archive/refs/tags/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain util-macros libX11 libXfixes libXext"
PKG_LONGDESC="LibXv provides an X video extension to the X protocol."
PKG_BUILD_FLAGS="+pic"
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \
--enable-malloc0returnsnull \
--disable-silent-rules \
--disable-docs \
--disable-specs \
--without-xmlto \
--without-fop \
--without-xsltproc \
--without-asciidoc \
--with-gnu-ld"
if [ "${PROJECT}" = "L4T" ]; then
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET/--disable-shared/--enable-shared}"
fi