diff --git a/config/path b/config/path index ecf0724613..79f566ede2 100644 --- a/config/path +++ b/config/path @@ -20,6 +20,10 @@ HOST_NAME=`$LOCAL_CC -dumpmachine` TARGET_NAME=$(echo $TARGET_SUBARCH | sed -e "s,-,,")-openelec-linux-gnu${TARGET_ABI} BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION +if [ "$OPENELEC_VERSION" = "devel" ] ; then + BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OS_VERSION-$OPENELEC_VERSION +fi + if [ -n "$BUILD_SUFFIX" ]; then BUILD=$BUILD-$BUILD_SUFFIX fi diff --git a/distributions/OpenELEC/options b/distributions/OpenELEC/options index fcf0a2fd94..6b27ee8442 100644 --- a/distributions/OpenELEC/options +++ b/distributions/OpenELEC/options @@ -2,7 +2,7 @@ DISTRONAME="OpenELEC" # short project description - DESCRIPTION="OpenELEC is a fast and userfriendly Kodi Entertainment Center distribution." + DESCRIPTION="OpenELEC is a fast and user friendly Kodi Entertainment Center distribution." # Welcome Message for e.g. SSH Server (up to 5 Lines) GREETING0="##############################################" diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index 34159ebd5b..c384663b6d 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -1,3 +1,9 @@ +6.0.1 +- update to vdr-plugin-dvbapi-0489e01 +- update to vdr-plugin-vnsiserver-a7b0670 +- update to vdr-satip-2.2.2 +- update to vdr-iptv-2.2.1 + 6.0.0 - rebuild for OpenELEC-6.0 - remove plugin 'control' diff --git a/packages/addons/service/multimedia/vdr-addon/package.mk b/packages/addons/service/multimedia/vdr-addon/package.mk index 19abed9e07..2b1214bbc2 100644 --- a/packages/addons/service/multimedia/vdr-addon/package.mk +++ b/packages/addons/service/multimedia/vdr-addon/package.mk @@ -19,7 +19,7 @@ PKG_NAME="vdr-addon" PKG_VERSION="6.0" -PKG_REV="0" +PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.openelec.tv" @@ -33,7 +33,7 @@ PKG_AUTORECONF="no" PKG_IS_ADDON="yes" PKG_ADDON_TYPE="xbmc.service" PKG_ADDON_PROVIDES="" -PKG_ADDON_REQUIRES="pvr.vdr.vnsi:0.0.0" +PKG_ADDON_REQUIRES="pvr.vdr.vnsi:0.0.0 script.config.vdr:0.0.0" PKG_ADDON_NAME="VDR PVR Backend" PKG_ADDON_REPOVERSION="6.0" diff --git a/packages/audio/dcadec/package.mk b/packages/audio/dcadec/package.mk index 8812ddca2e..299caceebd 100644 --- a/packages/audio/dcadec/package.mk +++ b/packages/audio/dcadec/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="dcadec" -PKG_VERSION="7b3b44c" +PKG_VERSION="37d8e68" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/databases/sqlite/package.mk b/packages/databases/sqlite/package.mk index bb1a13abbe..a5c8d4dab2 100644 --- a/packages/databases/sqlite/package.mk +++ b/packages/databases/sqlite/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="sqlite" -PKG_VERSION="autoconf-3081001" +PKG_VERSION="autoconf-3081002" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="PublicDomain" @@ -63,6 +63,10 @@ PKG_AUTORECONF="yes" # mmap_size pragma. CFLAGS="$CFLAGS -DSQLITE_TEMP_STORE=3 -DSQLITE_DEFAULT_MMAP_SIZE=268435456" +pre_make_target() { + # dont build parallel + MAKEFLAGS=-j1 +} PKG_CONFIGURE_OPTS_TARGET="--enable-static \ --disable-shared \ diff --git a/packages/debug/gdb/package.mk b/packages/debug/gdb/package.mk index 7f97d339de..9f0ffdbed0 100644 --- a/packages/debug/gdb/package.mk +++ b/packages/debug/gdb/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="gdb" -PKG_VERSION="7.9" +PKG_VERSION="7.9.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/devel/arm-mem/package.mk b/packages/devel/arm-mem/package.mk index 99d92af4ed..d0b069fb94 100644 --- a/packages/devel/arm-mem/package.mk +++ b/packages/devel/arm-mem/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="arm-mem" -PKG_VERSION="2e6f275" +PKG_VERSION="4418bb4" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="GPL" @@ -33,7 +33,17 @@ PKG_LONGDESC="arm-mem is a ARM-accelerated versions of selected functions from s PKG_IS_ADDON="no" PKG_AUTORECONF="no" -PKG_MAKE_OPTS_TARGET="libarmmem.so" +if [ "$TARGET_CPU" = "arm1176jzf-s" ]; then + ARMMEM_SO=libarmmem.so +elif [ "$TARGET_CPU" = "cortex-a7" ]; then + ARMMEM_SO=libarmmem-a7.so +fi + +PKG_MAKE_OPTS_TARGET="$ARMMEM_SO" + +pre_make_target() { + export CROSS_COMPILE=$TARGET_PREFIX +} make_init() { : # reuse make_target() @@ -41,17 +51,17 @@ make_init() { makeinstall_target() { mkdir -p $INSTALL/lib - cp -P libarmmem.so $INSTALL/lib + cp -P $ARMMEM_SO $INSTALL/lib mkdir -p $INSTALL/etc - echo "/lib/libarmmem.so" >> $INSTALL/etc/ld.so.preload + echo "/lib/$ARMMEM_SO" >> $INSTALL/etc/ld.so.preload } makeinstall_init() { mkdir -p $INSTALL/lib - cp -P libarmmem.so $INSTALL/lib + cp -P $ARMMEM_SO $INSTALL/lib mkdir -p $INSTALL/etc - echo "/lib/libarmmem.so" >> $INSTALL/etc/ld.so.preload + echo "/lib/$ARMMEM_SO" >> $INSTALL/etc/ld.so.preload } diff --git a/packages/devel/glib/package.mk b/packages/devel/glib/package.mk index 47947d2cd1..e341884a84 100644 --- a/packages/devel/glib/package.mk +++ b/packages/devel/glib/package.mk @@ -17,12 +17,12 @@ ################################################################################ PKG_NAME="glib" -PKG_VERSION="2.42.2" +PKG_VERSION="2.44.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" PKG_SITE="http://www.gtk.org/" -PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.42/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.44/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain zlib libffi pcre Python:host" PKG_PRIORITY="optional" PKG_SECTION="devel" diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index bf59e74b0a..0a81812292 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="b7bbd3d" +PKG_VERSION="70b0598" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/graphics/glfw/package.mk b/packages/graphics/glfw/package.mk new file mode 100644 index 0000000000..8aee223222 --- /dev/null +++ b/packages/graphics/glfw/package.mk @@ -0,0 +1,45 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="glfw" +PKG_VERSION="2.7.9" +PKG_REV="1" +PKG_ARCH="x86_64" +PKG_LICENSE="BSD" +PKG_SITE="http://glfw.org" +PKG_URL="$SOURCEFORGE_SRC/glfw/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain mesa glu" +PKG_PRIORITY="optional" +PKG_SECTION="graphics" +PKG_SHORTDESC="glfw:" +PKG_LONGDESC="glfw:" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +make_target() { + make x11 PREFIX=$SYSROOT_PREFIX/usr +} + +makeinstall_target() { + make x11-install PREFIX=$SYSROOT_PREFIX/usr +} diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index 04c51f4666..f7b3ee64f1 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -17,12 +17,13 @@ ################################################################################ PKG_NAME="mesa" -PKG_VERSION="10.5.5" +PKG_VERSION="10.6.0-rc1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.mesa3d.org/" PKG_URL="ftp://freedesktop.org/pub/mesa/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="ftp://freedesktop.org/pub/mesa/10.6.0/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain Python:host expat glproto dri2proto presentproto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11 systemd dri3proto libxshmfence" PKG_PRIORITY="optional" PKG_SECTION="graphics" @@ -66,7 +67,6 @@ PKG_CONFIGURE_OPTS_TARGET="CC_FOR_BUILD=$HOST_CC \ --enable-opengl \ --disable-gles1 \ --disable-gles2 \ - --disable-openvg \ --enable-dri \ --disable-dri3 \ --enable-glx \ diff --git a/packages/graphics/soil/package.mk b/packages/graphics/soil/package.mk new file mode 100644 index 0000000000..7bcda31609 --- /dev/null +++ b/packages/graphics/soil/package.mk @@ -0,0 +1,46 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="soil" +PKG_VERSION="1.07" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="PD" +PKG_SITE="http://www.lonesock.net/soil.html" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="mesa" +PKG_PRIORITY="optional" +PKG_SECTION="graphics" +PKG_SHORTDESC="libsoil: Simple OpenGL Image Library" +PKG_LONGDESC="libsoil: Simple OpenGL Image Library" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +make_target() { + mkdir projects/makefile/obj + make CXX="$CXX" CC="$CC" LD="$CC" AR="$AR" CFLAGS="-fPIC -O2" CXXFLAGS="-fPIC -O2" -C projects/makefile +} + +makeinstall_target() { + mkdir -p $SYSROOT_PREFIX/usr/lib + cp -PR lib/libSOIL.a $SYSROOT_PREFIX/usr/lib + + mkdir -p $SYSROOT_PREFIX/usr/include/SOIL + cp -P src/SOIL.h $SYSROOT_PREFIX/usr/include/SOIL +} diff --git a/packages/graphics/vsxu/package.mk b/packages/graphics/vsxu/package.mk new file mode 100644 index 0000000000..a68a942f77 --- /dev/null +++ b/packages/graphics/vsxu/package.mk @@ -0,0 +1,59 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="vsxu" +PKG_VERSION="0.5.1" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.vsxu.com" +# repackaged from https://github.com/vovoid/vsxu/archive/$PKG_VERSION.tar.gz +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain glew glfw" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="vsxu:" +PKG_LONGDESC="vsxu:" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DCMAKE_INSTALL_LIBDIR_NOARCH=/usr/lib \ + -DCMAKE_INSTALL_PREFIX_TOOLCHAIN=$SYSROOT_PREFIX/usr \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + -DBUILD_SHARED_LIBS=0 \ + -DVSXU_STATIC=1 \ + -DCMAKE_POSITION_INDEPENDENT_CODE=1 \ + -DCMAKE_CXX_FLAGS="-I$SYSROOT_PREFIX/usr/include/freetype2" \ + .. +} + +post_makeinstall_target() { + mkdir -p $SYSROOT_PREFIX/usr/lib/vsxu + cp -PR $INSTALL/usr/lib/* $SYSROOT_PREFIX/usr/lib + + mkdir -p $SYSROOT_PREFIX/usr/include/ + cp -RP $INSTALL/usr/include/* $SYSROOT_PREFIX/usr/include + + mkdir -p $SYSROOT_PREFIX/usr/share/ + cp -RP $INSTALL/usr/share/vsxu $SYSROOT_PREFIX/usr/share +} diff --git a/packages/graphics/vsxu/patches/vsxu-01-fix-order.patch b/packages/graphics/vsxu/patches/vsxu-01-fix-order.patch new file mode 100644 index 0000000000..8709295fc5 --- /dev/null +++ b/packages/graphics/vsxu/patches/vsxu-01-fix-order.patch @@ -0,0 +1,75 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1e61faf..435cf29 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -389,10 +389,11 @@ add_definitions(-DVSXU_INSTALL_LIB_DIR="${VSXU_INSTALL_LIB_DIR}") + ################################################################################ + # VSXU LIBRARIES ############################################################### + ################################################################################ +-add_subdirectory(engine) + add_subdirectory(engine_audiovisual) + add_subdirectory(engine_graphics) ++# order matters - need to add plugins before engine to create static glue + add_subdirectory(plugins) ++add_subdirectory(engine) + add_subdirectory(widget) + + ################################################################################ +--- vsxu-0.5.1/CMakeLists.txt.orig 2015-05-12 14:43:04.427596836 +0200 ++++ vsxu-0.5.1/CMakeLists.txt 2015-05-12 14:43:13.995596648 +0200 +@@ -56,27 +56,6 @@ + endif() + + ################################################################################ +-# The pkg-config file +-################################################################################ +-IF (UNIX OR VSXU_WINDOWS_LIB_BUILD) +- if (VSXU_STATIC EQUAL 1 AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugins/static_factory_pkgconfig_libs") +- file (STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/plugins/static_factory_pkgconfig_libs" VSXU_PLUGIN_PKGCONFIG_LIBS) +- CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libvsxu.pc.in.static +- ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc +- @ONLY) +- +- else() +- CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libvsxu.pc.in.dynamic +- ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc +- @ONLY) +- endif() +- +- INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc +- DESTINATION ${VSXU_INSTALL_LIB_DIR}/pkgconfig) +-ENDIF() +- +- +-################################################################################ + # CPACK OPTIONS ################################################################ + ################################################################################ + SET(CPACK_PACKAGE_NAME "vsxu") +@@ -417,6 +396,27 @@ + add_subdirectory(tools/vsxl) + endif(UNIX) + ++################################################################################ ++# The pkg-config file ++################################################################################ ++IF (UNIX OR VSXU_WINDOWS_LIB_BUILD) ++ if (VSXU_STATIC EQUAL 1 AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugins/static_factory_pkgconfig_libs") ++ file (STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/plugins/static_factory_pkgconfig_libs" VSXU_PLUGIN_PKGCONFIG_LIBS) ++ CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libvsxu.pc.in.static ++ ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc ++ @ONLY) ++ ++ else() ++ CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libvsxu.pc.in.dynamic ++ ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc ++ @ONLY) ++ endif() ++ ++ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libvsxu.pc ++ DESTINATION ${VSXU_INSTALL_LIB_DIR}/pkgconfig) ++ENDIF() ++ ++ + + + diff --git a/packages/graphics/vsxu/patches/vsxu-02-fix-glfw.patch b/packages/graphics/vsxu/patches/vsxu-02-fix-glfw.patch new file mode 100644 index 0000000000..6df9c7bb0d --- /dev/null +++ b/packages/graphics/vsxu/patches/vsxu-02-fix-glfw.patch @@ -0,0 +1,27 @@ +--- vsxu-0.5.1/cmake/modules/FindGLFW.cmake.orig 2015-05-12 14:22:23.123621176 +0200 ++++ vsxu-0.5.1/cmake/modules/FindGLFW.cmake 2015-05-12 14:23:14.863620161 +0200 +@@ -19,6 +19,14 @@ + # TODO: + # Allow the user to select to link to a shared library or to a static library. + ++find_package(PkgConfig) ++ ++pkg_check_modules(GLFW libglfw) ++set(GLFW_INCLUDE_PATH ${GLFW_INCLUDE_DIRS}) ++set(GLFW_LIBRARY ${GLFW_LIBRARIES} -lXrandr) ++ ++if(NOT GLFW_FOUND) ++ + #Search for the include file... + FIND_PATH(GLFW_INCLUDE_PATH GL/glfw.h DOC "Path to GLFW include directory." + HINTS +@@ -45,5 +53,7 @@ + ${GLFW_ROOT_DIR}/lib-msvc100/release # added by ptr + ) + ++endif() ++ + INCLUDE(FindPackageHandleStandardArgs) +-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW DEFAULT_MSG GLFW_LIBRARY GLFW_INCLUDE_PATH) +\ No newline at end of file ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW DEFAULT_MSG GLFW_LIBRARY GLFW_INCLUDE_PATH) diff --git a/packages/graphics/vsxu/patches/vsxu-03-fix-exr.patch b/packages/graphics/vsxu/patches/vsxu-03-fix-exr.patch new file mode 100644 index 0000000000..34530a5f83 --- /dev/null +++ b/packages/graphics/vsxu/patches/vsxu-03-fix-exr.patch @@ -0,0 +1,11 @@ +--- vsxu-0.5.1/plugins/src/texture/CMakeLists.txt.orig 2015-05-12 14:04:42.659641970 +0200 ++++ vsxu-0.5.1/plugins/src/texture/CMakeLists.txt 2015-05-12 14:05:43.315640780 +0200 +@@ -8,7 +8,7 @@ + + message("configuring vsxu module " ${module_id}) + +-include_directories(/usr/include/OpenEXR) ++#include_directories(/usr/include/OpenEXR) + + # set defines for MOD_CM, MOD_DM, MOD_NM + CREATE_STATIC_GLUE(${module_id}) diff --git a/packages/graphics/vsxu/patches/vsxu-04-fix-freetype.patch b/packages/graphics/vsxu/patches/vsxu-04-fix-freetype.patch new file mode 100644 index 0000000000..36213245cf --- /dev/null +++ b/packages/graphics/vsxu/patches/vsxu-04-fix-freetype.patch @@ -0,0 +1,11 @@ +--- vsxu-0.5.1/plugins/src/render.text/CMakeLists.txt.orig 2015-05-12 14:07:20.367638877 +0200 ++++ vsxu-0.5.1/plugins/src/render.text/CMakeLists.txt 2015-05-12 14:07:24.371638799 +0200 +@@ -20,7 +20,7 @@ + endif(WIN32) + + if(UNIX) +- include_directories(/usr/include/freetype2) ++ # include_directories(/usr/include/freetype2) + endif(UNIX) + + # include common diff --git a/packages/lang/llvm/package.mk b/packages/lang/llvm/package.mk index 3530e3e13d..45fa6be117 100644 --- a/packages/lang/llvm/package.mk +++ b/packages/lang/llvm/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="llvm" -PKG_VERSION="3.6.0" +PKG_VERSION="3.6.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux-drivers/RTL8188EU/package.mk b/packages/linux-drivers/RTL8188EU/package.mk index f1071b1f8f..48dc54a9c3 100644 --- a/packages/linux-drivers/RTL8188EU/package.mk +++ b/packages/linux-drivers/RTL8188EU/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="RTL8188EU" -PKG_VERSION="fcc9034" +PKG_VERSION="3091828" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-gcc-4.9.patch b/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-gcc-4.9.patch deleted file mode 100644 index 624e8dd9aa..0000000000 --- a/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-gcc-4.9.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur RTL8188EU-fcc9034/os_dep/usb_intf.c RTL8188EU-fcc9034.patch/os_dep/usb_intf.c ---- RTL8188EU-fcc9034/os_dep/usb_intf.c 2014-03-25 15:05:52.000000000 +0100 -+++ RTL8188EU-fcc9034.patch/os_dep/usb_intf.c 2014-04-28 17:42:46.059538024 +0200 -@@ -865,7 +865,6 @@ - RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("+rtw_drv_entry\n")); - - DBG_88E(DRV_NAME " driver version=%s\n", DRIVERVERSION); -- DBG_88E("build time: %s %s\n", __DATE__, __TIME__); - - rtw_suspend_lock_init(); - diff --git a/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-kernel-4.0.patch b/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-kernel-4.0.patch deleted file mode 100644 index 937916d45c..0000000000 --- a/packages/linux-drivers/RTL8188EU/patches/RTL8188EU-kernel-4.0.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naur RTL8188EU-fcc9034/os_dep/rtw_android.c RTL8188EU-fcc9034.patch/os_dep/rtw_android.c ---- RTL8188EU-fcc9034/os_dep/rtw_android.c 2014-03-25 15:05:52.000000000 +0100 -+++ RTL8188EU-fcc9034.patch/os_dep/rtw_android.c 2015-04-04 20:44:25.386732963 +0200 -@@ -20,6 +20,7 @@ - - #include - #include -+#include - - #include - #include -@@ -80,8 +81,13 @@ - { - int cmd_num; - for (cmd_num = 0; cmd_num < ANDROID_WIFI_CMD_MAX; cmd_num++) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) -+ if (!strncasecmp(cmdstr , android_wifi_cmd_str[cmd_num], -+ strlen(android_wifi_cmd_str[cmd_num]))) -+#else - if (0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], - strlen(android_wifi_cmd_str[cmd_num]))) -+#endif - break; - return cmd_num; - } diff --git a/packages/linux-firmware/firmware-imx/package.mk b/packages/linux-firmware/firmware-imx/package.mk index 42df556e7f..d3eb448abe 100644 --- a/packages/linux-firmware/firmware-imx/package.mk +++ b/packages/linux-firmware/firmware-imx/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="firmware-imx" -PKG_VERSION="3.10.17-1.0.0" +PKG_VERSION="3.14.28-1.0.0" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="other" diff --git a/packages/linux/package.mk b/packages/linux/package.mk index beb4790b05..e8592a4efb 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -17,20 +17,6 @@ ################################################################################ PKG_NAME="linux" -case "$LINUX" in - amlogic) - PKG_VERSION="amlogic-3.10-a9cef51" - PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" - ;; - imx6) - PKG_VERSION="cuboxi-3.14-ea83bda" - PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" - ;; - *) - PKG_VERSION="4.0.2" - PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" - ;; -esac PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" @@ -43,6 +29,21 @@ PKG_PRIORITY="optional" PKG_SECTION="linux" PKG_SHORTDESC="linux26: The Linux kernel 2.6 precompiled kernel binary image and modules" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." +case "$LINUX" in + amlogic) + PKG_VERSION="amlogic-3.10-a9cef51" + PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" + ;; + imx6) + PKG_VERSION="cuboxi-3.14-ea83bda" + PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan" + ;; + *) + PKG_VERSION="4.0.4" + PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" + ;; +esac PKG_IS_ADDON="no" PKG_AUTORECONF="no" diff --git a/packages/linux/patches/4.0.2/linux-003-no_dev_console.patch b/packages/linux/patches/4.0.4/linux-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-003-no_dev_console.patch rename to packages/linux/patches/4.0.4/linux-003-no_dev_console.patch diff --git a/packages/linux/patches/4.0.2/linux-051-ouya_controller_support.patch b/packages/linux/patches/4.0.4/linux-051-ouya_controller_support.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-051-ouya_controller_support.patch rename to packages/linux/patches/4.0.4/linux-051-ouya_controller_support.patch diff --git a/packages/linux/patches/4.0.2/linux-052-XBOX_remote_support.patch b/packages/linux/patches/4.0.4/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/4.0.4/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/4.0.2/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/4.0.4/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/4.0.4/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/4.0.2/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/4.0.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/4.0.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/4.0.2/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch b/packages/linux/patches/4.0.4/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch rename to packages/linux/patches/4.0.4/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.0.2/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/4.0.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/4.0.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/4.0.2/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch b/packages/linux/patches/4.0.4/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch rename to packages/linux/patches/4.0.4/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.0.2/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/4.0.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/4.0.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/4.0.2/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/4.0.4/linux-062-imon_pad_ignore_diagonal.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-062-imon_pad_ignore_diagonal.patch rename to packages/linux/patches/4.0.4/linux-062-imon_pad_ignore_diagonal.patch diff --git a/packages/linux/patches/4.0.2/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/4.0.4/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/4.0.4/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/4.0.2/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/4.0.4/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/4.0.4/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/4.0.2/linux-221-ngene-octopus.patch b/packages/linux/patches/4.0.4/linux-221-ngene-octopus.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-221-ngene-octopus.patch rename to packages/linux/patches/4.0.4/linux-221-ngene-octopus.patch diff --git a/packages/linux/patches/4.0.2/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/4.0.4/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/4.0.4/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/4.0.2/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch b/packages/linux/patches/4.0.4/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch rename to packages/linux/patches/4.0.4/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch diff --git a/packages/linux/patches/4.0.2/linux-224-STK1160-addFramescaling.patch b/packages/linux/patches/4.0.4/linux-224-STK1160-addFramescaling.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-224-STK1160-addFramescaling.patch rename to packages/linux/patches/4.0.4/linux-224-STK1160-addFramescaling.patch diff --git a/packages/linux/patches/4.0.2/linux-227-ds3000-invalid-symbol-rate.patch b/packages/linux/patches/4.0.4/linux-227-ds3000-invalid-symbol-rate.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-227-ds3000-invalid-symbol-rate.patch rename to packages/linux/patches/4.0.4/linux-227-ds3000-invalid-symbol-rate.patch diff --git a/packages/linux/patches/4.0.2/linux-228-technotrend-s2-4600.patch b/packages/linux/patches/4.0.4/linux-228-technotrend-s2-4600.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-228-technotrend-s2-4600.patch rename to packages/linux/patches/4.0.4/linux-228-technotrend-s2-4600.patch diff --git a/packages/linux/patches/4.0.2/linux-229-hauppauge-hvr-955q.patch b/packages/linux/patches/4.0.4/linux-229-hauppauge-hvr-955q.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-229-hauppauge-hvr-955q.patch rename to packages/linux/patches/4.0.4/linux-229-hauppauge-hvr-955q.patch diff --git a/packages/linux/patches/4.0.2/linux-706-Sitecom-N300.patch b/packages/linux/patches/4.0.4/linux-706-Sitecom-N300.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-706-Sitecom-N300.patch rename to packages/linux/patches/4.0.4/linux-706-Sitecom-N300.patch diff --git a/packages/linux/patches/4.0.2/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/4.0.4/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/4.0.4/linux-950-saa716x_PCIe_interface_chipset.patch diff --git a/packages/linux/patches/4.0.2/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/4.0.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/4.0.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/4.0.2/linux-995-CX24120-13Z_frontend.patch b/packages/linux/patches/4.0.4/linux-995-CX24120-13Z_frontend.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-995-CX24120-13Z_frontend.patch rename to packages/linux/patches/4.0.4/linux-995-CX24120-13Z_frontend.patch diff --git a/packages/linux/patches/4.0.2/linux-999-i915-use-legacy-turbo.patch b/packages/linux/patches/4.0.4/linux-999-i915-use-legacy-turbo.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-999-i915-use-legacy-turbo.patch rename to packages/linux/patches/4.0.4/linux-999-i915-use-legacy-turbo.patch diff --git a/packages/linux/patches/4.0.2/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/4.0.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch rename to packages/linux/patches/4.0.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/patches/4.0.2/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch b/packages/linux/patches/4.0.4/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch rename to packages/linux/patches/4.0.4/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch diff --git a/packages/linux/patches/4.0.2/linux-999.10-amd-limited-color-range.patch b/packages/linux/patches/4.0.4/linux-999.10-amd-limited-color-range.patch similarity index 100% rename from packages/linux/patches/4.0.2/linux-999.10-amd-limited-color-range.patch rename to packages/linux/patches/4.0.4/linux-999.10-amd-limited-color-range.patch diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.modplug/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.modplug/package.mk index b96d192961..5c2521b4c2 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.modplug/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.modplug/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.modplug" -PKG_VERSION="c7e8ca8" +PKG_VERSION="2de539b" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.nosefart/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.nosefart/package.mk index 95667c8c50..572563be05 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.nosefart/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.nosefart/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.nosefart" -PKG_VERSION="c77e5a1" +PKG_VERSION="a49ba6e" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.qsf/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.qsf/package.mk index 481eefb5d8..9603238e2d 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.qsf/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.qsf/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.qsf" -PKG_VERSION="294fd39" +PKG_VERSION="6aaf860" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.sidplay/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.sidplay/package.mk index eae00217b2..a0cf9dc34e 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.sidplay/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.sidplay/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.sidplay" -PKG_VERSION="f2e7d98" +PKG_VERSION="6568676" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.snesapu/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.snesapu/package.mk index 39981517c4..26034697d4 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.snesapu/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.snesapu/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.snesapu" -PKG_VERSION="9fc775b" +PKG_VERSION="2bd1e34" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.stsound/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.stsound/package.mk index 6117e4f92a..db01c778a1 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.stsound/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.stsound/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.stsound" -PKG_VERSION="775c858" +PKG_VERSION="640b049" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.timidity/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.timidity/package.mk index 5035ef01ba..66b4d1b32b 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.timidity/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.timidity/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.timidity" -PKG_VERSION="bf9ff93" +PKG_VERSION="7f079c1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/audiodecoder.vgmstream/package.mk b/packages/mediacenter/kodi-binary-addons/audiodecoder.vgmstream/package.mk index 8b56777dba..fad97539ab 100644 --- a/packages/mediacenter/kodi-binary-addons/audiodecoder.vgmstream/package.mk +++ b/packages/mediacenter/kodi-binary-addons/audiodecoder.vgmstream/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="audiodecoder.vgmstream" -PKG_VERSION="0c3a51a" +PKG_VERSION="715c580" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.argustv/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.argustv/package.mk index b67c83e125..9f02ac93d6 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.argustv/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.argustv/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.argustv" -PKG_VERSION="96ee875" +PKG_VERSION="fa84ac2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.demo/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.demo/package.mk index ea8f6ed4b4..3500525cad 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.demo/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.demo/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.demo" -PKG_VERSION="b4b7de1" +PKG_VERSION="34d60a1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk index 5e9fe8ce6f..3b619b2296 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.dvblink" -PKG_VERSION="5d505b8" +PKG_VERSION="7f51543" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.dvbviewer/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.dvbviewer/package.mk index 2fc2c679bf..0d69f59b45 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.dvbviewer/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.dvbviewer/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.dvbviewer" -PKG_VERSION="bd2c01f" +PKG_VERSION="3dd826e" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.filmon/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.filmon/package.mk index c5839686b3..3d91557518 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.filmon/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.filmon/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.filmon" -PKG_VERSION="413fe9e" +PKG_VERSION="8c02f43" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.hts/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.hts/package.mk index 0f2130fb58..e8a7ee3da0 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.hts/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.hts/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.hts" -PKG_VERSION="4bf1a97" +PKG_VERSION="d038dfc" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk index 36d299ae9d..ab7b862709 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.iptvsimple" -PKG_VERSION="a2e6c6f" +PKG_VERSION="27c4221" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk index 00ba7f7671..b1b40506a4 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.mediaportal.tvserver" -PKG_VERSION="6f8ca82" +PKG_VERSION="d9bfdee" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk index 66da665c4d..f47d40e0cc 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.mythtv" -PKG_VERSION="ef9cf41" +PKG_VERSION="c810489" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk index f23623d568..ed77b65a1e 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.nextpvr" -PKG_VERSION="1ecbf87" +PKG_VERSION="ecc6598" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.njoy/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.njoy/package.mk index be8c6c4d11..635390716c 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.njoy/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.njoy/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.njoy" -PKG_VERSION="fcd6294" +PKG_VERSION="2733f34" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.pctv/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.pctv/package.mk index 739cedc260..12b992c4cc 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.pctv/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.pctv/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.pctv" -PKG_VERSION="0a0924e" +PKG_VERSION="c240226" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk index d7d07882c9..dd99ed46fd 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.stalker" -PKG_VERSION="118b2ef" +PKG_VERSION="2d65b21" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.vbox/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.vbox/package.mk index 7f96d7f76e..3c208aeada 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.vbox/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.vbox/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.vbox" -PKG_VERSION="4449aa5" +PKG_VERSION="375eab3" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk index 5d15d0d1dd..004c24f1e4 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.vdr.vnsi" -PKG_VERSION="3a28e39" +PKG_VERSION="244b893" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.vuplus/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.vuplus/package.mk index 1cf74f8739..568c052cc7 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.vuplus/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.vuplus/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.vuplus" -PKG_VERSION="d6abad3" +PKG_VERSION="d727091" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.wmc/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.wmc/package.mk index 938c18d2b0..3b4e96c9af 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.wmc/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.wmc/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.wmc" -PKG_VERSION="37b4b29" +PKG_VERSION="295b216" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.asteroids/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.asteroids/package.mk new file mode 100644 index 0000000000..f39aaab190 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.asteroids/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.asteroids" +PKG_VERSION="09d7693" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.asteroids" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.asteroids" +PKG_LONGDESC="screensaver.asteroids" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.biogenesis/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.biogenesis/package.mk new file mode 100644 index 0000000000..5725a7d115 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.biogenesis/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.biogenesis" +PKG_VERSION="7d91c2a" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.biogenesis" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.biogenesis" +PKG_LONGDESC="screensaver.biogenesis" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.greynetic/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.greynetic/package.mk new file mode 100644 index 0000000000..41e8f00ce1 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.greynetic/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.greynetic" +PKG_VERSION="c27a2a5" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.greynetic" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.greynetic" +PKG_LONGDESC="screensaver.greynetic" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.matrixtrails/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.matrixtrails/package.mk new file mode 100644 index 0000000000..2b29109e65 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.matrixtrails/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.matrixtrails" +PKG_VERSION="ae13b62" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.matrixtrails" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform soil" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.matrixtrails" +PKG_LONGDESC="screensaver.matrixtrails" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.pingpong/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.pingpong/package.mk new file mode 100644 index 0000000000..13160bef68 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.pingpong/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.pingpong" +PKG_VERSION="8562fec" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.pingpong" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.pingpong" +PKG_LONGDESC="screensaver.pingpong" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.pyro/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.pyro/package.mk new file mode 100644 index 0000000000..5f9af83ae7 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.pyro/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.pyro" +PKG_VERSION="3e050db" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.pyro" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.pyro" +PKG_LONGDESC="screensaver.pyro" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.stars/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.stars/package.mk new file mode 100644 index 0000000000..d85727c930 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/screensaver.stars/package.mk @@ -0,0 +1,52 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="screensaver.stars" +PKG_VERSION="79a6364" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/screensaver.stars" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="screensaver.stars" +PKG_LONGDESC="screensaver.stars" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.ui.screensaver" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/visualization.vsxu/package.mk b/packages/mediacenter/kodi-binary-addons/visualization.vsxu/package.mk new file mode 100644 index 0000000000..dcb98f930c --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/visualization.vsxu/package.mk @@ -0,0 +1,59 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="visualization.vsxu" +PKG_VERSION="059e5e0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/visualization.vsxu" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform vsxu" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="visualization.vsxu" +PKG_LONGDESC="visualization.vsxu" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.player.musicviz" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +# dont build and upload for repos for now +# TODO fix +# undefined symbol: mt_32_to_double +# vis.vsxu also not linked against libGL ? + +exit 0 + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-platform/package.mk b/packages/mediacenter/kodi-platform/package.mk index e512712fd9..f5b3d5a8fc 100644 --- a/packages/mediacenter/kodi-platform/package.mk +++ b/packages/mediacenter/kodi-platform/package.mk @@ -17,13 +17,13 @@ ################################################################################ PKG_NAME="kodi-platform" -PKG_VERSION="48bdd985" +PKG_VERSION="054a42f66" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS_TARGET="toolchain tinyxml kodi" +PKG_DEPENDS_TARGET="toolchain tinyxml kodi platform" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="kodi-platform:" diff --git a/packages/mediacenter/kodi-theme-Confluence/package.mk b/packages/mediacenter/kodi-theme-Confluence/package.mk index 16b0d9c18f..b1d2bb4167 100644 --- a/packages/mediacenter/kodi-theme-Confluence/package.mk +++ b/packages/mediacenter/kodi-theme-Confluence/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi-theme-Confluence" -PKG_VERSION="15.0-beta2-6e5ede3" +PKG_VERSION="15.0-beta2-c34fc22" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 14d905f566..42db06f353 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi" -PKG_VERSION="15.0-beta2-6e5ede3" +PKG_VERSION="15.0-beta2-c34fc22" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch b/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch deleted file mode 100644 index e9893f0328..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 448c71da440d4504432ac513e8493e27b1f06915 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 23 Mar 2015 22:33:04 +0000 -Subject: [PATCH] [dcadec] Add settings option to enable libdcadec - ---- - addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ - system/settings/rbp.xml | 5 +++++ - system/settings/rbp2.xml | 3 +++ - xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 6 +++++- - xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 10 ++++++++++ - xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 6 +++++- - 7 files changed, 39 insertions(+), 4 deletions(-) - -diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 1dde154..f641439 100644 ---- a/addons/resource.language.en_gb/resources/strings.po -+++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16689,3 +16689,13 @@ msgstr "" - msgctxt "#38103" - msgid "Extract thumbnails from video files" - msgstr "" -+ -+#: system/settings/rbp.xml -+msgctxt "#38120" -+msgid "Support 8 channel DTS HD audio" -+msgstr "" -+ -+#: system/settings/rbp.xml -+msgctxt "#38121" -+msgid "This option supports 8 channel DTS HD but may use more CPU " -+msgstr "" -diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml ---- a/system/settings/rbp.xml -+++ b/system/settings/rbp.xml -@@ -27,6 +27,13 @@ - - - -+ -+ -+ 2 -+ false -+ -+ -+ - - - -diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml -index 8cc8f19..197e255 100644 ---- a/system/settings/rbp2.xml -+++ b/system/settings/rbp2.xml -@@ -6,6 +6,9 @@ - - false - -+ -+ true -+ - - - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -index 991449b..135bb43 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -@@ -33,6 +33,7 @@ extern "C" { - #include "settings/Settings.h" - #include "cores/AudioEngine/Utils/AEUtil.h" - #endif -+#include "settings/Settings.h" - - CDVDAudioCodecFFmpeg::CDVDAudioCodecFFmpeg() : CDVDAudioCodec() - { -@@ -57,7 +58,10 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options - AVCodec* pCodec; - m_bOpenedCodec = false; - -- pCodec = avcodec_find_decoder(hints.codec); -+ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ pCodec = avcodec_find_decoder_by_name("libdcadec"); -+ else -+ pCodec = avcodec_find_decoder(hints.codec); - if (!pCodec) - { - CLog::Log(LOGDEBUG,"CDVDAudioCodecFFmpeg::Open() Unable to find codec %d", hints.codec); -diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index f9b3232..1f8e15e 100644 ---- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -439,6 +439,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein - - if (m_streaminfo) - { -+ if (CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ { -+ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) -+ { -+ AVStream *st = m_pFormatContext->streams[i]; -+ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && st->codec->codec_id == AV_CODEC_ID_DTS) -+ st->codec->codec = avcodec_find_decoder_by_name("libdcadec"); -+ } -+ } -+ - /* to speed up dvd switches, only analyse very short */ - if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD)) - av_opt_set_int(m_pFormatContext, "analyzeduration", 500000, 0); -diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -index 1a920f7..093864d 100644 ---- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -+++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -@@ -26,6 +26,7 @@ - - #include "cores/AudioEngine/Utils/AEUtil.h" - #include "cores/AudioEngine/AEFactory.h" -+#include "settings/Settings.h" - - // the size of the audio_render output port buffers - #define AUDIO_DECODE_OUTPUT_BUFFER (32*1024) -@@ -65,7 +66,10 @@ bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) - AVCodec* pCodec; - m_bOpenedCodec = false; - -- pCodec = avcodec_find_decoder(hints.codec); -+ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ pCodec = avcodec_find_decoder_by_name("libdcadec"); -+ else -+ pCodec = avcodec_find_decoder(hints.codec); - if (!pCodec) - { - CLog::Log(LOGDEBUG,"COMXAudioCodecOMX::Open() Unable to find codec %d", hints.codec); diff --git a/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch b/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch new file mode 100644 index 0000000000..b70e0351bd --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch @@ -0,0 +1,840 @@ +From 17db313334d564b34e00154e6d3d5cf6163c13fb Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 23 Mar 2015 17:12:31 +0000 +Subject: [PATCH 1/6] [ffmpeg] Add support for libdcadec + +--- + Makefile.in | 2 +- + configure.ac | 4 + + tools/depends/target/Makefile | 4 +- + .../0001-avcodec-add-libdcadec-decoder.patch | 280 +++++++++++++++++++++ + .../0002-avcodec-Fix-libdcadec-include-dir.patch | 40 +++ + ...vcodec-add-profile-define-for-DTS-Express.patch | 25 ++ + tools/depends/target/ffmpeg/Makefile | 7 +- + tools/depends/target/libdcadec/Makefile | 38 +++ + 8 files changed, 396 insertions(+), 4 deletions(-) + create mode 100644 tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch + create mode 100644 tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch + create mode 100644 tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch + create mode 100644 tools/depends/target/libdcadec/Makefile + +diff --git a/Makefile.in b/Makefile.in +index 7ed7c37..4a8aeef 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -445,7 +445,7 @@ FFMPEGOBJS = @FFMPEG_LIBDIR@/libavcodec.a \ + @FFMPEG_LIBDIR@/libpostproc.a \ + @FFMPEG_LIBDIR@/libswscale.a + DYNOBJSXBMC+= $(FFMPEGOBJS) +-LIBS+= @GNUTLS_ALL_LIBS@ @VORBISENC_ALL_LIBS@ ++LIBS+= @GNUTLS_ALL_LIBS@ @VORBISENC_ALL_LIBS@ @DCADEC_ALL_LIBS@ + + $(FFMPEGOBJS): dvdpcodecs + endif +diff --git a/configure.ac b/configure.ac +index cf18212..ad9ae6d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1088,6 +1088,7 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library), + AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library)) ++AC_CHECK_HEADER([libdcadec/dca_context.h],, AC_MSG_ERROR($missing_library)) + + PKG_CHECK_MODULES([LIBCURL], [libcurl],, AC_MSG_ERROR([libcurl not found])) + XB_FIND_SONAME([CURL], [curl]) +@@ -1119,6 +1120,7 @@ PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], + AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage + AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library)) ++AC_CHECK_LIB([dcadec], [main],, AC_MSG_ERROR($missing_library)) + if echo "$ARCH" | grep -q freebsd; then + AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([pthread], [pthread_set_name_np], +@@ -1806,6 +1808,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then + FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec) + GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls) + VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc) ++ DCADEC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors dcadec) + + # check if static libs are available + for ff_lib in ${ff_libs}; do +@@ -2630,6 +2633,7 @@ AC_SUBST(FFMPEG_LIBDIR) + AC_SUBST(USE_STATIC_FFMPEG) + AC_SUBST(GNUTLS_ALL_LIBS) + AC_SUBST(VORBISENC_ALL_LIBS) ++AC_SUBST(DCADEC_ALL_LIBS) + AC_SUBST(USE_TOUCH_SKIN) + AC_SUBST(USE_LIBAV_HACKS) + AC_SUBST(PYTHON_VERSION) +diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile +index 915de85..5d85ca8 100644 +--- a/tools/depends/target/Makefile ++++ b/tools/depends/target/Makefile +@@ -15,7 +15,7 @@ DEPENDS = \ + python26 libshairplay \ + libplist libcec libbluray boost tinyxml dummy-libxbmc \ + libamplayer libssh taglib libusb libnfs libmp3lame \ +- pythonmodule-pil libxslt ffmpeg platform ++ pythonmodule-pil libxslt ffmpeg platform libdcadec + + FFMPEG_DEPENDS = gnutls + +@@ -96,7 +96,7 @@ nettle: gmp + pythonmodule-pil: $(ZLIB) libjpeg-turbo libpng freetype2 python26 + libsdl2: $(LINUX_SYSTEM_LIBS) + libxslt: libgcrypt +-ffmpeg: $(ICONV) $(ZLIB) bzip2 libvorbis $(FFMPEG_DEPENDS) ++ffmpeg: $(ICONV) $(ZLIB) bzip2 libvorbis libdcadec $(FFMPEG_DEPENDS) + libcec: platform + + .installed-$(PLATFORM): $(DEPENDS) +diff --git a/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch b/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch +new file mode 100644 +index 0000000..c0c2ac1 +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch +@@ -0,0 +1,280 @@ ++From 519868de7d9c99876efcaf57d6a9683c22732cde Mon Sep 17 00:00:00 2001 ++From: Hendrik Leppkes ++Date: Thu, 19 Mar 2015 23:56:22 +0100 ++Subject: [PATCH] avcodec: add libdcadec decoder ++ ++Signed-off-by: Michael Niedermayer ++--- ++ configure | 4 + ++ libavcodec/Makefile | 1 + ++ libavcodec/allcodecs.c | 1 + ++ libavcodec/libdcadec.c | 197 +++++++++++++++++++++++++++++++++++++++++++++++++ ++ 4 files changed, 203 insertions(+) ++ create mode 100644 libavcodec/libdcadec.c ++ ++diff --git a/configure b/configure ++index 1bf8f80..a449bc7 100755 ++--- a/configure +++++ b/configure ++@@ -210,6 +210,7 @@ External library support: ++ --enable-libcdio enable audio CD grabbing with libcdio [no] ++ --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 ++ and libraw1394 [no] +++ --enable-libdcadec enable DCA decoding via libdcadec [no] ++ --enable-libfaac enable AAC encoding via libfaac [no] ++ --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] ++ --enable-libflite enable flite (voice synthesis) support via libflite [no] ++@@ -1353,6 +1354,7 @@ EXTERNAL_LIBRARY_LIST=" ++ libcdio ++ libcelt ++ libdc1394 +++ libdcadec ++ libfaac ++ libfdk_aac ++ libflite ++@@ -2359,6 +2361,7 @@ vc1_parser_select="mpegvideo startcode vc1_decoder" ++ # external libraries ++ libaacplus_encoder_deps="libaacplus" ++ libcelt_decoder_deps="libcelt" +++libdcadec_decoder_deps="libdcadec" ++ libfaac_encoder_deps="libfaac" ++ libfaac_encoder_select="audio_frame_queue" ++ libfdk_aac_decoder_deps="libfdk_aac" ++@@ -4922,6 +4925,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && ++ { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || ++ die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } ++ enabled libcaca && require_pkg_config caca caca.h caca_create_canvas +++enabled libdcadec && require libdcadec dca_context.h dcadec_context_create -ldcadec ++ enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac ++ enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac ++ flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" ++diff --git a/libavcodec/Makefile b/libavcodec/Makefile ++index 4173f88..1a0c734 100644 ++--- a/libavcodec/Makefile +++++ b/libavcodec/Makefile ++@@ -732,6 +732,7 @@ OBJS-$(CONFIG_ELBG_FILTER) += elbg.o ++ # external codec libraries ++ OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o ++ OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o +++OBJS-$(CONFIG_LIBDCADEC_DECODER) += libdcadec.o ++ OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o ++ OBJS-$(CONFIG_LIBFDK_AAC_DECODER) += libfdk-aacdec.o ++ OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o ++diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c ++index 5194e74..bbf70a6 100644 ++--- a/libavcodec/allcodecs.c +++++ b/libavcodec/allcodecs.c ++@@ -512,6 +512,7 @@ void avcodec_register_all(void) ++ ++ /* external libraries */ ++ REGISTER_DECODER(LIBCELT, libcelt); +++ REGISTER_DECODER(LIBDCADEC, libdcadec) ++ REGISTER_ENCODER(LIBFAAC, libfaac); ++ REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac); ++ REGISTER_ENCDEC (LIBGSM, libgsm); ++diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c ++new file mode 100644 ++index 0000000..d060db5 ++--- /dev/null +++++ b/libavcodec/libdcadec.c ++@@ -0,0 +1,197 @@ +++/* +++ * libdcadec decoder wrapper +++ * Copyright (C) 2015 Hendrik Leppkes +++ * +++ * This file is part of FFmpeg. +++ * +++ * FFmpeg is free software; you can redistribute it and/or +++ * modify it under the terms of the GNU Lesser General Public +++ * License as published by the Free Software Foundation; either +++ * version 2.1 of the License, or (at your option) any later version. +++ * +++ * FFmpeg 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 +++ * Lesser General Public License for more details. +++ * +++ * You should have received a copy of the GNU Lesser General Public +++ * License along with FFmpeg; if not, write to the Free Software +++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +++ */ +++ +++#include +++ +++#include "libavutil/avassert.h" +++#include "libavutil/channel_layout.h" +++#include "libavutil/common.h" +++#include "libavutil/opt.h" +++#include "avcodec.h" +++#include "dca.h" +++#include "dca_syncwords.h" +++#include "internal.h" +++ +++typedef struct DCADecContext { +++ struct dcadec_context *ctx; +++ uint8_t *buffer; +++ int buffer_size; +++} DCADecContext; +++ +++static int dcadec_decode_frame(AVCodecContext *avctx, void *data, +++ int *got_frame_ptr, AVPacket *avpkt) +++{ +++ DCADecContext *s = avctx->priv_data; +++ AVFrame *frame = data; +++ int ret, i, k; +++ int **samples, nsamples, channel_mask, sample_rate, bits_per_sample, profile; +++ uint32_t mrk; +++ uint8_t *input = avpkt->data; +++ int input_size = avpkt->size; +++ +++ /* convert bytestream syntax to RAW BE format if required */ +++ mrk = AV_RB32(input); +++ if (mrk != DCA_SYNCWORD_CORE_BE && mrk != DCA_SYNCWORD_SUBSTREAM) { +++ s->buffer = av_fast_realloc(s->buffer, &s->buffer_size, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE); +++ if (!s->buffer) +++ return AVERROR(ENOMEM); +++ +++ if ((ret = avpriv_dca_convert_bitstream(avpkt->data, avpkt->size, s->buffer, s->buffer_size)) < 0) +++ return ret; +++ +++ input = s->buffer; +++ input_size = ret; +++ } +++ +++ if ((ret = dcadec_context_parse(s->ctx, input, input_size)) < 0) { +++ av_log(avctx, AV_LOG_ERROR, "dcadec_context_parse() failed: %d (%s)\n", -ret, dcadec_strerror(ret)); +++ return AVERROR_EXTERNAL; +++ } +++ if ((ret = dcadec_context_filter(s->ctx, &samples, &nsamples, &channel_mask, +++ &sample_rate, &bits_per_sample, &profile)) < 0) { +++ av_log(avctx, AV_LOG_ERROR, "dcadec_context_filter() failed: %d (%s)\n", -ret, dcadec_strerror(ret)); +++ return AVERROR_EXTERNAL; +++ } +++ +++ avctx->channels = av_get_channel_layout_nb_channels(channel_mask); +++ avctx->channel_layout = channel_mask; +++ avctx->sample_rate = sample_rate; +++ +++ av_assert0(bits_per_sample >= 16 && bits_per_sample <= 24); +++ if (bits_per_sample == 16) +++ avctx->sample_fmt = AV_SAMPLE_FMT_S16P; +++ else +++ avctx->sample_fmt = AV_SAMPLE_FMT_S32P; +++ +++ avctx->bits_per_raw_sample = bits_per_sample; +++ +++ switch (profile) { +++ case DCADEC_PROFILE_DS: +++ avctx->profile = FF_PROFILE_DTS; +++ break; +++ case DCADEC_PROFILE_DS_96_24: +++ avctx->profile = FF_PROFILE_DTS_96_24; +++ break; +++ case DCADEC_PROFILE_DS_ES: +++ avctx->profile = FF_PROFILE_DTS_ES; +++ break; +++ case DCADEC_PROFILE_HD_HRA: +++ avctx->profile = FF_PROFILE_DTS_HD_HRA; +++ break; +++ case DCADEC_PROFILE_HD_MA: +++ avctx->profile = FF_PROFILE_DTS_HD_MA; +++ break; +++ case DCADEC_PROFILE_EXPRESS: +++ avctx->profile = FF_PROFILE_DTS_EXPRESS; +++ break; +++ case DCADEC_PROFILE_UNKNOWN: +++ default: +++ avctx->profile = FF_PROFILE_UNKNOWN; +++ break; +++ } +++ +++ /* bitrate is only meaningful if there are no HD extensions, as they distort the bitrate */ +++ if (profile == DCADEC_PROFILE_DS || profile == DCADEC_PROFILE_DS_96_24 || profile == DCADEC_PROFILE_DS_ES) { +++ struct dcadec_core_info *info = dcadec_context_get_core_info(s->ctx); +++ avctx->bit_rate = info->bit_rate; +++ dcadec_context_free_core_info(info); +++ } else +++ avctx->bit_rate = 0; +++ +++ frame->nb_samples = nsamples; +++ if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) +++ return ret; +++ +++ for (i = 0; i < avctx->channels; i++) { +++ if (frame->format == AV_SAMPLE_FMT_S16P) { +++ int16_t *plane = (int16_t *)frame->extended_data[i]; +++ for (k = 0; k < nsamples; k++) +++ plane[k] = samples[i][k]; +++ } else { +++ int32_t *plane = (int32_t *)frame->extended_data[i]; +++ int shift = 32 - bits_per_sample; +++ for (k = 0; k < nsamples; k++) +++ plane[k] = samples[i][k] << shift; +++ } +++ } +++ +++ *got_frame_ptr = 1; +++ +++ return avpkt->size; +++} +++ +++static av_cold void dcadec_flush(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ dcadec_context_clear(s->ctx); +++} +++ +++static av_cold int dcadec_close(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ +++ dcadec_context_destroy(s->ctx); +++ s->ctx = NULL; +++ +++ av_freep(&s->buffer); +++ +++ return 0; +++} +++ +++static av_cold int dcadec_init(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ +++ s->ctx = dcadec_context_create(0); +++ if (!s->ctx) +++ return AVERROR(ENOMEM); +++ +++ avctx->sample_fmt = AV_SAMPLE_FMT_S32P; +++ avctx->bits_per_raw_sample = 24; +++ +++ return 0; +++} +++ +++static const AVProfile profiles[] = { +++ { FF_PROFILE_DTS, "DTS" }, +++ { FF_PROFILE_DTS_ES, "DTS-ES" }, +++ { FF_PROFILE_DTS_96_24, "DTS 96/24" }, +++ { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" }, +++ { FF_PROFILE_DTS_HD_MA, "DTS-HD MA" }, +++ { FF_PROFILE_DTS_EXPRESS, "DTS Express" }, +++ { FF_PROFILE_UNKNOWN }, +++}; +++ +++AVCodec ff_libdcadec_decoder = { +++ .name = "libdcadec", +++ .long_name = NULL_IF_CONFIG_SMALL("dcadec DCA decoder"), +++ .type = AVMEDIA_TYPE_AUDIO, +++ .id = AV_CODEC_ID_DTS, +++ .priv_data_size = sizeof(DCADecContext), +++ .init = dcadec_init, +++ .decode = dcadec_decode_frame, +++ .close = dcadec_close, +++ .flush = dcadec_flush, +++ .capabilities = CODEC_CAP_DR1 | CODEC_CAP_CHANNEL_CONF, +++ .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P, +++ AV_SAMPLE_FMT_NONE }, +++ .profiles = NULL_IF_CONFIG_SMALL(profiles), +++}; ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch b/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch +new file mode 100644 +index 0000000..b4db15d +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch +@@ -0,0 +1,40 @@ ++From 4f3c31df3f569c7171ee9e651ddf479690367b9b Mon Sep 17 00:00:00 2001 ++From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= ++Date: Fri, 20 Mar 2015 01:58:25 +0100 ++Subject: [PATCH] avcodec: Fix libdcadec include dir ++ ++Signed-off-by: Michael Niedermayer ++--- ++ configure | 2 +- ++ libavcodec/libdcadec.c | 2 +- ++ 2 files changed, 2 insertions(+), 2 deletions(-) ++ ++diff --git a/configure b/configure ++index a449bc7..1ef83e3 100755 ++--- a/configure +++++ b/configure ++@@ -4925,7 +4925,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && ++ { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || ++ die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } ++ enabled libcaca && require_pkg_config caca caca.h caca_create_canvas ++-enabled libdcadec && require libdcadec dca_context.h dcadec_context_create -ldcadec +++enabled libdcadec && require libdcadec libdcadec/dca_context.h dcadec_context_create -ldcadec ++ enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac ++ enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac ++ flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" ++diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c ++index d060db5..a28b983 100644 ++--- a/libavcodec/libdcadec.c +++++ b/libavcodec/libdcadec.c ++@@ -19,7 +19,7 @@ ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++-#include +++#include ++ ++ #include "libavutil/avassert.h" ++ #include "libavutil/channel_layout.h" ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch b/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch +new file mode 100644 +index 0000000..1550538 +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch +@@ -0,0 +1,25 @@ ++From 11fe56c8bbf39cd0c3edbf0cd404dea400ff7e0c Mon Sep 17 00:00:00 2001 ++From: Hendrik Leppkes ++Date: Thu, 19 Mar 2015 23:45:39 +0100 ++Subject: [PATCH] avcodec: add profile define for DTS Express ++ ++Signed-off-by: Michael Niedermayer ++--- ++ libavcodec/avcodec.h | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h ++index cdc8aa1..48e212f 100644 ++--- a/libavcodec/avcodec.h +++++ b/libavcodec/avcodec.h ++@@ -2851,6 +2851,7 @@ typedef struct AVCodecContext { ++ #define FF_PROFILE_DTS_96_24 40 ++ #define FF_PROFILE_DTS_HD_HRA 50 ++ #define FF_PROFILE_DTS_HD_MA 60 +++#define FF_PROFILE_DTS_EXPRESS 70 ++ ++ #define FF_PROFILE_MPEG2_422 0 ++ #define FF_PROFILE_MPEG2_HIGH 1 ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile +index 711182f..24480b2 100644 +--- a/tools/depends/target/ffmpeg/Makefile ++++ b/tools/depends/target/ffmpeg/Makefile +@@ -1,6 +1,7 @@ + include ../../Makefile.include + include FFMPEG-VERSION +-DEPS= ../../Makefile.include FFMPEG-VERSION Makefile ++DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ ++ 0001-avcodec-add-libdcadec-decoder.patch 0002-avcodec-Fix-libdcadec-include-dir.patch 0003-avcodec-add-profile-define-for-DTS-Express.patch + + # set to "yes" to enable patching + # we don't apply patches until we move to a vanilla ffmpeg tarball +@@ -55,6 +56,7 @@ endif + ifeq ($(Configuration), Release) + ffmpg_config += --disable-debug + endif ++ffmpg_config += --enable-libdcadec --disable-decoder=dca + + + CLEAN_FILES=$(ARCHIVE) $(PLATFORM) +@@ -68,6 +70,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) + rm -rf $(PLATFORM); mkdir -p $(PLATFORM) + cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) + cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure ++ cd $(PLATFORM); patch -p1 < ../0001-avcodec-add-libdcadec-decoder.patch ++ cd $(PLATFORM); patch -p1 < ../0002-avcodec-Fix-libdcadec-include-dir.patch ++ cd $(PLATFORM); patch -p1 < ../0003-avcodec-add-profile-define-for-DTS-Express.patch + cd $(PLATFORM);\ + CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ + ./configure $(ffmpg_config) +diff --git a/tools/depends/target/libdcadec/Makefile b/tools/depends/target/libdcadec/Makefile +new file mode 100644 +index 0000000..e68ec46 +--- /dev/null ++++ b/tools/depends/target/libdcadec/Makefile +@@ -0,0 +1,38 @@ ++include ../../Makefile.include ++DEPS= ../../Makefile.include Makefile ++ ++# lib name, version ++LIBNAME=dcadec ++ARCHIVE=master.tar.gz ++BASE_URL=https://github.com/foo86/dcadec/archive ++ ++# configuration settings ++ ++LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).a ++ ++CLEAN_FILES=$(ARCHIVE) $(PLATFORM) ++ ++CFLAGS += -std=gnu99 ++ ++all: $(LIBDYLIB) .installed-$(PLATFORM) ++ ++$(TARBALLS_LOCATION)/$(ARCHIVE): ++ cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE) ++ ++$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) ++ rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM) ++ cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) ++ ++$(LIBDYLIB): $(PLATFORM) ++ $(MAKE) -C $(PLATFORM) PREFIX=$(PREFIX) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)" ++ ++.installed-$(PLATFORM): $(LIBDYLIB) ++ $(MAKE) -C $(PLATFORM) PREFIX=$(PREFIX) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)" install ++ touch $@ ++ ++clean: ++ $(MAKE) -C $(PLATFORM) clean ++ rm -f .installed-$(PLATFORM) ++ ++distclean:: ++ rm -rf $(PLATFORM) .installed-$(PLATFORM) + +From bdf128de10eb980a68d8382df8f8621a61e020d1 Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Mon, 23 Mar 2015 22:33:04 +0000 +Subject: [PATCH 2/6] [dcadec] Add settings option to enable libdcadec + +--- + addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ + system/settings/imx6.xml | 20 ++++++++++++++++++++ + system/settings/rbp.xml | 5 +++++ + system/settings/rbp2.xml | 5 +++++ + tools/depends/target/ffmpeg/Makefile | 2 +- + .../DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 14 ++++++++++++-- + xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 15 +++++++++++++++ + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 10 ++++++++-- + 8 files changed, 76 insertions(+), 5 deletions(-) + +diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po +index 6a6f0a3..3ab966d 100644 +--- a/addons/resource.language.en_gb/resources/strings.po ++++ b/addons/resource.language.en_gb/resources/strings.po +@@ -16541,3 +16541,13 @@ msgstr "" + msgctxt "#38016" + msgid "%d fps" + msgstr "" ++ ++#: system/settings/rbp.xml system/settings/imx6.xml ++msgctxt "#38120" ++msgid "Support 8 channel DTS-HD audio decoding" ++msgstr "" ++ ++#: system/settings/rbp.xml system/settings/imx6.xml ++msgctxt "#38121" ++msgid "Enables decoding of high quality DTS-HD audio streams. Note: This increases CPU load and is only available when DTS and DTS-HD audio passthrough are disabled." ++msgstr "" +diff --git a/system/settings/imx6.xml b/system/settings/imx6.xml +index d8b17c3..bdb5eb8 100644 +--- a/system/settings/imx6.xml ++++ b/system/settings/imx6.xml +@@ -13,6 +13,26 @@ + + + ++ ++ ++ ++ 2 ++ false ++ ++ ++ ++ ++ false ++ ++ false ++ false ++ ++ ++ ++ ++ ++ ++ + +
+ +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index 50fe36a..52703e9 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -76,6 +76,11 @@ + + 101 + ++ ++ 2 ++ false ++ ++ + + + +diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml +index 8cc8f19..b29a428 100644 +--- a/system/settings/rbp2.xml ++++ b/system/settings/rbp2.xml +@@ -19,6 +19,11 @@ + + + ++ ++ ++ true ++ ++ + + + +diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile +index 24480b2..1e20602 100644 +--- a/tools/depends/target/ffmpeg/Makefile ++++ b/tools/depends/target/ffmpeg/Makefile +@@ -56,7 +56,7 @@ endif + ifeq ($(Configuration), Release) + ffmpg_config += --disable-debug + endif +-ffmpg_config += --enable-libdcadec --disable-decoder=dca ++ffmpg_config += --enable-libdcadec + + + CLEAN_FILES=$(ARCHIVE) $(PLATFORM) +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +index 991449b..e6553dd 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +@@ -33,6 +33,7 @@ extern "C" { + #include "settings/Settings.h" + #include "cores/AudioEngine/Utils/AEUtil.h" + #endif ++#include "settings/Settings.h" + + CDVDAudioCodecFFmpeg::CDVDAudioCodecFFmpeg() : CDVDAudioCodec() + { +@@ -54,10 +55,19 @@ CDVDAudioCodecFFmpeg::~CDVDAudioCodecFFmpeg() + + bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) + { +- AVCodec* pCodec; ++ AVCodec* pCodec = NULL; + m_bOpenedCodec = false; + +- pCodec = avcodec_find_decoder(hints.codec); ++ bool allow_dtshd_decoding = true; ++#if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) || defined(HAS_LIBAMCODEC) ++ allow_dtshd_decoding = CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding"); ++#endif ++ if (hints.codec == AV_CODEC_ID_DTS && allow_dtshd_decoding) ++ pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ ++ if (!pCodec) ++ pCodec = avcodec_find_decoder(hints.codec); ++ + if (!pCodec) + { + CLog::Log(LOGDEBUG,"CDVDAudioCodecFFmpeg::Open() Unable to find codec %d", hints.codec); +diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +index 74ff31f..6a97135 100644 +--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +@@ -439,6 +439,21 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein + + if (m_streaminfo) + { ++#if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) || defined(HAS_LIBAMCODEC) ++ if (CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding")) ++#endif ++ { ++ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) ++ { ++ AVStream *st = m_pFormatContext->streams[i]; ++ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && st->codec->codec_id == AV_CODEC_ID_DTS) ++ { ++ AVCodec* pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ if (pCodec) ++ st->codec->codec = pCodec; ++ } ++ } ++ } + /* to speed up dvd switches, only analyse very short */ + if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD)) + av_opt_set_int(m_pFormatContext, "analyzeduration", 500000, 0); +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index 1a920f7..075f728 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -26,6 +26,7 @@ + + #include "cores/AudioEngine/Utils/AEUtil.h" + #include "cores/AudioEngine/AEFactory.h" ++#include "settings/Settings.h" + + // the size of the audio_render output port buffers + #define AUDIO_DECODE_OUTPUT_BUFFER (32*1024) +@@ -62,10 +63,15 @@ COMXAudioCodecOMX::~COMXAudioCodecOMX() + + bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) + { +- AVCodec* pCodec; ++ AVCodec* pCodec = NULL; + m_bOpenedCodec = false; + +- pCodec = avcodec_find_decoder(hints.codec); ++ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding")) ++ pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ ++ if (!pCodec) ++ pCodec = avcodec_find_decoder(hints.codec); ++ + if (!pCodec) + { + CLog::Log(LOGDEBUG,"COMXAudioCodecOMX::Open() Unable to find codec %d", hints.codec); + +From 61fac1c7999532e4595ef9101c83074937dddabb Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:00:31 +0200 +Subject: [PATCH 3/6] [configure] use pkg-config to detect dcadec + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ad9ae6d..600325a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1088,7 +1088,7 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library), + AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library)) +-AC_CHECK_HEADER([libdcadec/dca_context.h],, AC_MSG_ERROR($missing_library)) ++PKG_CHECK_MODULES([LIBDCADEC], [dcadec],, AC_MSG_ERROR([libdcadec not found])) + + PKG_CHECK_MODULES([LIBCURL], [libcurl],, AC_MSG_ERROR([libcurl not found])) + XB_FIND_SONAME([CURL], [curl]) + +From 035084e5c09555005aa045f67a282cecceb98900 Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:02:38 +0200 +Subject: [PATCH 4/6] [ffmpeg] enabled dcadec for linux standalone builds + +--- + tools/depends/target/ffmpeg/autobuild.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh +index 196c347..b9bfd57 100755 +--- a/tools/depends/target/ffmpeg/autobuild.sh ++++ b/tools/depends/target/ffmpeg/autobuild.sh +@@ -159,6 +159,7 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ + --disable-mips32r2 \ + --disable-mipsdspr1 \ + --disable-mipsdspr2 \ ++ --enable-libdcadec \ + ${FLAGS} + + make -j ${BUILDTHREADS} + +From d89c29002ab09708540055f214823836e2c74c00 Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:12:31 +0200 +Subject: [PATCH 5/6] [depends] use a tarball from mirrors for dcadec + +--- + tools/depends/target/libdcadec/Makefile | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tools/depends/target/libdcadec/Makefile b/tools/depends/target/libdcadec/Makefile +index e68ec46..4c98063 100644 +--- a/tools/depends/target/libdcadec/Makefile ++++ b/tools/depends/target/libdcadec/Makefile +@@ -2,9 +2,10 @@ include ../../Makefile.include + DEPS= ../../Makefile.include Makefile + + # lib name, version +-LIBNAME=dcadec +-ARCHIVE=master.tar.gz +-BASE_URL=https://github.com/foo86/dcadec/archive ++LIBNAME=libdcadec ++VERSION=git-396e75652 ++SOURCE=$(LIBNAME)-$(VERSION) ++ARCHIVE=$(SOURCE).tar.gz + + # configuration settings + + +From faceb91945a9064e26c55c83d9944d20f538da0d Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:18:09 +0200 +Subject: [PATCH 6/6] [docs] add dcadec to linux README + +--- + docs/README.linux | 2 +- + docs/README.ubuntu | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/docs/README.linux b/docs/README.linux +index ee64baf..732d606 100644 +--- a/docs/README.linux ++++ b/docs/README.linux +@@ -44,7 +44,7 @@ that are used to build Kodi packages on Debian/Ubuntu (with all supported + external libraries enabled). + + Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl, +- debhelper (>= 7.0.50~), default-jre, gawk, gperf, libao-dev, libasound2-dev, ++ dcadec-dev, default-jre, gawk, gperf, libao-dev, libasound2-dev, + libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libbluetooth-dev, + libbluray-dev, libboost-dev, libboost-thread-dev, libbz2-dev, libcap-dev, libcdio-dev, + libcec-dev, libcurl4-gnutls-dev | libcurl4-openssl-dev | libcurl-dev, libcwiid-dev, +diff --git a/docs/README.ubuntu b/docs/README.ubuntu +index 10f1611..0369f83 100644 +--- a/docs/README.ubuntu ++++ b/docs/README.ubuntu +@@ -82,7 +82,7 @@ Tip: For those with multiple computers at home is to try out distcc + + For Ubuntu (all versions >= 7.04): + +- $ sudo apt-get install automake bison build-essential cmake curl cvs default-jre fp-compiler gawk gdc gettext git-core gperf libasound2-dev libass-dev libboost-dev libboost-thread-dev libbz2-dev libcap-dev libcdio-dev libcurl3 libcurl4-gnutls-dev libdbus-1-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libgif-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libvdpau-dev libvorbis-dev libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount python-dev python-imaging python-sqlite swig unzip yasm zip zlib1g-dev ++ $ sudo apt-get install automake bison build-essential cmake curl cvs dcadec-dev default-jre fp-compiler gawk gdc gettext git-core gperf libasound2-dev libass-dev libboost-dev libboost-thread-dev libbz2-dev libcap-dev libcdio-dev libcurl3 libcurl4-gnutls-dev libdbus-1-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libgif-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libvdpau-dev libvorbis-dev libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount python-dev python-imaging python-sqlite swig unzip yasm zip zlib1g-dev + + For >= 10.10: + $ sudo apt-get install autopoint libltdl-dev diff --git a/packages/mediacenter/kodi/patches/kodi-999.21-configure.ac-dont-break-if-dcadec-is-missing-dcadec-.patch b/packages/mediacenter/kodi/patches/kodi-999.21-configure.ac-dont-break-if-dcadec-is-missing-dcadec-.patch new file mode 100644 index 0000000000..03742baf3b --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.21-configure.ac-dont-break-if-dcadec-is-missing-dcadec-.patch @@ -0,0 +1,34 @@ +From a3b0b1fd46d726d93303f823dacf69977f34d9ae Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Sat, 16 May 2015 11:47:58 +0200 +Subject: [PATCH] configure.ac: dont break if dcadec is missing, dcadec is a + ffmpeg dep + +--- + configure.ac | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 600325a..9daa246 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1088,7 +1088,7 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library), + AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library)) +-PKG_CHECK_MODULES([LIBDCADEC], [dcadec],, AC_MSG_ERROR([libdcadec not found])) ++PKG_CHECK_MODULES([LIBDCADEC], [dcadec],, AC_MSG_WARN([dcadec not found])) + + PKG_CHECK_MODULES([LIBCURL], [libcurl],, AC_MSG_ERROR([libcurl not found])) + XB_FIND_SONAME([CURL], [curl]) +@@ -1120,7 +1120,6 @@ PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], + AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage + AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library)) +-AC_CHECK_LIB([dcadec], [main],, AC_MSG_ERROR($missing_library)) + if echo "$ARCH" | grep -q freebsd; then + AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([pthread], [pthread_set_name_np], +-- +1.9.3 + diff --git a/packages/mediacenter/platform/package.mk b/packages/mediacenter/platform/package.mk index 2f10fb6be1..73e0a73e6f 100644 --- a/packages/mediacenter/platform/package.mk +++ b/packages/mediacenter/platform/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="platform" -PKG_VERSION="1.0.6" +PKG_VERSION="1.0.9" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/platform/patches/platform-02-add-PR6.patch b/packages/mediacenter/platform/patches/platform-02-add-PR6.patch deleted file mode 100644 index 9a09e3931c..0000000000 --- a/packages/mediacenter/platform/patches/platform-02-add-PR6.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 8ff719d94b664378f3ebb61166454eef7cb20c25 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 9 May 2015 17:13:25 +0200 -Subject: [PATCH] readd sockets/cdevsocket.h, needed by IMX6 and TDA995x - ---- - CMakeLists.txt | 3 +- - src/posix/os-socket.h | 16 +++++++ - src/posix/os-types.h | 2 + - src/sockets/cdevsocket.h | 117 +++++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 137 insertions(+), 1 deletion(-) - create mode 100644 src/sockets/cdevsocket.h - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8164286..9f577b3 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -56,7 +56,8 @@ ELSE(WIN32) - src/posix/os-types.h - DESTINATION include/platform/posix) - ENDIF(WIN32) --install(FILES src/sockets/socket.h -+install(FILES src/sockets/cdevsocket.h -+ src/sockets/socket.h - src/sockets/tcp.h - DESTINATION include/platform/sockets) - install(FILES src/threads/atomics.h -diff --git a/src/posix/os-socket.h b/src/posix/os-socket.h -index 60c8507..05888c2 100644 ---- a/src/posix/os-socket.h -+++ b/src/posix/os-socket.h -@@ -36,6 +36,7 @@ - #include "../util/timeutils.h" - #include - #include -+#include - #include - #include - #include -@@ -164,8 +165,23 @@ namespace PLATFORM - - return iBytesRead; - } -+ -+ inline int SocketIoctl(socket_t socket, int *iError, int request, void* data) -+ { -+ if (socket == INVALID_SOCKET_VALUE) -+ { -+ *iError = EINVAL; -+ return -1; -+ } -+ -+ int iReturn = ioctl(socket, request, data); -+ if (iReturn < 0) -+ *iError = errno; -+ return iReturn; -+ } - //@} - -+ - // TCP - //@{ - inline void TcpSocketClose(tcp_socket_t socket) -diff --git a/src/posix/os-types.h b/src/posix/os-types.h -index 6134080..b48f330 100644 ---- a/src/posix/os-types.h -+++ b/src/posix/os-types.h -@@ -61,6 +61,8 @@ typedef socket_t tcp_socket_t; - #define INVALID_SOCKET_VALUE (-1) - typedef socket_t serial_socket_t; - #define INVALID_SERIAL_SOCKET_VALUE (-1) -+typedef socket_t chardev_socket_t; -+#define INVALID_CHARDEV_SOCKET_VALUE (-1) - - typedef long LONG; - #if !defined(__APPLE__) -diff --git a/src/sockets/cdevsocket.h b/src/sockets/cdevsocket.h -new file mode 100644 -index 0000000..a5ac338 ---- /dev/null -+++ b/src/sockets/cdevsocket.h -@@ -0,0 +1,117 @@ -+#pragma once -+/* -+ * This file is part of the libCEC(R) library. -+ * -+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. -+ * libCEC(R) is an original work, containing original code. -+ * -+ * libCEC(R) is a trademark of Pulse-Eight Limited. -+ * -+ * This program is dual-licensed; 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. -+ * -+ * This program 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 this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * -+ * Alternatively, you can license this library under a commercial license, -+ * please contact Pulse-Eight Licensing for more information. -+ * -+ * For more information contact: -+ * Pulse-Eight Licensing -+ * http://www.pulse-eight.com/ -+ * http://www.pulse-eight.net/ -+ */ -+ -+#include "../os.h" -+#include "../util/buffer.h" -+ -+#include -+#include -+ -+#if !defined(__WINDOWS__) -+#include -+#endif -+ -+#include "socket.h" -+ -+namespace PLATFORM -+{ -+ class CCDevSocket : public CCommonSocket -+ { -+ public: -+ CCDevSocket(const std::string &strName ) : -+ CCommonSocket(INVALID_CHARDEV_SOCKET_VALUE, strName) -+ #ifdef __WINDOWS__ -+ ,m_iCurrentReadTimeout(MAXDWORD) -+ #endif -+ {} -+ -+ virtual ~CCDevSocket(void) -+ { -+ Close(); -+ } -+ -+ virtual bool Open(uint64_t iTimeoutMs = 0) -+ { -+ (void)iTimeoutMs; -+ -+ if (IsOpen()) -+ return false; -+ -+ m_socket = open(m_strName.c_str(), O_RDWR ); -+ -+ if (m_socket == INVALID_CHARDEV_SOCKET_VALUE) -+ { -+ m_strError = strerror(errno); -+ return false; -+ } -+ -+ return true; -+ } -+ -+ virtual void Close(void) -+ { -+ if (IsOpen()) -+ { -+ SocketClose(m_socket); -+ m_socket = INVALID_CHARDEV_SOCKET_VALUE; -+ } -+ } -+ -+ virtual void Shutdown(void) -+ { -+ SocketClose(m_socket); -+ } -+ -+ virtual int Ioctl(int request, void* data) -+ { -+ return IsOpen() ? SocketIoctl(m_socket, &m_iError, request, data) : -1; -+ } -+ -+ virtual ssize_t Write(void* data, size_t len) -+ { -+ return IsOpen() ? SocketWrite(m_socket, &m_iError, data, len) : -1; -+ } -+ -+ virtual ssize_t Read(void* data, size_t len, uint64_t iTimeoutMs = 0) -+ { -+ return IsOpen() ? SocketRead(m_socket, &m_iError, data, len, iTimeoutMs) : -1; -+ } -+ -+ virtual bool IsOpen(void) -+ { -+ return m_socket != INVALID_CHARDEV_SOCKET_VALUE; -+ } -+ }; -+ -+}; -+ diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 605d3b3c94..526e632552 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="ffmpeg" -PKG_VERSION="2.6.2" +PKG_VERSION="2.6.3" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" diff --git a/packages/multimedia/imx-vpu/package.mk b/packages/multimedia/imx-vpu/package.mk index 8d883a5ed7..4cb91e2e32 100644 --- a/packages/multimedia/imx-vpu/package.mk +++ b/packages/multimedia/imx-vpu/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="imx-vpu" -PKG_VERSION="3.10.17-1.0.0" +PKG_VERSION="5.4.28" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="other" diff --git a/packages/multimedia/imx-vpu/patches/imx-vpu-cflags.patch b/packages/multimedia/imx-vpu/patches/imx-vpu-cflags.patch deleted file mode 100644 index e8f2e2e663..0000000000 --- a/packages/multimedia/imx-vpu/patches/imx-vpu-cflags.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur imx-lib-3.5.7-1.0.0/vpu/Makefile imx-lib-3.5.7-1.0.0.patch/vpu/Makefile ---- imx-lib-3.5.7-1.0.0/vpu/Makefile 2013-06-21 15:22:18.000000000 +0200 -+++ imx-lib-3.5.7-1.0.0.patch/vpu/Makefile 2014-01-13 08:07:56.431868081 +0100 -@@ -1,6 +1,8 @@ - CC=$(CROSS_COMPILE)gcc - AR=$(CROSS_COMPILE)ar - -+CFLAGS := -Wall -O2 -+ - # list of platforms which want this test case - INCLUDE_LIST:= IMX27ADS IMX51 IMX53 IMX6Q - -@@ -33,7 +35,7 @@ - endif - - %.o: %.c -- $(CC) -D$(PLATFORM) -Wall -O2 -fPIC -c $^ -o $@ -+ $(CC) -D$(PLATFORM) $(CFLAGS) -fPIC -c $^ -o $@ - - $(LIBNAME).so.$(SONAMEVERSION): $(OBJ) - $(CC) -shared -nostartfiles -Wl,-soname,$@ $^ -o $@ -lpthread diff --git a/packages/multimedia/libfslvpuwrap/package.mk b/packages/multimedia/libfslvpuwrap/package.mk index 3236361004..e42bf2e9b2 100644 --- a/packages/multimedia/libfslvpuwrap/package.mk +++ b/packages/multimedia/libfslvpuwrap/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="libfslvpuwrap" -PKG_VERSION="1.0.46" +PKG_VERSION="1.0.58" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="other" diff --git a/packages/multimedia/vdr-plugin-dvbapi/package.mk b/packages/multimedia/vdr-plugin-dvbapi/package.mk index 783f50dd4c..7b1c70490f 100644 --- a/packages/multimedia/vdr-plugin-dvbapi/package.mk +++ b/packages/multimedia/vdr-plugin-dvbapi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="vdr-plugin-dvbapi" -PKG_VERSION="c0c7fa2" +PKG_VERSION="0489e01" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/multimedia/vdr-plugin-vnsiserver/package.mk b/packages/multimedia/vdr-plugin-vnsiserver/package.mk index 24a23d6018..22de8b57ef 100644 --- a/packages/multimedia/vdr-plugin-vnsiserver/package.mk +++ b/packages/multimedia/vdr-plugin-vnsiserver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="vdr-plugin-vnsiserver" -PKG_VERSION="36e2b61" +PKG_VERSION="a7b0670" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/multimedia/vdr-satip/package.mk b/packages/multimedia/vdr-satip/package.mk index 647dcfdd8f..ed5b48aadd 100644 --- a/packages/multimedia/vdr-satip/package.mk +++ b/packages/multimedia/vdr-satip/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="vdr-satip" -PKG_VERSION="2.2.1" +PKG_VERSION="2.2.2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/network/libssh/package.mk b/packages/network/libssh/package.mk index 599c58a410..63cfe35c20 100644 --- a/packages/network/libssh/package.mk +++ b/packages/network/libssh/package.mk @@ -17,12 +17,12 @@ ################################################################################ PKG_NAME="libssh" -PKG_VERSION="0.6.4" +PKG_VERSION="0.7.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OpenSource" PKG_SITE="http://www.libssh.org/" -PKG_URL="https://red.libssh.org/attachments/download/107/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_URL="https://red.libssh.org/attachments/download/140/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain zlib libressl" PKG_PRIORITY="optional" PKG_SECTION="network" diff --git a/packages/sysutils/dbus/package.mk b/packages/sysutils/dbus/package.mk index 366d45fd05..d45eba348f 100644 --- a/packages/sysutils/dbus/package.mk +++ b/packages/sysutils/dbus/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="dbus" -PKG_VERSION="1.8.12" +PKG_VERSION="1.8.18" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/e2fsprogs/package.mk b/packages/sysutils/e2fsprogs/package.mk index 498393374c..62fe7b54af 100644 --- a/packages/sysutils/e2fsprogs/package.mk +++ b/packages/sysutils/e2fsprogs/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="e2fsprogs" -PKG_VERSION="1.42.12" +PKG_VERSION="1.42.13" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/e2fsprogs/patches/e2fsprogs-crosscompiling.patch b/packages/sysutils/e2fsprogs/patches/e2fsprogs-crosscompiling.patch deleted file mode 100644 index 64ed71ebc2..0000000000 --- a/packages/sysutils/e2fsprogs/patches/e2fsprogs-crosscompiling.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur e2fsprogs-1.42.10/configure.in e2fsprogs-1.42.10.patch/configure.in ---- e2fsprogs-1.42.10/configure.in 2014-05-15 19:04:08.000000000 +0200 -+++ e2fsprogs-1.42.10.patch/configure.in 2014-06-04 13:19:36.701586827 +0200 -@@ -1328,8 +1328,8 @@ - BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" - BUILD_LDFLAGS="$LDFLAGS" - else -- BUILD_CFLAGS= -- BUILD_LDFLAGS= -+ BUILD_CFLAGS="$BUILD_CFLAGS $INCLUDES -DHAVE_CONFIG_H" -+ BUILD_LDFLAGS="$BUILD_LDFLAGS" - fi - AC_SUBST(BUILD_CFLAGS) - AC_SUBST(BUILD_LDFLAGS) diff --git a/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-control b/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-control new file mode 100755 index 0000000000..88d051794d --- /dev/null +++ b/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-control @@ -0,0 +1,67 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +. /etc/profile + +if [ "$SYSTEM_TYPE" != "matrix" ]; then + echo "Only for TBS Matrix system." + exit 1 +fi + +fan_on() { + echo 1 > /sys/class/leds/fan/brightness +} + +fan_off() { + echo 0 > /sys/class/leds/fan/brightness +} + +soc_temp() { + local temp=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp) + temp="$(( $temp / 1000 ))" + echo "$temp" +} + +echo "SoC temp: $(soc_temp) C" + +ACTION=$1 +INTERVAL=$2 + +if [ -n "$ACTION" -a "$ACTION" = "on" ]; then + echo "Turning fan on." + fan_on +elif [ -n "$ACTION" -a "$ACTION" = "off" ]; then + echo "Turning fan off." + fan_off +elif [ -n "$ACTION" -a "$ACTION" = "log" ]; then + if [ -n "$INTERVAL" ]; then + interval=$INTERVAL + else + interval=60 + fi + + while true; do + echo "SoC temp: $(soc_temp) C" + + sleep $interval + done +else + echo "Unknown argument - must be on, off or log [interval]." +fi diff --git a/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-monitor b/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-monitor new file mode 100755 index 0000000000..ee7e7e8088 --- /dev/null +++ b/packages/sysutils/imx6-soc-fan/bin/imx6-soc-fan-monitor @@ -0,0 +1,83 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +. /etc/profile + +if [ "$SYSTEM_TYPE" != "matrix" ]; then + echo "Only for TBS Matrix system." + exit 1 +fi + +debug_echo() { + if [ -n "$debug" -a "$debug" == "yes" ]; then + echo $* + fi +} + +fan_on() { + echo 1 > /sys/class/leds/fan/brightness +} + +fan_off() { + echo 0 > /sys/class/leds/fan/brightness +} + +soc_temp() { + local temp=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp) + temp="$(( $temp / 1000 ))" + echo "$temp" +} + +# default limits +high=75 +low=60 +interval=30 +debug=no + +userconfig=/storage/.config/imx6-soc-fan-monitor.conf +if [ -e $userconfig ]; then + . $userconfig + echo "Values from config: low=$low high=$high interval=$interval debug=$debug" +else + echo "Default values: low=$low high=$high interval=$interval debug=$debug" +fi + +#( +# # turn fan on for a moment +# fan_on +# sleep 2 +# fan_off +#)& + +while true; do + temp=$(soc_temp) + debug_echo "SoC temp: $temp [low: $low, high: $high]" + if [ $temp -gt $high ]; then + debug_echo "SoC temp exceeds $high celsius, fan on" + fan_on + fi + + if [ $temp -lt $low ]; then + debug_echo "SoC temp below $low celsius, fan off" + fan_off + fi + + sleep $interval +done diff --git a/packages/sysutils/imx6-soc-fan/config/imx6-soc-fan-monitor.conf.sample b/packages/sysutils/imx6-soc-fan/config/imx6-soc-fan-monitor.conf.sample new file mode 100644 index 0000000000..a8da70d4d0 --- /dev/null +++ b/packages/sysutils/imx6-soc-fan/config/imx6-soc-fan-monitor.conf.sample @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +# +# imx6-soc-fan-monitor.conf.sample - i.MX6 SoC fan monitor config file +# used only for TBS Matrix system +# + +# default limits without config file +# when fan is turned on +# high=70 +# when fan is turned off +# low=60 +# temperature checking interval +# interval=30 +# periodically show temperature +# debug=no + +high=70 +low=55 +interval=30 +debug=no diff --git a/packages/sysutils/imx6-soc-fan/package.mk b/packages/sysutils/imx6-soc-fan/package.mk new file mode 100644 index 0000000000..f7a2797720 --- /dev/null +++ b/packages/sysutils/imx6-soc-fan/package.mk @@ -0,0 +1,47 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="imx6-soc-fan" +PKG_VERSION="1.0" +PKG_REV="1" +PKG_ARCH="arm" +PKG_LICENSE="GPL" +PKG_SITE="http://www.openelec.tv/" +PKG_URL="" +PKG_DEPENDS_TARGET="" +PKG_PRIORITY="optional" +PKG_SECTION="system" +PKG_SHORTDESC="i.MX6 SoC fan monitor" +PKG_LONGDESC="i.MX6 SoC fan monitor for TBS Matrix system" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +make_target() { + : # nothing +} + +makeinstall_target() { + mkdir -p $INSTALL/usr/config + cp -PR $PKG_DIR/config/* $INSTALL/usr/config + mkdir -p $INSTALL/usr/bin + cp -PR $PKG_DIR/bin/* $INSTALL/usr/bin +} + +post_install() { + enable_service imx6-soc-fan-monitor.service +} diff --git a/packages/sysutils/imx6-soc-fan/system.d/imx6-soc-fan-monitor.service b/packages/sysutils/imx6-soc-fan/system.d/imx6-soc-fan-monitor.service new file mode 100644 index 0000000000..b21e53c947 --- /dev/null +++ b/packages/sysutils/imx6-soc-fan/system.d/imx6-soc-fan-monitor.service @@ -0,0 +1,9 @@ +[Unit] +Description=i.MX6 SoC fan monitor service +ConditionPathExists=/var/run/system_type_matrix + +[Service] +ExecStart=/usr/bin/imx6-soc-fan-monitor + +[Install] +WantedBy=multi-user.target diff --git a/packages/sysutils/imx6-status-led/bin/imx6-status-led b/packages/sysutils/imx6-status-led/bin/imx6-status-led new file mode 100755 index 0000000000..fb1af9f557 --- /dev/null +++ b/packages/sysutils/imx6-status-led/bin/imx6-status-led @@ -0,0 +1,49 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +. /etc/profile + +case "$1" in + "on") + TRIGGER=default-on + ;; + "heartbeat") + TRIGGER=heartbeat + ;; + *) + TRIGGER="" + ;; +esac + +case "$SYSTEM_TYPE" in + "matrix") + LED=/sys/class/leds/red/trigger + ;; + "cuboxi") + LED=/sys/class/leds/imx6\:red\:front/trigger + ;; + *) + LED="" + ;; +esac + +if [ -n "$TRIGGER" -a -n "$LED" ]; then + echo $TRIGGER > $LED +fi diff --git a/packages/sysutils/imx6-status-led/package.mk b/packages/sysutils/imx6-status-led/package.mk new file mode 100644 index 0000000000..1eb9424486 --- /dev/null +++ b/packages/sysutils/imx6-status-led/package.mk @@ -0,0 +1,45 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="imx6-status-led" +PKG_VERSION="1.0" +PKG_REV="1" +PKG_ARCH="arm" +PKG_LICENSE="GPL" +PKG_SITE="http://www.openelec.tv/" +PKG_URL="" +PKG_DEPENDS_TARGET="" +PKG_PRIORITY="optional" +PKG_SECTION="system" +PKG_SHORTDESC="i.MX6 status LED control" +PKG_LONGDESC="Front status LED control for i.MX6 systems" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +make_target() { + : # nothing +} + +makeinstall_target() { + mkdir -p $INSTALL/usr/bin + cp -PR $PKG_DIR/bin/* $INSTALL/usr/bin +} + +post_install() { + enable_service imx6-status-led.service +} diff --git a/packages/sysutils/imx6-status-led/profile.d/01-system_type.conf b/packages/sysutils/imx6-status-led/profile.d/01-system_type.conf new file mode 100644 index 0000000000..d7260629da --- /dev/null +++ b/packages/sysutils/imx6-status-led/profile.d/01-system_type.conf @@ -0,0 +1,47 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +# $ cat /sys/devices/soc0/machine +# Freescale i.MX6 Quad SABRE Smart Device Board +# $ cat /sys/devices/soc0/machine +# TBS Matrix +# $ cat /sys/devices/soc0/family +# Freescale i.MX +# $ cat /sys/devices/soc0/soc_id +# i.MX6Q +# $ cat /sys/devices/soc0/revision +# 1.2 + +SYSTEM_TYPE=$(cat /sys/bus/soc/devices/soc0/machine) +case "$SYSTEM_TYPE" in + "TBS Matrix") + export SYSTEM_TYPE="matrix" + ;; + "SolidRun Cubox-i Dual/Quad") + export SYSTEM_TYPE="cuboxi" + ;; + *) + export SYSTEM_TYPE="undef" + ;; +esac + +# don't make from initramfs (no touch there) +if [ -e /bin/touch ]; then + mkdir -p /var/run + touch /var/run/system_type_$SYSTEM_TYPE +fi diff --git a/packages/sysutils/imx6-status-led/system.d/imx6-status-led.service b/packages/sysutils/imx6-status-led/system.d/imx6-status-led.service new file mode 100644 index 0000000000..ab51a5e49c --- /dev/null +++ b/packages/sysutils/imx6-status-led/system.d/imx6-status-led.service @@ -0,0 +1,12 @@ +[Unit] +Description=i.MX6 status LED service +After=kodi.service + +[Service] +Type=oneshot +ExecStart=-/bin/sh -c "/usr/bin/imx6-status-led on" +ExecStop=-/bin/sh -c "/usr/bin/imx6-status-led heartbeat" +RemainAfterExit=yes + +[Install] +WantedBy=kodi.target diff --git a/packages/sysutils/udevil/package.mk b/packages/sysutils/udevil/package.mk index e27cf414c1..859e526d4e 100644 --- a/packages/sysutils/udevil/package.mk +++ b/packages/sysutils/udevil/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="udevil" -PKG_VERSION="0.4.3" +PKG_VERSION="0.4.4" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/udevil/patches/udevil-fix-build.patch b/packages/sysutils/udevil/patches/udevil-fix-build.patch new file mode 100644 index 0000000000..91faec86cf --- /dev/null +++ b/packages/sysutils/udevil/patches/udevil-fix-build.patch @@ -0,0 +1,11 @@ +diff -Naur udevil-0.4.4/src/device-info.c udevil-0.4.4.patch/src/device-info.c +--- udevil-0.4.4/src/device-info.c 2015-05-04 15:34:32.000000000 +0200 ++++ udevil-0.4.4.patch/src/device-info.c 2015-05-23 16:25:50.545362784 +0200 +@@ -4,6 +4,7 @@ + ************************************************************************** */ + + #include "device-info.h" ++#include + + static char * + _dupv8 (const char *s) diff --git a/packages/textproc/libxml2/package.mk b/packages/textproc/libxml2/package.mk index 6158180b7a..3f96376434 100644 --- a/packages/textproc/libxml2/package.mk +++ b/packages/textproc/libxml2/package.mk @@ -38,7 +38,7 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_header_ansidecl_h=no \ --disable-silent-rules \ --enable-ipv6 \ --without-python \ - --with-zlib \ + --with-zlib=$SYSROOT_PREFIX/usr \ --with-sysroot=$SYSROOT_PREFIX \ --without-lzma" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index 71e76e36e1..f9a498bad3 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="b7bbd3d" +PKG_VERSION="70b0598" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" diff --git a/packages/tools/imx6-mfgtool2-tbs-matrix/package.mk b/packages/tools/imx6-mfgtool2-tbs-matrix/package.mk new file mode 100644 index 0000000000..76bd52280e --- /dev/null +++ b/packages/tools/imx6-mfgtool2-tbs-matrix/package.mk @@ -0,0 +1,41 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC 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. +# +# OpenELEC 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 OpenELEC. If not, see . +################################################################################ + +PKG_NAME="imx6-mfgtool2-tbs-matrix" +PKG_VERSION="1.0" +PKG_REV="1" +PKG_ARCH="arm" +PKG_LICENSE="GPL" +PKG_SITE="http://sourceforge.net/projects/matrixtv/" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.zip" +PKG_SOURCE_DIR="$PKG_NAME" +PKG_DEPENDS_TARGET="" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="MfgTool2 flash tool" +PKG_LONGDESC="Freescales manufacturing tool for flashing image to TBS Matrix system" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +make_target() { + : # nothing +} + +makeinstall_target() { + : # install from image script +} diff --git a/packages/tools/u-boot/package.mk b/packages/tools/u-boot/package.mk index c55825741d..3764fe2ce0 100644 --- a/packages/tools/u-boot/package.mk +++ b/packages/tools/u-boot/package.mk @@ -22,7 +22,7 @@ if [ "$UBOOT_VERSION" = "default" ]; then PKG_SITE="http://www.denx.de/wiki/U-Boot/WebHome" PKG_URL="ftp://ftp.denx.de/pub/u-boot/$PKG_NAME-$PKG_VERSION.tar.bz2" elif [ "$UBOOT_VERSION" = "imx6-cuboxi" ]; then - PKG_VERSION="imx6-144b1e9" + PKG_VERSION="imx6-e817fa3" PKG_SITE="http://imx.solid-run.com/wiki/index.php?title=Building_the_kernel_and_u-boot_for_the_CuBox-i_and_the_HummingBoard" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" else @@ -36,14 +36,13 @@ PKG_PRIORITY="optional" PKG_SECTION="tools" PKG_SHORTDESC="u-boot: Universal Bootloader project" PKG_LONGDESC="Das U-Boot is a cross-platform bootloader for embedded systems, used as the default boot loader by several board vendors. It is intended to be easy to port and to debug, and runs on many supported architectures, including PPC, ARM, MIPS, x86, m68k, NIOS, and Microblaze." - PKG_IS_ADDON="no" PKG_AUTORECONF="no" pre_configure_target() { if [ -z "$UBOOT_CONFIG" ]; then echo "$TARGET_PLATFORM does not define any u-boot configuration, aborting." - echo "Please add MACHINE_UBOOT_CONFIG to your platform meta file" + echo "Please add UBOOT_CONFIG to your project options file." exit 1 fi @@ -53,13 +52,39 @@ pre_configure_target() { unset LDFLAGS -# dont use some optimizations because of problems +# dont build in parallel because of problems MAKEFLAGS=-j1 } make_target() { - make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" $UBOOT_CONFIG - make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" HOSTCC="$HOST_CC" HOSTSTRIP="true" + # get number of targets to build + UBOOT_TARGET_CNT=0 + for UBOOT_TARGET in $UBOOT_CONFIG; do + UBOOT_TARGET_CNT=$((UBOOT_TARGET_CNT + 1)) + done + + for UBOOT_TARGET in $UBOOT_CONFIG; do + make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" mrproper + make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" $UBOOT_TARGET + make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" HOSTCC="$HOST_CC" HOSTSTRIP="true" + + # rename files in case of multiple targets + if [ $UBOOT_TARGET_CNT -gt 1 ]; then + if [ "$UBOOT_TARGET" = "mx6_cubox-i_config" ]; then + TARGET_NAME="cuboxi" + elif [ "$UBOOT_TARGET" = "matrix" ]; then + TARGET_NAME="matrix" + elif [ "$UBOOT_TARGET" = "udoo_quad_config" ]; then + TARGET_NAME="udoo_quad" + else + TARGET_NAME="undef" + fi + + [ -f u-boot.img ] && mv u-boot.img u-boot-$TARGET_NAME.img || : + [ -f u-boot.imx ] && mv u-boot.imx u-boot-$TARGET_NAME.imx || : + [ -f SPL ] && mv SPL SPL-$TARGET_NAME || : + fi + done } makeinstall_target() { @@ -84,25 +109,13 @@ makeinstall_target() { mkdir -p $INSTALL/usr/share/bootloader - if [ -f "./u-boot.imx" ]; then - cp ./u-boot.imx $INSTALL/usr/share/bootloader - fi + cp ./u-boot*.imx $INSTALL/usr/share/bootloader 2>/dev/null || : + cp ./u-boot*.img $INSTALL/usr/share/bootloader 2>/dev/null || : + cp ./SPL* $INSTALL/usr/share/bootloader 2>/dev/null || : - if [ -f "./u-boot.img" ]; then - cp ./u-boot.img $INSTALL/usr/share/bootloader - fi - - if [ -f "./SPL" ]; then - cp ./SPL $INSTALL/usr/share/bootloader - fi - - if [ -f "./$UBOOT_CONFIGFILE" ]; then - cp ./$UBOOT_CONFIGFILE $INSTALL/usr/share/bootloader - fi + cp ./$UBOOT_CONFIGFILE $INSTALL/usr/share/bootloader 2>/dev/null || : cp -PRv $PKG_DIR/scripts/update.sh $INSTALL/usr/share/bootloader - if [ -f "$PROJECT_DIR/$PROJECT/bootloader/uEnv.txt" ]; then - cp -PR $PROJECT_DIR/$PROJECT/bootloader/uEnv.txt $INSTALL/usr/share/bootloader - fi + cp -PR $PROJECT_DIR/$PROJECT/bootloader/uEnv*.txt $INSTALL/usr/share/bootloader 2>/dev/null || : } diff --git a/packages/tools/u-boot/release b/packages/tools/u-boot/release index eda86f4bc3..81e7f74abb 100755 --- a/packages/tools/u-boot/release +++ b/packages/tools/u-boot/release @@ -25,28 +25,11 @@ if [ -z "$UBOOT_CONFIGFILE" ]; then fi mkdir -p $RELEASE_DIR/3rdparty/bootloader - if [ -e $BUILD/u-boot-*/$UBOOT_CONFIGFILE ] ;then - cp -PR $BUILD/u-boot-*/$UBOOT_CONFIGFILE $RELEASE_DIR/3rdparty/bootloader - fi + cp -PR $BUILD/u-boot-*/$UBOOT_CONFIGFILE $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : + cp -PR $BUILD/u-boot-*/SPL* $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : + cp -PR $BUILD/u-boot-*/u-boot*.imx $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : + cp -PR $BUILD/u-boot-*/u-boot*.img $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : - if [ -e $BUILD/u-boot-*/SPL ] ;then - cp -PR $BUILD/u-boot-*/SPL $RELEASE_DIR/3rdparty/bootloader - elif [ -e $BUILD/u-boot-*/u-boot.imx ] ;then - cp -PR $BUILD/u-boot-*/u-boot.imx $RELEASE_DIR/3rdparty/bootloader - fi + cp -PR $PROJECT_DIR/$PROJECT/bootloader/uEnv*.txt $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : - if [ -e $BUILD/u-boot-*/u-boot.img ] ;then - cp -PR $BUILD/u-boot-*/u-boot.img $RELEASE_DIR/3rdparty/bootloader - fi - - if [ -e $BUILD/u-boot-*/u-boot.imx ] ;then - cp -PR $BUILD/u-boot-*/u-boot.imx $RELEASE_DIR/3rdparty/bootloader - fi - - for dtb in $BUILD/linux-*/arch/arm/boot/dts/*.dtb; do - cp -PR $dtb $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : - done - - if [ -f "$PROJECT_DIR/$PROJECT/bootloader/uEnv.txt" ]; then - cp -PR $PROJECT_DIR/$PROJECT/bootloader/uEnv.txt $RELEASE_DIR/3rdparty/bootloader - fi + cp -PR $BUILD/linux-*/arch/arm/boot/dts/*.dtb $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || : diff --git a/packages/tools/u-boot/scripts/update.sh b/packages/tools/u-boot/scripts/update.sh index 5b9ffa63d2..c9ac4c4436 100755 --- a/packages/tools/u-boot/scripts/update.sh +++ b/packages/tools/u-boot/scripts/update.sh @@ -32,6 +32,13 @@ if [ -z "$BOOT_DISK" ]; then esac fi +# we don't have mounted /etc in initramfs so just load system type +if [ -f $SYSTEM_ROOT/etc/profile.d/01-system_type.conf ]; then + . $SYSTEM_ROOT/etc/profile.d/01-system_type.conf +else + SYSTEM_TYPE="" +fi + # mount $BOOT_ROOT r/w mount -o remount,rw $BOOT_ROOT @@ -45,18 +52,44 @@ fi done # update bootloader files - if [ -f $SYSTEM_ROOT/usr/share/bootloader/u-boot.img ]; then - echo "*** updating u-boot image: $BOOT_ROOT/u-boot.img ..." - cp -p $SYSTEM_ROOT/usr/share/bootloader/u-boot.img $BOOT_ROOT + if [ "$SYSTEM_TYPE" = "matrix" ]; then + if [ -f $SYSTEM_ROOT/usr/share/bootloader/u-boot-$SYSTEM_TYPE.imx ]; then + echo "*** updating u-boot image in eMMC ..." + # clean up u-boot parameters + #dd if=/dev/zero of=/dev/mmcblk0 bs=1024 seek=384 count=8 + # access boot partition 1 + echo 0 > /sys/block/mmcblk0boot0/force_ro + # write u-boot to eMMC + dd if=$SYSTEM_ROOT/usr/share/bootloader/u-boot-$SYSTEM_TYPE.imx of=/dev/mmcblk0boot0 bs=1k seek=1 conv=fsync + # re-enable read-only access + echo 1 > /sys/block/mmcblk0boot0/force_ro + # enable boot partion 1 to boot + echo 8 > /sys/devices/soc0/soc.1/2100000.aips-bus/219c000.usdhc/mmc_host/mmc2/mmc2:0001/boot_config + fi + else + if [ -n "$SYSTEM_TYPE" ]; then + UBOOT_IMG_SRC=u-boot-$SYSTEM_TYPE.img + SPL_SRC=SPL-$SYSTEM_TYPE + else + UBOOT_IMG_SRC=u-boot.img + SPL_SRC=SPL + fi + + if [ -f $SYSTEM_ROOT/usr/share/bootloader/$UBOOT_IMG_SRC ]; then + echo "*** updating u-boot image: $BOOT_ROOT/u-boot.img ..." + cp -p $SYSTEM_ROOT/usr/share/bootloader/$UBOOT_IMG_SRC $BOOT_ROOT/u-boot.img + fi + + if [ -f $SYSTEM_ROOT/usr/share/bootloader/$SPL_SRC ]; then + echo "*** updating u-boot SPL Blob on: $BOOT_DISK ..." + dd if="$SYSTEM_ROOT/usr/share/bootloader/$SPL_SRC" of="$BOOT_DISK" bs=1k seek=1 conv=fsync + fi fi - if [ -f $SYSTEM_ROOT/usr/share/bootloader/SPL ]; then - echo "*** updating u-boot SPL Blob on: $BOOT_DISK ..." - dd if="$SYSTEM_ROOT/usr/share/bootloader/SPL" of="$BOOT_DISK" bs=1k seek=1 conv=fsync - fi - -# prefer uEnv.txt over boot.scr - if [ -f $SYSTEM_ROOT/usr/share/bootloader/uEnv.txt -a ! -f $BOOT_ROOT/uEnv.txt ]; then + # prefer uEnv.txt over boot.scr + if [ -n "$SYSTEM_TYPE" -a -f $SYSTEM_ROOT/usr/share/bootloader/uEnv-$SYSTEM_TYPE.txt -a ! -f $BOOT_ROOT/uEnv.txt ]; then + cp -p $SYSTEM_ROOT/usr/share/bootloader/uEnv-$SYSTEM_TYPE.txt $BOOT_ROOT/uEnv.txt + elif [ -f $SYSTEM_ROOT/usr/share/bootloader/uEnv.txt -a ! -f $BOOT_ROOT/uEnv.txt ]; then cp -p $SYSTEM_ROOT/usr/share/bootloader/uEnv.txt $BOOT_ROOT elif [ -f $SYSTEM_ROOT/usr/share/bootloader/boot.scr -a ! -f $BOOT_ROOT/boot.scr ]; then cp -p $SYSTEM_ROOT/usr/share/bootloader/boot.scr $BOOT_ROOT diff --git a/packages/virtual/libc/package.mk b/packages/virtual/libc/package.mk index 96ab43d82c..201964adfc 100644 --- a/packages/virtual/libc/package.mk +++ b/packages/virtual/libc/package.mk @@ -35,7 +35,7 @@ PKG_LONGDESC="Meta package for installing various tools and libs needed for libc PKG_IS_ADDON="no" PKG_AUTORECONF="no" -if [ "$TARGET_CPU" = "arm1176jzf-s" ]; then +if [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET arm-mem" PKG_DEPENDS_INIT="$PKG_DEPENDS_INIT arm-mem:init" fi diff --git a/packages/x11/driver/xf86-input-libinput/package.mk b/packages/x11/driver/xf86-input-libinput/package.mk index c39a800117..319f7b5db4 100644 --- a/packages/x11/driver/xf86-input-libinput/package.mk +++ b/packages/x11/driver/xf86-input-libinput/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="xf86-input-libinput" -PKG_VERSION="0.9.0" +PKG_VERSION="0.10.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-buildfix.patch b/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-buildfix.patch new file mode 100644 index 0000000000..a3d62a68b5 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-buildfix.patch @@ -0,0 +1,84 @@ +From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Tue, 24 Feb 2015 15:25:40 +0000 +Subject: uxa: udev integration depends on fstat and sys/stat.h + +src/uxa/intel_driver.c: In function 'I830HandleUEvents': +src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known +src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration] + +Signed-off-by: Chris Wilson + +diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c +index c554124..6e64b8c 100644 +--- a/src/uxa/intel_driver.c ++++ b/src/uxa/intel_driver.c +@@ -728,6 +728,8 @@ intel_flush_callback(CallbackListPtr *list, + } + + #if HAVE_UDEV ++#include ++ + static void + I830HandleUEvents(int fd, void *closure) + { +-- +cgit v0.10.2 + +From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Tue, 24 Feb 2015 15:25:40 +0000 +Subject: sna: udev integration depends on fstat and sys/stat.h + +src/sna/sna_driver.c: In function 'sna_handle_uevents': +src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration] + +Also take the opportunity to include udev support in the configure +summary. + +Signed-off-by: Chris Wilson + +diff --git a/configure.ac b/configure.ac +index 7476e2b..de3a4b3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev, + + if test "x$UDEV" != "xno"; then + PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"]) ++ AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"]) + if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then + AC_MSG_ERROR([udev support requested but not found (libudev)]) + fi + if test "x$udev" = "xyes"; then + AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection]) ++ udev_msg=" yes" ++ else ++ udev_msg=" no" + fi + fi + +@@ -911,6 +915,7 @@ echo " Support for Kernel Mode Setting? $KMS" + echo " Support for legacy User Mode Setting (for i810)? $UMS" + echo " Support for Direct Rendering Infrastructure:$dri_msg" + echo " Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg" ++echo " Support for display hotplug notifications (udev):$udev_msg" + echo " Build additional tools and utilities?$tools_msg" + if test -n "$xp_msg"; then + echo " Experimental support:$xp_msg" +diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c +index 8c0d0b5..bc20ef0 100644 +--- a/src/sna/sna_driver.c ++++ b/src/sna/sna_driver.c +@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL) + } + + #if HAVE_UDEV ++#include ++ + static void + sna_handle_uevents(int fd, void *closure) + { +-- +cgit v0.10.2 + diff --git a/packages/x11/driver/xf86-video-nvidia/package.mk b/packages/x11/driver/xf86-video-nvidia/package.mk index 31b1a4ab5c..e2c1466e79 100644 --- a/packages/x11/driver/xf86-video-nvidia/package.mk +++ b/packages/x11/driver/xf86-video-nvidia/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="xf86-video-nvidia" -PKG_VERSION="346.59" +PKG_VERSION="346.72" PKG_REV="1" PKG_ARCH="x86_64" PKG_LICENSE="nonfree" diff --git a/packages/x11/lib/libXrandr/package.mk b/packages/x11/lib/libXrandr/package.mk index 82775cc759..4c1553f765 100644 --- a/packages/x11/lib/libXrandr/package.mk +++ b/packages/x11/lib/libXrandr/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="libXrandr" -PKG_VERSION="1.4.2" +PKG_VERSION="1.5.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" diff --git a/packages/x11/proto/randrproto/package.mk b/packages/x11/proto/randrproto/package.mk index a9ca0299bd..fabd42fd31 100644 --- a/packages/x11/proto/randrproto/package.mk +++ b/packages/x11/proto/randrproto/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="randrproto" -PKG_VERSION="1.4.1" +PKG_VERSION="1.5.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" diff --git a/projects/Generic/options b/projects/Generic/options index 1c990cd377..186ff67eba 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -83,7 +83,7 @@ KODIPLAYER_DRIVER="default" # KODI DCADEC support (yes / no) - DCADEC_SUPPORT="no" + DCADEC_SUPPORT="yes" # Modules to install in initramfs for early boot INITRAMFS_MODULES="" diff --git a/projects/Nvidia_Legacy/options b/projects/Nvidia_Legacy/options index 32a1be6aec..24cde4cbb2 100644 --- a/projects/Nvidia_Legacy/options +++ b/projects/Nvidia_Legacy/options @@ -83,7 +83,7 @@ KODIPLAYER_DRIVER="default" # KODI DCADEC support (yes / no) - DCADEC_SUPPORT="no" + DCADEC_SUPPORT="yes" # Modules to install in initramfs for early boot INITRAMFS_MODULES="" diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index 29cdb557eb..7b09cfd5e1 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.0.1 Kernel Configuration +# Linux/arm 4.0.4 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -1556,7 +1556,32 @@ CONFIG_GPIO_ARIZONA=m # # USB GPIO expanders: # -# CONFIG_W1 is not set +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set +# CONFIG_W1_MASTER_DS1WM is not set +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2408 is not set +# CONFIG_W1_SLAVE_DS2413 is not set +# CONFIG_W1_SLAVE_DS2406 is not set +# CONFIG_W1_SLAVE_DS2423 is not set +# CONFIG_W1_SLAVE_DS2431 is not set +# CONFIG_W1_SLAVE_DS2433 is not set +# CONFIG_W1_SLAVE_DS2760 is not set +# CONFIG_W1_SLAVE_DS2780 is not set +# CONFIG_W1_SLAVE_DS2781 is not set +# CONFIG_W1_SLAVE_DS28E04 is not set +# CONFIG_W1_SLAVE_BQ27000 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set diff --git a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch index c57aa0c8b0..e705379dde 100644 --- a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -1,7 +1,7 @@ -From f68b3816564aa0c29d0da419bdfd854a7b15d68b Mon Sep 17 00:00:00 2001 +From b9eceb6796f5beba0ad03b55fd20933a351e8a8e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/61] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/46] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -25,125 +25,10 @@ index 2faceea..889d7a2 100644 g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 7a7fc569a12d489520142ddb39dedbb6982466d5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 03/61] [ffmpeg] Speed up wtv index creation - -The index creation is O(N^2) with number of entries (typically thousands). -On a Pi this can take more than 60 seconds to execute for a recording of a few hours. - -By replacing with an O(N) loop, this takes virtually zero time ---- - tools/depends/target/ffmpeg/Makefile | 3 +- - .../ffmpeg_Speed_up_wtv_index_creation.patch | 47 ++++++++++++++++++++++ - 2 files changed, 49 insertions(+), 1 deletion(-) - create mode 100644 tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch - -diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 711182f..6e8364a 100644 ---- a/tools/depends/target/ffmpeg/Makefile -+++ b/tools/depends/target/ffmpeg/Makefile -@@ -1,6 +1,6 @@ - include ../../Makefile.include - include FFMPEG-VERSION --DEPS= ../../Makefile.include FFMPEG-VERSION Makefile -+DEPS= ../../Makefile.include FFMPEG-VERSION Makefile ffmpeg_Speed_up_wtv_index_creation.patch - - # set to "yes" to enable patching - # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -68,6 +68,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) - rm -rf $(PLATFORM); mkdir -p $(PLATFORM) - cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) - cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure -+ cd $(PLATFORM); patch -p3 < ../ffmpeg_Speed_up_wtv_index_creation.patch - cd $(PLATFORM);\ - CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ - ./configure $(ffmpg_config) -diff --git a/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch b/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch -new file mode 100644 -index 0000000..4ac5636 ---- /dev/null -+++ b/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch -@@ -0,0 +1,47 @@ -+commit 0e7427498cb1131671f6fe9d054245ae7e5a36f5 -+Author: popcornmix -+Date: Tue Mar 25 19:43:07 2014 +0000 -+ -+ [ffmpeg] Speed up wtv index creation -+ -+ The index creation is O(N^2) with number of entries (typically thousands). -+ On a Pi this can take more than 60 seconds to execute for a recording of a few hours. -+ -+ By replacing with an O(N) loop, this takes virtually zero time -+ -+diff --git a/lib/ffmpeg/libavformat/wtvdec.c b/lib/ffmpeg/libavformat/wtvdec.c -+index e423370..70898bd 100644 -+--- a/lib/ffmpeg/libavformat/wtvdec.c -++++ b/lib/ffmpeg/libavformat/wtvdec.c -+@@ -980,21 +980,23 @@ static int read_header(AVFormatContext *s) -+ pb = wtvfile_open(s, root, root_size, ff_timeline_table_0_entries_Events_le16); -+ if (pb) { -+ int i; -++ AVIndexEntry *e = wtv->index_entries; -++ AVIndexEntry *e_end = wtv->index_entries + wtv->nb_index_entries - 1; -++ uint64_t last_position = 0; -+ while (1) { -+ uint64_t frame_nb = avio_rl64(pb); -+ uint64_t position = avio_rl64(pb); -++ while (frame_nb > e->size && e <= e_end) { -++ e->pos = last_position; -++ e++; -++ } -+ if (avio_feof(pb)) -+ break; -+- for (i = wtv->nb_index_entries - 1; i >= 0; i--) { -+- AVIndexEntry *e = wtv->index_entries + i; -+- if (frame_nb > e->size) -+- break; -+- if (position > e->pos) -+- e->pos = position; -+- } -++ last_position = position; -+ } -++ e_end->pos = last_position; -+ wtvfile_close(pb); -+- st->duration = wtv->index_entries[wtv->nb_index_entries - 1].timestamp; -++ st->duration = e_end->timestamp; -+ } -+ } -+ } - -From 7b6da2b187ac78022c09d9428a1041d33aa9777e Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 04/61] [hifiberry] Hack: force it to be recognised as IEC958 - capable to enable passthrough options - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index e22db7a..0120bd5 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -1342,6 +1342,10 @@ void CAESinkALSA::EnumerateDevice(AEDeviceInfoList &list, const std::string &dev - if (snd_card_get_name(cardNr, &cardName) == 0) - info.m_displayName = cardName; - -+ // hack: hifiberry digi doesn't correctly report as iec958 device. Needs fixing in kernel driver -+ if (info.m_displayName == "snd_rpi_hifiberry_digi") -+ info.m_deviceType = AE_DEVTYPE_IEC958; -+ - if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && - info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") - { - -From 877979729163728264ccf1d9d4044cf7871bf85d Mon Sep 17 00:00:00 2001 +From 560bcc821fc5ceec473bfa41b36fdc213bd6e32b Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 05/61] Improved file buffering in CArchive +Subject: [PATCH 04/46] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -203,20 +88,20 @@ index 6ed0f8f..8506d95 100644 } else -From ed0c376577971a2b7dab4770d6914bb631b86d34 Mon Sep 17 00:00:00 2001 +From fca0641cac1a00faffe3d075d91fd987c9a8fbd1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 06/61] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 05/46] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 34e487f..eb5d4de 100644 +index fd21bc2..6d6da33 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3400,7 +3400,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) +@@ -3416,7 +3416,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) hint.aspect = aspect; hint.forced_aspect = true; } @@ -227,10 +112,10 @@ index 34e487f..eb5d4de 100644 else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From 15a146068f22ac23146c6bd832c9e89f041a8f3c Mon Sep 17 00:00:00 2001 +From 161cfe110a110062f52e40fdd2f7658f7805cee7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 07/61] filesystem: Make support of browsing into archives +Subject: [PATCH 06/46] filesystem: Make support of browsing into archives optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. @@ -248,10 +133,10 @@ We'll let people who don't use archives disable it manually 3 files changed, 18 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 85df475..13b736e 100644 +index cb40d52..953b07c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16504,6 +16504,15 @@ msgstr "" +@@ -16606,6 +16606,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -268,7 +153,7 @@ index 85df475..13b736e 100644 #. Setting #38011 "Videos -> Library -> Show All Items entry" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index edbab98..7d2ba34 100644 +index d1a8e1c..a780a43 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -304,6 +304,11 @@ @@ -284,18 +169,18 @@ index edbab98..7d2ba34 100644 diff --git a/xbmc/filesystem/FileDirectoryFactory.cpp b/xbmc/filesystem/FileDirectoryFactory.cpp -index 3a5ba4e..f1f6f79 100644 +index 5af92e7..568a1a8 100644 --- a/xbmc/filesystem/FileDirectoryFactory.cpp +++ b/xbmc/filesystem/FileDirectoryFactory.cpp -@@ -41,6 +41,7 @@ +@@ -39,6 +39,7 @@ + #include "playlists/PlayListFactory.h" #include "Directory.h" #include "File.h" - #include "ZipManager.h" +#include "settings/Settings.h" - #include "settings/AdvancedSettings.h" #include "FileItem.h" #include "utils/StringUtils.h" -@@ -115,6 +116,8 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, + #include "URL.h" +@@ -112,6 +113,8 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, return NULL; } #endif @@ -304,7 +189,7 @@ index 3a5ba4e..f1f6f79 100644 if (url.IsFileType("zip")) { CURL zipURL = URIUtils::CreateArchivePath("zip", url); -@@ -188,6 +191,7 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, +@@ -185,6 +188,7 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, } return NULL; } @@ -313,10 +198,10 @@ index 3a5ba4e..f1f6f79 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From ded5fd595dc852491d8f595e8358680f7bb97a6f Mon Sep 17 00:00:00 2001 +From b2b07e83668cca34845f48d9de812350f43d93d3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 09/61] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 08/46] [rbp] Make cachemembuffersize default depend on memory size --- @@ -326,7 +211,7 @@ Subject: [PATCH 09/61] [rbp] Make cachemembuffersize default depend on memory 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp -index 59dd1da..b5c2156 100644 +index 59dd1da..68d2694 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -23,6 +23,7 @@ @@ -343,7 +228,7 @@ index 59dd1da..b5c2156 100644 +void CRBP::InitializeSettings() +{ -+ if (g_advancedSettings.m_cacheMemBufferSize == ~0U) ++ if (m_initialized && g_advancedSettings.m_cacheMemBufferSize == ~0U) + g_advancedSettings.m_cacheMemBufferSize = m_arm_mem < 256 ? 1024 * 1024 * 2 : 1024 * 1024 * 20; +} + @@ -380,10 +265,10 @@ index 9559914..7fc8b42 100644 void Deinitialize(); int GetArmMem() { return m_arm_mem; } diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 1ba951d..2d906a6 100644 +index 2e3282c..d1606a2 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -45,6 +45,9 @@ +@@ -43,6 +43,9 @@ #if defined(TARGET_DARWIN_IOS) #include "osx/DarwinUtils.h" #endif @@ -393,7 +278,7 @@ index 1ba951d..2d906a6 100644 using namespace ADDON; using namespace XFILE; -@@ -352,7 +355,12 @@ void CAdvancedSettings::Initialize() +@@ -350,7 +353,12 @@ void CAdvancedSettings::Initialize() m_bPVRAutoScanIconsUserSet = false; m_iPVRNumericChannelSwitchTimeout = 1000; @@ -406,7 +291,7 @@ index 1ba951d..2d906a6 100644 m_networkBufferMode = 0; // Default (buffer all internet streams/filesystems) // the following setting determines the readRate of a player data // as multiply of the default data read rate -@@ -407,7 +415,9 @@ void CAdvancedSettings::Initialize() +@@ -405,7 +413,9 @@ void CAdvancedSettings::Initialize() #endif m_userAgent = g_sysinfo.GetUserAgent(); @@ -418,11 +303,10 @@ index 1ba951d..2d906a6 100644 } - -From ec6bf6a43c0c0680d393dc5039fbb57927a7c10f Mon Sep 17 00:00:00 2001 +From d7b43a46c9a7c30494416e0c711edeba1a0d3b93 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 11/61] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -430,7 +314,7 @@ Subject: [PATCH 11/61] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index 1fafd9a..e0288aa 100644 +index 666645c..c3dc72c 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -674,6 +674,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -444,10 +328,10 @@ index 1fafd9a..e0288aa 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 390b641d3904777dba820aa4633a94314386e081 Mon Sep 17 00:00:00 2001 +From 7a435977a8b962bc6cc9257f35f0878796165674 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 12/61] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 11/46] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -476,10 +360,10 @@ index bda7430..68fc647 100644 SetResolutionString(m_desktopRes); -From ca1037188ea1d60c22b13ab937d21401d4397218 Mon Sep 17 00:00:00 2001 +From bcd2ffe88981e8d46c9b36555a013378a0400425 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 13/61] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 12/46] [dvdplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -504,10 +388,10 @@ Needed updated firmware 9 files changed, 91 insertions(+), 7 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 13b736e..07a25d3 100644 +index 953b07c..db2c0a5 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -6318,7 +6318,22 @@ msgctxt "#13459" +@@ -6357,7 +6357,22 @@ msgctxt "#13459" msgid "Use OMXPlayer for decoding of video files." msgstr "" @@ -531,7 +415,7 @@ index 13b736e..07a25d3 100644 #: system/settings/settings.xml msgctxt "#13505" -@@ -16550,3 +16565,10 @@ msgstr "" +@@ -16652,3 +16667,10 @@ msgstr "" msgctxt "#38016" msgid "%d fps" msgstr "" @@ -543,7 +427,7 @@ index 13b736e..07a25d3 100644 +msgstr "" + diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 7d2ba34..304bd46 100644 +index a780a43..aff0bf8 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -572,6 +572,20 @@ @@ -704,7 +588,7 @@ index 1122a1d..7389754 100644 struct SInfo { diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp -index b5c2156..32aa409 100644 +index 68d2694..096ea18 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -225,4 +225,18 @@ void CRBP::Deinitialize() @@ -739,10 +623,10 @@ index 7fc8b42..b422c89 100644 private: DllBcmHost *m_DllBcmHost; diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 2d906a6..24df5ac 100644 +index d1606a2..344e91b 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -113,6 +113,7 @@ void CAdvancedSettings::Initialize() +@@ -111,6 +111,7 @@ void CAdvancedSettings::Initialize() m_audioHeadRoom = 0; m_ac3Gain = 12.0f; m_audioApplyDrc = -1.0f; @@ -750,7 +634,7 @@ index 2d906a6..24df5ac 100644 m_dvdplayerIgnoreDTSinWAV = false; //default hold time of 25 ms, this allows a 20 hertz sine to pass undistorted -@@ -475,6 +476,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) +@@ -473,6 +474,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) if (pElement) { XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f); @@ -771,10 +655,10 @@ index 7df1bf7..732b69d 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 8c5c342953abc427f0c0fe8548ce9c6c4c67d08d Mon Sep 17 00:00:00 2001 +From e6bc21dbc556ff18da07e22b3064fbb219462678 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 14/61] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -782,10 +666,10 @@ Subject: [PATCH 14/61] [dvdplayer] exerimental: don't raise priority of audio 1 file changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index eb5d4de..5ea3c51 100644 +index 6d6da33..aed1550 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3385,7 +3385,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) +@@ -3401,7 +3401,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) m_dvdPlayerAudio->SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); /* audio normally won't consume full cpu, so let it have prio */ @@ -798,10 +682,10 @@ index eb5d4de..5ea3c51 100644 } -From 66c3e2d5829fac98b54059a4d82e33ec33537b0d Mon Sep 17 00:00:00 2001 +From 4de8f510f317ab41c05cc78ee8a914af0f8e4387 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 15/61] [audio] Add settings option to boost centre channel +Subject: [PATCH 14/46] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -819,10 +703,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 45 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 07a25d3..7d445f9 100644 +index db2c0a5..63f78a1 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16572,3 +16572,17 @@ msgctxt "#38006" +@@ -16674,3 +16674,17 @@ msgctxt "#38006" msgid "Audio has to stay in sync, this can either be done by resampling, or adjusting the PLL" msgstr "" @@ -841,10 +725,10 @@ index 07a25d3..7d445f9 100644 +msgid "%i dB" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 304bd46..2aaf772 100644 +index aff0bf8..f6ad877 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2589,6 +2589,18 @@ +@@ -2597,6 +2597,18 @@ true @@ -923,72 +807,10 @@ index f99c0e6..1911189 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 9832febb10d609a6e75465b3d82e681252686566 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 3 Oct 2014 18:40:06 +0100 -Subject: [PATCH 16/61] [SinkPi] Handle multichannel layout more like OMXAudio - ---- - xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -index a7691e8..d72a97a 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -@@ -94,9 +94,9 @@ static void SetAudioProps(bool stream_channels, uint32_t channel_map) - CLog::Log(LOGDEBUG, "%s:%s hdmi_stream_channels %d hdmi_channel_map %08x", CLASSNAME, __func__, stream_channels, channel_map); - } - --static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) -+static uint32_t GetChannelMap(const CAEChannelInfo &channelLayout, bool passthrough) - { -- unsigned int channels = format.m_channelLayout.Count(); -+ unsigned int channels = channelLayout.Count(); - uint32_t channel_map = 0; - if (passthrough) - return 0; -@@ -135,12 +135,12 @@ static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) - // According to CEA-861-D only RL and RR are known. In case of a format having SL and SR channels - // but no BR BL channels, we use the wide map in order to open only the num of channels really - // needed. -- if (format.m_channelLayout.HasChannel(AE_CH_BL) && !format.m_channelLayout.HasChannel(AE_CH_SL)) -+ if (channelLayout.HasChannel(AE_CH_BL) && !channelLayout.HasChannel(AE_CH_SL)) - map = map_back; - - for (unsigned int i = 0; i < channels; ++i) - { -- AEChannel c = format.m_channelLayout[i]; -+ AEChannel c = channelLayout[i]; - unsigned int chan = 0; - if ((unsigned int)c < sizeof map_normal / sizeof *map_normal) - chan = map[(unsigned int)c]; -@@ -171,9 +171,9 @@ static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) - 0xff, // 7 - 0x13, // 7.1 - }; -- uint8_t cea = format.m_channelLayout.HasChannel(AE_CH_LFE) ? cea_map_lfe[channels] : cea_map[channels]; -+ uint8_t cea = channelLayout.HasChannel(AE_CH_LFE) ? cea_map_lfe[channels] : cea_map[channels]; - if (cea == 0xff) -- CLog::Log(LOGERROR, "%s::%s - Unexpected CEA mapping %d,%d", CLASSNAME, __func__, format.m_channelLayout.HasChannel(AE_CH_LFE), channels); -+ CLog::Log(LOGERROR, "%s::%s - Unexpected CEA mapping %d,%d", CLASSNAME, __func__, channelLayout.HasChannel(AE_CH_LFE), channels); - - channel_map |= cea << 24; - -@@ -215,7 +215,7 @@ bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device) - format.m_frames = format.m_sampleRate * AUDIO_PLAYBUFFER / NUM_OMX_BUFFERS; - format.m_frameSamples = format.m_frames * channels; - -- SetAudioProps(m_passthrough, GetChannelMap(format, m_passthrough)); -+ SetAudioProps(m_passthrough, GetChannelMap(format.m_channelLayout, m_passthrough)); - - m_format = format; - m_sinkbuffer_sec_per_byte = 1.0 / (double)(m_format.m_frameSize * m_format.m_sampleRate); - -From d8fae79683f81ead870a5abac67da826e935183c Mon Sep 17 00:00:00 2001 +From fb43e160b3373ec9c3ed53e67dbcc907706a233d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 17/61] [rbp] Default extract thumbnails to false +Subject: [PATCH 15/46] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -1018,10 +840,10 @@ index 50fe36a..a54a4c4 100644
-From 1326d4272c2e881b3a154256e6825c181b6ee3ad Mon Sep 17 00:00:00 2001 +From 42afb7e432619c25a0c6389636784117c049c967 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 22/61] [dvdplayer] Add lock for player creation +Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -1029,7 +851,7 @@ Subject: [PATCH 22/61] [dvdplayer] Add lock for player creation 2 files changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 5ea3c51..f0ffe17 100644 +index aed1550..ff397f7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -517,6 +517,7 @@ int CSelectionStreams::CountSource(StreamType type, StreamSource source) const @@ -1048,7 +870,7 @@ index 5ea3c51..f0ffe17 100644 if (!m_players_created) return; delete m_dvdPlayerVideo; -@@ -4252,6 +4254,7 @@ double CDVDPlayer::GetQueueTime() +@@ -4268,6 +4270,7 @@ double CDVDPlayer::GetQueueTime() void CDVDPlayer::GetVideoStreamInfo(SPlayerVideoStreamInfo &info) { @@ -1057,20 +879,20 @@ index 5ea3c51..f0ffe17 100644 std::string retVal; diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h -index 71a62f1..9993ac0 100644 +index 2a4aea5..f74e71d 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.h +++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -558,4 +558,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer +@@ -557,4 +557,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer // omxplayer variables struct SOmxPlayerState m_OmxPlayerState; bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; -From f9b5ced2edadf501b4655a82788eaea620f6e4ed Mon Sep 17 00:00:00 2001 +From 8cc3e50eccf8fbfb00d35f8238f8bc7ee49c159b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 23/61] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 21/46] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -1079,7 +901,7 @@ In dvd stills mode give it a chance to return pictures that weren't ready when f 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index d725d32..55fa8b1 100644 +index a8add39..9f1892b 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -314,7 +314,8 @@ void CDVDPlayerVideo::Process() @@ -1147,10 +969,10 @@ index d725d32..55fa8b1 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From 36666ba4c6dd8a03f0b0c0055bb5238f4e8920e2 Mon Sep 17 00:00:00 2001 +From 2b43fd15eeb8c63853efbd4bfbfb40d6e3d4d0d0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 24/61] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 22/46] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -1173,10 +995,10 @@ index fcdd063..16f0c89 100644 } -From fc7285cbd4934c80ed8ec948ba0762d20ada7138 Mon Sep 17 00:00:00 2001 +From a878a035369d1f0a74474d1a22801c256a876dd8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 25/61] logging: Add microsecond timer to log messages +Subject: [PATCH 23/46] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -1229,10 +1051,10 @@ index 3443f12..31c4a99 100644 levelNames[logLevel]) + strData; -From adb7882f273437d58e9aff7c26c11ab1a8d32a73 Mon Sep 17 00:00:00 2001 +From 1e2fcfee503416f290d7bb20060bf07f0c5a705e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 26/61] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 24/46] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -1306,23 +1128,22 @@ index 68fc647..c80114e 100644 if(!m_fixedMode && GETFLAGS_GROUP(res.dwFlags) && GETFLAGS_MODE(res.dwFlags)) -From c727022054334a0f10585d36adbe9bb7814b0b82 Mon Sep 17 00:00:00 2001 +From 03136951f373c285114d45ec73a07c11a62152c9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 27/61] Fix for UI not showing both extractflags and +Subject: [PATCH 25/46] Fix for UI not showing both extractflags and extractthumb --- addons/resource.language.en_gb/resources/strings.po | 11 ++++++++--- - system/settings/rbp.xml | 4 ---- - system/settings/settings.xml | 10 +++++----- - 3 files changed, 13 insertions(+), 12 deletions(-) + system/settings/settings.xml | 4 ++-- + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c52f230..aee20d0 100644 +index 5c31c6f..c48b256 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -10945,7 +10945,7 @@ msgstr "" +@@ -11023,7 +11023,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -1331,7 +1152,7 @@ index c52f230..aee20d0 100644 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -14475,7 +14475,7 @@ msgstr "" +@@ -14573,7 +14573,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36178" @@ -1340,16 +1161,16 @@ index c52f230..aee20d0 100644 msgstr "" #. Description of setting "Videos -> File lists -> Replace file names with library titles" with label #20419 -@@ -14487,7 +14487,7 @@ msgstr "" +@@ -14585,7 +14585,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36180" --msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in Library Mode." -+msgid "Extract thumbnails, to display in Library Mode." +-msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in library mode." ++msgid "Extract thumbnails, to display in library Mode." msgstr "" #: system/settings/settings.xml -@@ -16601,3 +16601,8 @@ msgstr "" +@@ -16703,3 +16703,8 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -1358,59 +1179,26 @@ index c52f230..aee20d0 100644 +msgctxt "#38103" +msgid "Extract thumbnails from video files" +msgstr "" -diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index a54a4c4..208cd49 100644 ---- a/system/settings/rbp.xml -+++ b/system/settings/rbp.xml -@@ -33,10 +33,6 @@ - - false - -- -- -- -- - - false - diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 2aaf772..08d8f41 100644 +index f6ad877..d1acdae 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -846,23 +846,23 @@ - - - -- -+ - 1 - true - - -- -+ - 1 - true - - -- -+ - 1 +@@ -861,8 +861,8 @@ true - - 4 -+ ++ + 1 true -From 5c10acd7538646333db2b57f87e4bf8faa1c2c19 Mon Sep 17 00:00:00 2001 +From 8c257d47e97ed8a5cb78604746247e7b98693d89 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 28/61] Disable autoscrolling while on screensaver and while +Subject: [PATCH 26/46] Disable autoscrolling while on screensaver and while opening streams. --- @@ -1423,10 +1211,10 @@ Subject: [PATCH 28/61] Disable autoscrolling while on screensaver and while 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 16af7df..9c6496b 100644 +index 11564aa..48536b9 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -4958,3 +4958,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -4951,3 +4951,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1441,7 +1229,7 @@ index 16af7df..9c6496b 100644 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index b4da8f2..cc064c3 100644 +index f9c636e..487716a 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -389,6 +389,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs @@ -1454,7 +1242,7 @@ index b4da8f2..cc064c3 100644 virtual bool OnSettingsSaving() const; diff --git a/xbmc/guilib/GUIFadeLabelControl.cpp b/xbmc/guilib/GUIFadeLabelControl.cpp -index 9eadbe4..b2b5f13 100644 +index ac3cd94..5b8859d 100644 --- a/xbmc/guilib/GUIFadeLabelControl.cpp +++ b/xbmc/guilib/GUIFadeLabelControl.cpp @@ -20,6 +20,8 @@ @@ -1466,7 +1254,7 @@ index 9eadbe4..b2b5f13 100644 using namespace std; CGUIFadeLabelControl::CGUIFadeLabelControl(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, bool scrollOut, unsigned int timeToDelayAtEnd, bool resetOnLabelChange) -@@ -102,7 +104,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d +@@ -104,7 +106,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d m_lastLabel = m_currentLabel; } @@ -1541,10 +1329,10 @@ index 0d5b3f7..6d23024 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 796877858489b061853455e99cebd3131e76acf3 Mon Sep 17 00:00:00 2001 +From 4425b2be0ad1e5c3ea6eeddbd91f59046ed361ea Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 29/61] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 27/46] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1639,17 +1427,17 @@ index ab298b2..10c5ee0 100644 } catch(...) { -From 5c9736a99bc81334fd7aedf28578392c7780fb1a Mon Sep 17 00:00:00 2001 +From bdd96e0b98ef05db5e8067a0a802246e0d3f6f36 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 30/61] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 28/46] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp -index eafabb3..8a3beb7 100644 +index 4c363cf..b90237b 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp @@ -50,6 +50,9 @@ @@ -1674,10 +1462,10 @@ index eafabb3..8a3beb7 100644 { // If dvd is an mpeg2 and hint.stills -From 0b367aae0fae2d797055a20dd70949207659220f Mon Sep 17 00:00:00 2001 +From ce8914a9b4816a738606174e8ee4087b0466923e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 42/61] [mmalrenderer] Add SetCodecControl function and prefer +Subject: [PATCH 29/46] [mmalrenderer] Add SetCodecControl function and prefer to return pictures when renderer is low (disabled) --- @@ -1686,7 +1474,7 @@ Subject: [PATCH 42/61] [mmalrenderer] Add SetCodecControl function and prefer 2 files changed, 15 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index 27fa9c4..a2510be 100644 +index 95584aa..c37f321 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp @@ -124,6 +124,7 @@ CMMALVideo::CMMALVideo() @@ -1697,7 +1485,7 @@ index 27fa9c4..a2510be 100644 } CMMALVideo::~CMMALVideo() -@@ -864,6 +865,9 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) +@@ -865,6 +866,9 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) if (g_advancedSettings.CanLogComponent(LOGVIDEO)) CLog::Log(LOGDEBUG, "%s::%s - got output picture:%d", CLASSNAME, __func__, m_output_ready.size()); ret |= VC_PICTURE; @@ -1707,7 +1495,7 @@ index 27fa9c4..a2510be 100644 } if (!ret) { -@@ -942,6 +946,7 @@ void CMMALVideo::Reset(void) +@@ -943,6 +947,7 @@ void CMMALVideo::Reset(void) m_startframe = false; m_decoderPts = DVD_NOPTS_VALUE; m_preroll = !m_hints.stills && (m_speed == DVD_PLAYSPEED_NORMAL || m_speed == DVD_PLAYSPEED_PAUSE); @@ -1715,7 +1503,7 @@ index 27fa9c4..a2510be 100644 } void CMMALVideo::SetSpeed(int iSpeed) -@@ -1057,3 +1062,11 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) +@@ -1058,3 +1063,11 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) droppedPics= -1; return false; } @@ -1748,67 +1536,10 @@ index 51a64d1..bde8c06 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From 7ec37cce302f39ca91ba8bc86be80e7e1d7368c5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 1 Apr 2015 16:31:37 +0100 -Subject: [PATCH 43/61] [mmalcodec] Limit submitted video frames. Seems to - avoid stutter issues with low bitrate videos - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index a2510be..c37f321 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -@@ -848,10 +848,11 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) - break; - } - int ret = 0; -- if (mmal_queue_length(m_dec_input_pool->queue) > 0 && !m_demux_queue_length) -+ double queued = m_decoderPts != DVD_NOPTS_VALUE && pts != DVD_NOPTS_VALUE ? pts - m_decoderPts : 0.0; -+ if (mmal_queue_length(m_dec_input_pool->queue) > 0 && !m_demux_queue_length && queued <= DVD_MSEC_TO_TIME(500)) - { - if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -- CLog::Log(LOGDEBUG, "%s::%s - got space for output: demux_queue(%d) space(%d)", CLASSNAME, __func__, m_demux_queue_length, mmal_queue_length(m_dec_input_pool->queue) * m_dec_input->buffer_size); -+ CLog::Log(LOGDEBUG, "%s::%s - got space for output: demux_queue(%d) space(%d) queued(%.2f)", CLASSNAME, __func__, m_demux_queue_length, mmal_queue_length(m_dec_input_pool->queue) * m_dec_input->buffer_size, queued*1e-6); - ret |= VC_BUFFER; - } - else - -From 959ec414be56d1d4ca4774508069d350c61a83e9 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 24 Feb 2015 15:57:29 +0000 -Subject: [PATCH 44/61] [mmalrenderer] Fix for stereo view modes - -PR6090 (dirty regions for video) meant that RenderUpate is no longer called with the expected stereo view mode. -So, just explicitly set this before calling ManageDisplay to get the desired rectangles ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index fc9dfca..f1e3252 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -366,7 +366,11 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - - if (!m_bConfigured) return; - -+ if (g_graphicsContext.GetStereoMode()) -+ g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_LEFT); - ManageDisplay(); -+ if (g_graphicsContext.GetStereoMode()) -+ g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_OFF); - - // if running bypass, then the player might need the src/dst rects - // for sizing video playback on a layer other than the gles layer. - -From c755cacee4346e3a55cd337d85630471fe6ef309 Mon Sep 17 00:00:00 2001 +From d93b8a58ddcac183150087703bd7a32c061e510a Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 45/61] Load OSD dialogs on startup. +Subject: [PATCH 30/46] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -1823,10 +1554,10 @@ See http://forum.kodi.tv/showthread.php?tid=211501&pid=1938811#pid1938811 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp -index 499f926..9f85783 100644 +index 1194d4c..82b980f 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +++ b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp -@@ -50,6 +50,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : +@@ -45,6 +45,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : CGUIDialog(WINDOW_DIALOG_PVR_OSD_CHANNELS, "DialogPVRChannelsOSD.xml"), Observer() { @@ -1862,10 +1593,10 @@ index 5e091eb..35b417f 100644 CGUIDialogAudioSubtitleSettings::~CGUIDialogAudioSubtitleSettings() { } diff --git a/xbmc/video/dialogs/GUIDialogSubtitles.cpp b/xbmc/video/dialogs/GUIDialogSubtitles.cpp -index 6c14cd5..7e960ad 100644 +index 6dad844..a3e820c 100644 --- a/xbmc/video/dialogs/GUIDialogSubtitles.cpp +++ b/xbmc/video/dialogs/GUIDialogSubtitles.cpp -@@ -100,7 +100,7 @@ class CSubtitlesJob: public CJob +@@ -98,7 +98,7 @@ class CSubtitlesJob: public CJob CGUIDialogSubtitles::CGUIDialogSubtitles(void) : CGUIDialog(WINDOW_DIALOG_SUBTITLES, "DialogSubtitles.xml") { @@ -1875,10 +1606,10 @@ index 6c14cd5..7e960ad 100644 m_serviceItems = new CFileItemList; m_pausedOnRun = false; diff --git a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp -index 8a856e1..18b25fd 100644 +index 7316936..7033124 100644 --- a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp -@@ -35,7 +35,7 @@ using namespace PVR; +@@ -30,7 +30,7 @@ using namespace PVR; CGUIDialogVideoOSD::CGUIDialogVideoOSD(void) : CGUIDialog(WINDOW_DIALOG_VIDEO_OSD, "VideoOSD.xml") { @@ -1888,10 +1619,10 @@ index 8a856e1..18b25fd 100644 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index 4940561..f52698c 100644 +index eb814ca..ae4c69f 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -@@ -64,7 +64,9 @@ using namespace std; +@@ -63,7 +63,9 @@ using namespace std; CGUIDialogVideoSettings::CGUIDialogVideoSettings() : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "VideoOSDSettings.xml"), m_viewModeChanged(false) @@ -1903,10 +1634,10 @@ index 4940561..f52698c 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From b54cf11f709c406dfaafdab2703d1c111d0b61b8 Mon Sep 17 00:00:00 2001 +From 25c18140c09a346a0e9aa98699bcb6e02bda11b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 46/61] configure: Add raspberry-pi2 platform +Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -1918,10 +1649,10 @@ Subject: [PATCH 46/61] configure: Add raspberry-pi2 platform 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac -index cf18212..65df15f 100644 +index 760e873..2b8660e 100644 --- a/configure.ac +++ b/configure.ac -@@ -746,8 +746,17 @@ case $use_platform in +@@ -750,8 +750,17 @@ case $use_platform in raspberry-pi) target_platform=target_raspberry_pi use_neon=no @@ -1940,7 +1671,7 @@ index cf18212..65df15f 100644 use_hardcoded_tables="yes" ARCH="arm" AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer]) -@@ -755,8 +764,7 @@ case $use_platform in +@@ -759,8 +768,7 @@ case $use_platform in USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" @@ -2080,10 +1811,10 @@ index cdc2fe4..379bd1d 100644 set(CMAKE_SYSTEM_NAME Linux) endif() -From eded2ce0900d7837f4e451d5b58bc02153ce1e79 Mon Sep 17 00:00:00 2001 +From b8fcca27e22ea37429e7a296968af3c0c611f931 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 47/61] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 32/46] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -2139,10 +1870,10 @@ index 212a89b..dd509ea 100644 unsigned int iDisplayHeight = height; -From 98545b6d99c3ab0d9c2b55931cbae5e45b68411c Mon Sep 17 00:00:00 2001 +From 6f86813ee99e5c019dc2eae80b4fd5877f265318 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 48/61] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 33/46] [graphics] Allow switching to a more suitable 3D resolution --- @@ -2151,18 +1882,18 @@ Subject: [PATCH 48/61] [graphics] Allow switching to a more suitable 3D 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index 58406f7..a476cd8 100644 +index bd7dff9..ed7316a 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -35,6 +35,7 @@ - #include "utils/JobManager.h" +@@ -32,6 +32,7 @@ + #include "input/InputManager.h" + #include "GUIWindowManager.h" #include "video/VideoReferenceClock.h" - #include "cores/IPlayer.h" +#include using namespace std; -@@ -500,6 +501,43 @@ RESOLUTION CGraphicContext::GetVideoResolution() const +@@ -499,6 +500,43 @@ RESOLUTION CGraphicContext::GetVideoResolution() const return m_Resolution; } @@ -2206,7 +1937,7 @@ index 58406f7..a476cd8 100644 void CGraphicContext::ResetOverscan(RESOLUTION_INFO &res) { res.Overscan.left = 0; -@@ -1037,7 +1075,7 @@ void CGraphicContext::Flip(const CDirtyRegionList& dirty) +@@ -1042,7 +1080,7 @@ void CGraphicContext::Flip(const CDirtyRegionList& dirty) if(m_stereoMode != m_nextStereoMode) { m_stereoMode = m_nextStereoMode; @@ -2216,7 +1947,7 @@ index 58406f7..a476cd8 100644 } } diff --git a/xbmc/guilib/GraphicContext.h b/xbmc/guilib/GraphicContext.h -index 5c1501a..aba11cd 100644 +index a8fd03e..8501e58 100644 --- a/xbmc/guilib/GraphicContext.h +++ b/xbmc/guilib/GraphicContext.h @@ -108,6 +108,7 @@ class CGraphicContext : public CCriticalSection, @@ -2228,10 +1959,10 @@ index 5c1501a..aba11cd 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From 6376797042cac6d4c821c850e4569ccf66c03ebb Mon Sep 17 00:00:00 2001 +From bd09bf6d6894e58361f24e703963ac24810ff9a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 49/61] [3D] Support switching to 3D resolutions +Subject: [PATCH 34/46] [3D] Support switching to 3D resolutions Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes. Also remove the old code that treated 3D modes differently when assigning a score. @@ -2240,7 +1971,7 @@ Also remove the old code that treated 3D modes differently when assigning a scor 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoRenderers/BaseRenderer.cpp -index 4345c0f..cc5dc60 100644 +index bfafab7..84e6261 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoRenderers/BaseRenderer.cpp @@ -222,10 +222,14 @@ void CBaseRenderer::FindResolutionFromFpsMatch(float fps, float& weight) @@ -2313,10 +2044,10 @@ index 4345c0f..cc5dc60 100644 return current; } -From 1ca60872dbd7c116d44a2f9a49d5cc704e5193e2 Mon Sep 17 00:00:00 2001 +From e89f3576f0192f6a0827016fee5d5967f502a3e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 50/61] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 35/46] [graphics] Make pixel ratio for 3d modes consistent Note: Use the stored stereo flags from lists of resolutions. Use current stereo mode for current resolution. @@ -2328,7 +2059,7 @@ Use current stereo mode for current resolution. 4 files changed, 32 insertions(+), 35 deletions(-) diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoRenderers/BaseRenderer.cpp -index cc5dc60..0c23290 100644 +index 84e6261..f82f37f 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoRenderers/BaseRenderer.cpp @@ -119,7 +119,7 @@ bool CBaseRenderer::FindResolutionFromOverride(float fps, float& weight, bool fa @@ -2376,10 +2107,10 @@ index cc5dc60..0c23290 100644 continue; diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index a476cd8..9882935 100644 +index ed7316a..f591b9c 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -747,32 +747,33 @@ void CGraphicContext::ApplyStateBlock() +@@ -746,32 +746,33 @@ void CGraphicContext::ApplyStateBlock() g_Windowing.ApplyStateBlock(); } @@ -2428,7 +2159,7 @@ index a476cd8..9882935 100644 info.iWidth = (info.iWidth - info.iBlanking) / 2; info.Overscan.left /= 2; info.Overscan.right = (info.Overscan.right - info.iBlanking) / 2; -@@ -790,16 +791,14 @@ void CGraphicContext::SetResInfo(RESOLUTION res, const RESOLUTION_INFO& info) +@@ -795,16 +796,14 @@ void CGraphicContext::SetResInfo(RESOLUTION res, const RESOLUTION_INFO& info) if(info.dwFlags & D3DPRESENTFLAG_MODE3DSBS) { curr.Overscan.right = info.Overscan.right * 2 + info.iBlanking; @@ -2448,7 +2179,7 @@ index a476cd8..9882935 100644 } diff --git a/xbmc/guilib/GraphicContext.h b/xbmc/guilib/GraphicContext.h -index aba11cd..c84aed0 100644 +index 8501e58..0c53cae 100644 --- a/xbmc/guilib/GraphicContext.h +++ b/xbmc/guilib/GraphicContext.h @@ -120,11 +120,15 @@ class CGraphicContext : public CCriticalSection, @@ -2519,10 +2250,10 @@ index c80114e..80c05d2 100644 AddUniqueResolution(res2, resolutions); -From 322614f99f49aea527c75d9573e245da12cfbade Mon Sep 17 00:00:00 2001 +From 018e123537f5a75f92ff3eb1e71ee72712011d2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2015 17:05:18 +0000 -Subject: [PATCH 51/61] [players] Add settings option to enable MVC support +Subject: [PATCH 36/46] [players] Add settings option to enable MVC support --- addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ @@ -2532,10 +2263,10 @@ Subject: [PATCH 51/61] [players] Add settings option to enable MVC support 4 files changed, 27 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index aee20d0..3d6b660 100644 +index c48b256..8ecf1bf 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16602,6 +16602,16 @@ msgctxt "#38052" +@@ -16704,6 +16704,16 @@ msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -2553,7 +2284,7 @@ index aee20d0..3d6b660 100644 msgctxt "#38103" msgid "Extract thumbnails from video files" diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index 208cd49..6357b1d 100644 +index a54a4c4..31a6bcc 100644 --- a/system/settings/rbp.xml +++ b/system/settings/rbp.xml @@ -27,6 +27,13 @@ @@ -2603,10 +2334,10 @@ index e4f6d86..5d324f4 100644 case AV_CODEC_ID_MPEG4: // (role name) video_decoder.mpeg4 -From 9fed5fcd6c6c2150ba465abc04fb7776cb878b03 Mon Sep 17 00:00:00 2001 +From 3879afb94401608ee5985a8daabd53ade2e114e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 52/61] [mmalrenderer] Switch to using transform flags for 3d +Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d modes --- @@ -2620,10 +2351,10 @@ Subject: [PATCH 52/61] [mmalrenderer] Switch to using transform flags for 3d 7 files changed, 75 insertions(+), 130 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 3d6b660..eeb6d0a 100644 +index 8ecf1bf..aefe898 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16612,6 +16612,16 @@ msgctxt "#38111" +@@ -16714,6 +16714,16 @@ msgctxt "#38111" msgid "This option decodes frames for both eyes of MVC video. Disabling may improve performance if you don't require 3D" msgstr "" @@ -2641,7 +2372,7 @@ index 3d6b660..eeb6d0a 100644 msgctxt "#38103" msgid "Extract thumbnails from video files" diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index 6357b1d..77e983b 100644 +index 31a6bcc..b5af261 100644 --- a/system/settings/rbp.xml +++ b/system/settings/rbp.xml @@ -33,6 +33,14 @@ @@ -2660,7 +2391,7 @@ index 6357b1d..77e983b 100644 diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index f1e3252..8ffcf23 100644 +index 9f1f803..6cde0c5 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -366,11 +366,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) @@ -2985,35 +2716,10 @@ index 80c05d2..ae85484 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); - -From 1935fc178acf61dacda8f982802e4f326390dba5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 17 Mar 2015 20:33:54 +0000 -Subject: [PATCH 53/61] alsa: enable-shared is required - ---- - tools/depends/target/alsa-lib/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/depends/target/alsa-lib/Makefile b/tools/depends/target/alsa-lib/Makefile -index b03fc19..a04d933 100644 ---- a/tools/depends/target/alsa-lib/Makefile -+++ b/tools/depends/target/alsa-lib/Makefile -@@ -19,7 +19,7 @@ CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \ - --with-ctl-plugins=ext \ - --with-pcm-plugins="copy,linear,route,mulaw,alaw,adpcm,rate,plug,multi,file,null,empty,share,meter,hooks,lfloat,ladspa,asym,iec958,softvol,extplug,ioplug,mmap_emul" \ - --disable-resmgr --enable-aload --enable-mixer --enable-pcm --disable-rawmidi --enable-hwdep --disable-seq --disable-alisp --disable-old-symbols --disable-python \ -- --with-softfloat=yes --with-libdl=yes --with-pthread=yes --with-librt=no --disable-shared \ -+ --with-softfloat=yes --with-libdl=yes --with-pthread=yes --with-librt=no --enable-shared \ - - LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a - - - -From 1d7052cf03293af8a4247348ae72b8ca07731a9f Mon Sep 17 00:00:00 2001 +From d4ecbc3818f8cc6c868b757a63a4aa59310363dc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 56/61] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 40/46] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -3021,10 +2727,10 @@ Subject: [PATCH 56/61] [gui] Also limit GUI updates when in non full-screen 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 9c6496b..01a711e 100644 +index 48536b9..e83cc9f 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2495,7 +2495,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2486,7 +2486,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) #if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) // This code reduces rendering fps of the GUI layer when playing videos in fullscreen mode // it makes only sense on architectures with multiple layers @@ -3033,7 +2739,7 @@ index 9c6496b..01a711e 100644 fps = CSettings::Get().GetInt("videoplayer.limitguiupdate"); #endif -@@ -2508,6 +2508,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2499,6 +2499,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -3043,10 +2749,10 @@ index 9c6496b..01a711e 100644 g_windowManager.FrameMove(); } -From 0768d7332735c93b675a7553c2f50988e10218cd Mon Sep 17 00:00:00 2001 +From 0af66e97c3563a209f41f45c01508747ca2e7788 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 57/61] [mmalrenderer] Add sharpness control +Subject: [PATCH 41/46] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -3055,20 +2761,20 @@ Subject: [PATCH 57/61] [mmalrenderer] Add sharpness control 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index d8ffaf4..474ffef 100644 +index a622e73..9341924 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -7474,7 +7474,7 @@ msgstr "" +@@ -7524,7 +7524,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" --msgid "(VDPAU)Sharpness" +-msgid "VDPAU - Sharpness" +msgid "Sharpness" msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index 8ffcf23..67daa9e 100644 +index 6cde0c5..9bf1aed 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -207,6 +207,7 @@ CMMALRenderer::CMMALRenderer() @@ -3118,17 +2824,17 @@ index 1404fb3..9bced7e 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From bbc34ab2aff74da8ce3ba13dd6937ea5f00f1844 Mon Sep 17 00:00:00 2001 +From 2f8c52cd11f50ceaa378aec35a5d92c7327bf9a7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 58/61] [dvdplayer] Add back required include +Subject: [PATCH 42/46] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index 55fa8b1..23edcd6 100644 +index 9f1892b..933d905 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -33,6 +33,7 @@ @@ -3140,10 +2846,10 @@ index 55fa8b1..23edcd6 100644 #include "guilib/GraphicContext.h" #include -From 93943251b2afa14881cd57ba1cc7a1b917e007b9 Mon Sep 17 00:00:00 2001 +From 0eca10f4cd6f53f8224ed32fab35cd96c423548f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 60/61] [screensaver] Leave GUI contents available for +Subject: [PATCH 44/46] [screensaver] Leave GUI contents available for screensaver --- @@ -3151,10 +2857,10 @@ Subject: [PATCH 60/61] [screensaver] Leave GUI contents available for 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xbmc/guilib/GUIWindowManager.cpp b/xbmc/guilib/GUIWindowManager.cpp -index a22fb74..eb35710 100644 +index ba33908..17ea269 100644 --- a/xbmc/guilib/GUIWindowManager.cpp +++ b/xbmc/guilib/GUIWindowManager.cpp -@@ -792,7 +792,16 @@ void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector +Date: Fri, 15 May 2015 14:04:11 +0100 +Subject: [PATCH 46/46] [omxplayer] Make unsupported when ac3transcode is + enabled + +--- + xbmc/cores/omxplayer/OMXHelper.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXHelper.cpp b/xbmc/cores/omxplayer/OMXHelper.cpp +index be54f31..373e3f2 100644 +--- a/xbmc/cores/omxplayer/OMXHelper.cpp ++++ b/xbmc/cores/omxplayer/OMXHelper.cpp +@@ -56,6 +56,12 @@ bool OMXPlayerUnsuitable(bool m_HasVideo, bool m_HasAudio, CDVDDemux* m_pDemuxer + CLog::Log(LOGNOTICE, "%s OMXPlayer unsuitable due to audio sink", __func__); + return true; + } ++ // omxplayer doesn't handle ac3 transcode ++ if (CSettings::Get().GetBool("audiooutput.ac3transcode")) ++ { ++ CLog::Log(LOGNOTICE, "%s OMXPlayer unsuitable due to ac3transcode", __func__); ++ return true; ++ } + if (m_pDemuxer) + { + // find video stream diff --git a/projects/RPi2/linux/linux.arm.conf b/projects/RPi2/linux/linux.arm.conf index 9f7586ff55..3dc33eda4e 100644 --- a/projects/RPi2/linux/linux.arm.conf +++ b/projects/RPi2/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.0.1 Kernel Configuration +# Linux/arm 4.0.4 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -1608,7 +1608,32 @@ CONFIG_GPIO_ARIZONA=m # # USB GPIO expanders: # -# CONFIG_W1 is not set +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set +# CONFIG_W1_MASTER_DS1WM is not set +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2408 is not set +# CONFIG_W1_SLAVE_DS2413 is not set +# CONFIG_W1_SLAVE_DS2406 is not set +# CONFIG_W1_SLAVE_DS2423 is not set +# CONFIG_W1_SLAVE_DS2431 is not set +# CONFIG_W1_SLAVE_DS2433 is not set +# CONFIG_W1_SLAVE_DS2760 is not set +# CONFIG_W1_SLAVE_DS2780 is not set +# CONFIG_W1_SLAVE_DS2781 is not set +# CONFIG_W1_SLAVE_DS28E04 is not set +# CONFIG_W1_SLAVE_BQ27000 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set diff --git a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch index c57aa0c8b0..e705379dde 100644 --- a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -1,7 +1,7 @@ -From f68b3816564aa0c29d0da419bdfd854a7b15d68b Mon Sep 17 00:00:00 2001 +From b9eceb6796f5beba0ad03b55fd20933a351e8a8e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/61] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/46] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -25,125 +25,10 @@ index 2faceea..889d7a2 100644 g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 7a7fc569a12d489520142ddb39dedbb6982466d5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 03/61] [ffmpeg] Speed up wtv index creation - -The index creation is O(N^2) with number of entries (typically thousands). -On a Pi this can take more than 60 seconds to execute for a recording of a few hours. - -By replacing with an O(N) loop, this takes virtually zero time ---- - tools/depends/target/ffmpeg/Makefile | 3 +- - .../ffmpeg_Speed_up_wtv_index_creation.patch | 47 ++++++++++++++++++++++ - 2 files changed, 49 insertions(+), 1 deletion(-) - create mode 100644 tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch - -diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 711182f..6e8364a 100644 ---- a/tools/depends/target/ffmpeg/Makefile -+++ b/tools/depends/target/ffmpeg/Makefile -@@ -1,6 +1,6 @@ - include ../../Makefile.include - include FFMPEG-VERSION --DEPS= ../../Makefile.include FFMPEG-VERSION Makefile -+DEPS= ../../Makefile.include FFMPEG-VERSION Makefile ffmpeg_Speed_up_wtv_index_creation.patch - - # set to "yes" to enable patching - # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -68,6 +68,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) - rm -rf $(PLATFORM); mkdir -p $(PLATFORM) - cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) - cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure -+ cd $(PLATFORM); patch -p3 < ../ffmpeg_Speed_up_wtv_index_creation.patch - cd $(PLATFORM);\ - CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ - ./configure $(ffmpg_config) -diff --git a/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch b/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch -new file mode 100644 -index 0000000..4ac5636 ---- /dev/null -+++ b/tools/depends/target/ffmpeg/ffmpeg_Speed_up_wtv_index_creation.patch -@@ -0,0 +1,47 @@ -+commit 0e7427498cb1131671f6fe9d054245ae7e5a36f5 -+Author: popcornmix -+Date: Tue Mar 25 19:43:07 2014 +0000 -+ -+ [ffmpeg] Speed up wtv index creation -+ -+ The index creation is O(N^2) with number of entries (typically thousands). -+ On a Pi this can take more than 60 seconds to execute for a recording of a few hours. -+ -+ By replacing with an O(N) loop, this takes virtually zero time -+ -+diff --git a/lib/ffmpeg/libavformat/wtvdec.c b/lib/ffmpeg/libavformat/wtvdec.c -+index e423370..70898bd 100644 -+--- a/lib/ffmpeg/libavformat/wtvdec.c -++++ b/lib/ffmpeg/libavformat/wtvdec.c -+@@ -980,21 +980,23 @@ static int read_header(AVFormatContext *s) -+ pb = wtvfile_open(s, root, root_size, ff_timeline_table_0_entries_Events_le16); -+ if (pb) { -+ int i; -++ AVIndexEntry *e = wtv->index_entries; -++ AVIndexEntry *e_end = wtv->index_entries + wtv->nb_index_entries - 1; -++ uint64_t last_position = 0; -+ while (1) { -+ uint64_t frame_nb = avio_rl64(pb); -+ uint64_t position = avio_rl64(pb); -++ while (frame_nb > e->size && e <= e_end) { -++ e->pos = last_position; -++ e++; -++ } -+ if (avio_feof(pb)) -+ break; -+- for (i = wtv->nb_index_entries - 1; i >= 0; i--) { -+- AVIndexEntry *e = wtv->index_entries + i; -+- if (frame_nb > e->size) -+- break; -+- if (position > e->pos) -+- e->pos = position; -+- } -++ last_position = position; -+ } -++ e_end->pos = last_position; -+ wtvfile_close(pb); -+- st->duration = wtv->index_entries[wtv->nb_index_entries - 1].timestamp; -++ st->duration = e_end->timestamp; -+ } -+ } -+ } - -From 7b6da2b187ac78022c09d9428a1041d33aa9777e Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 04/61] [hifiberry] Hack: force it to be recognised as IEC958 - capable to enable passthrough options - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index e22db7a..0120bd5 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -1342,6 +1342,10 @@ void CAESinkALSA::EnumerateDevice(AEDeviceInfoList &list, const std::string &dev - if (snd_card_get_name(cardNr, &cardName) == 0) - info.m_displayName = cardName; - -+ // hack: hifiberry digi doesn't correctly report as iec958 device. Needs fixing in kernel driver -+ if (info.m_displayName == "snd_rpi_hifiberry_digi") -+ info.m_deviceType = AE_DEVTYPE_IEC958; -+ - if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && - info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") - { - -From 877979729163728264ccf1d9d4044cf7871bf85d Mon Sep 17 00:00:00 2001 +From 560bcc821fc5ceec473bfa41b36fdc213bd6e32b Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 05/61] Improved file buffering in CArchive +Subject: [PATCH 04/46] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -203,20 +88,20 @@ index 6ed0f8f..8506d95 100644 } else -From ed0c376577971a2b7dab4770d6914bb631b86d34 Mon Sep 17 00:00:00 2001 +From fca0641cac1a00faffe3d075d91fd987c9a8fbd1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 06/61] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 05/46] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 34e487f..eb5d4de 100644 +index fd21bc2..6d6da33 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3400,7 +3400,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) +@@ -3416,7 +3416,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) hint.aspect = aspect; hint.forced_aspect = true; } @@ -227,10 +112,10 @@ index 34e487f..eb5d4de 100644 else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From 15a146068f22ac23146c6bd832c9e89f041a8f3c Mon Sep 17 00:00:00 2001 +From 161cfe110a110062f52e40fdd2f7658f7805cee7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 07/61] filesystem: Make support of browsing into archives +Subject: [PATCH 06/46] filesystem: Make support of browsing into archives optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. @@ -248,10 +133,10 @@ We'll let people who don't use archives disable it manually 3 files changed, 18 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 85df475..13b736e 100644 +index cb40d52..953b07c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16504,6 +16504,15 @@ msgstr "" +@@ -16606,6 +16606,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -268,7 +153,7 @@ index 85df475..13b736e 100644 #. Setting #38011 "Videos -> Library -> Show All Items entry" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index edbab98..7d2ba34 100644 +index d1a8e1c..a780a43 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -304,6 +304,11 @@ @@ -284,18 +169,18 @@ index edbab98..7d2ba34 100644 diff --git a/xbmc/filesystem/FileDirectoryFactory.cpp b/xbmc/filesystem/FileDirectoryFactory.cpp -index 3a5ba4e..f1f6f79 100644 +index 5af92e7..568a1a8 100644 --- a/xbmc/filesystem/FileDirectoryFactory.cpp +++ b/xbmc/filesystem/FileDirectoryFactory.cpp -@@ -41,6 +41,7 @@ +@@ -39,6 +39,7 @@ + #include "playlists/PlayListFactory.h" #include "Directory.h" #include "File.h" - #include "ZipManager.h" +#include "settings/Settings.h" - #include "settings/AdvancedSettings.h" #include "FileItem.h" #include "utils/StringUtils.h" -@@ -115,6 +116,8 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, + #include "URL.h" +@@ -112,6 +113,8 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, return NULL; } #endif @@ -304,7 +189,7 @@ index 3a5ba4e..f1f6f79 100644 if (url.IsFileType("zip")) { CURL zipURL = URIUtils::CreateArchivePath("zip", url); -@@ -188,6 +191,7 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, +@@ -185,6 +188,7 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem, } return NULL; } @@ -313,10 +198,10 @@ index 3a5ba4e..f1f6f79 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From ded5fd595dc852491d8f595e8358680f7bb97a6f Mon Sep 17 00:00:00 2001 +From b2b07e83668cca34845f48d9de812350f43d93d3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 09/61] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 08/46] [rbp] Make cachemembuffersize default depend on memory size --- @@ -326,7 +211,7 @@ Subject: [PATCH 09/61] [rbp] Make cachemembuffersize default depend on memory 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp -index 59dd1da..b5c2156 100644 +index 59dd1da..68d2694 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -23,6 +23,7 @@ @@ -343,7 +228,7 @@ index 59dd1da..b5c2156 100644 +void CRBP::InitializeSettings() +{ -+ if (g_advancedSettings.m_cacheMemBufferSize == ~0U) ++ if (m_initialized && g_advancedSettings.m_cacheMemBufferSize == ~0U) + g_advancedSettings.m_cacheMemBufferSize = m_arm_mem < 256 ? 1024 * 1024 * 2 : 1024 * 1024 * 20; +} + @@ -380,10 +265,10 @@ index 9559914..7fc8b42 100644 void Deinitialize(); int GetArmMem() { return m_arm_mem; } diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 1ba951d..2d906a6 100644 +index 2e3282c..d1606a2 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -45,6 +45,9 @@ +@@ -43,6 +43,9 @@ #if defined(TARGET_DARWIN_IOS) #include "osx/DarwinUtils.h" #endif @@ -393,7 +278,7 @@ index 1ba951d..2d906a6 100644 using namespace ADDON; using namespace XFILE; -@@ -352,7 +355,12 @@ void CAdvancedSettings::Initialize() +@@ -350,7 +353,12 @@ void CAdvancedSettings::Initialize() m_bPVRAutoScanIconsUserSet = false; m_iPVRNumericChannelSwitchTimeout = 1000; @@ -406,7 +291,7 @@ index 1ba951d..2d906a6 100644 m_networkBufferMode = 0; // Default (buffer all internet streams/filesystems) // the following setting determines the readRate of a player data // as multiply of the default data read rate -@@ -407,7 +415,9 @@ void CAdvancedSettings::Initialize() +@@ -405,7 +413,9 @@ void CAdvancedSettings::Initialize() #endif m_userAgent = g_sysinfo.GetUserAgent(); @@ -418,11 +303,10 @@ index 1ba951d..2d906a6 100644 } - -From ec6bf6a43c0c0680d393dc5039fbb57927a7c10f Mon Sep 17 00:00:00 2001 +From d7b43a46c9a7c30494416e0c711edeba1a0d3b93 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 11/61] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -430,7 +314,7 @@ Subject: [PATCH 11/61] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index 1fafd9a..e0288aa 100644 +index 666645c..c3dc72c 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -674,6 +674,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -444,10 +328,10 @@ index 1fafd9a..e0288aa 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 390b641d3904777dba820aa4633a94314386e081 Mon Sep 17 00:00:00 2001 +From 7a435977a8b962bc6cc9257f35f0878796165674 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 12/61] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 11/46] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -476,10 +360,10 @@ index bda7430..68fc647 100644 SetResolutionString(m_desktopRes); -From ca1037188ea1d60c22b13ab937d21401d4397218 Mon Sep 17 00:00:00 2001 +From bcd2ffe88981e8d46c9b36555a013378a0400425 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 13/61] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 12/46] [dvdplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -504,10 +388,10 @@ Needed updated firmware 9 files changed, 91 insertions(+), 7 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 13b736e..07a25d3 100644 +index 953b07c..db2c0a5 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -6318,7 +6318,22 @@ msgctxt "#13459" +@@ -6357,7 +6357,22 @@ msgctxt "#13459" msgid "Use OMXPlayer for decoding of video files." msgstr "" @@ -531,7 +415,7 @@ index 13b736e..07a25d3 100644 #: system/settings/settings.xml msgctxt "#13505" -@@ -16550,3 +16565,10 @@ msgstr "" +@@ -16652,3 +16667,10 @@ msgstr "" msgctxt "#38016" msgid "%d fps" msgstr "" @@ -543,7 +427,7 @@ index 13b736e..07a25d3 100644 +msgstr "" + diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 7d2ba34..304bd46 100644 +index a780a43..aff0bf8 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -572,6 +572,20 @@ @@ -704,7 +588,7 @@ index 1122a1d..7389754 100644 struct SInfo { diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp -index b5c2156..32aa409 100644 +index 68d2694..096ea18 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -225,4 +225,18 @@ void CRBP::Deinitialize() @@ -739,10 +623,10 @@ index 7fc8b42..b422c89 100644 private: DllBcmHost *m_DllBcmHost; diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 2d906a6..24df5ac 100644 +index d1606a2..344e91b 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -113,6 +113,7 @@ void CAdvancedSettings::Initialize() +@@ -111,6 +111,7 @@ void CAdvancedSettings::Initialize() m_audioHeadRoom = 0; m_ac3Gain = 12.0f; m_audioApplyDrc = -1.0f; @@ -750,7 +634,7 @@ index 2d906a6..24df5ac 100644 m_dvdplayerIgnoreDTSinWAV = false; //default hold time of 25 ms, this allows a 20 hertz sine to pass undistorted -@@ -475,6 +476,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) +@@ -473,6 +474,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) if (pElement) { XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f); @@ -771,10 +655,10 @@ index 7df1bf7..732b69d 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 8c5c342953abc427f0c0fe8548ce9c6c4c67d08d Mon Sep 17 00:00:00 2001 +From e6bc21dbc556ff18da07e22b3064fbb219462678 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 14/61] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -782,10 +666,10 @@ Subject: [PATCH 14/61] [dvdplayer] exerimental: don't raise priority of audio 1 file changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index eb5d4de..5ea3c51 100644 +index 6d6da33..aed1550 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3385,7 +3385,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) +@@ -3401,7 +3401,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) m_dvdPlayerAudio->SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); /* audio normally won't consume full cpu, so let it have prio */ @@ -798,10 +682,10 @@ index eb5d4de..5ea3c51 100644 } -From 66c3e2d5829fac98b54059a4d82e33ec33537b0d Mon Sep 17 00:00:00 2001 +From 4de8f510f317ab41c05cc78ee8a914af0f8e4387 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 15/61] [audio] Add settings option to boost centre channel +Subject: [PATCH 14/46] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -819,10 +703,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 45 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 07a25d3..7d445f9 100644 +index db2c0a5..63f78a1 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16572,3 +16572,17 @@ msgctxt "#38006" +@@ -16674,3 +16674,17 @@ msgctxt "#38006" msgid "Audio has to stay in sync, this can either be done by resampling, or adjusting the PLL" msgstr "" @@ -841,10 +725,10 @@ index 07a25d3..7d445f9 100644 +msgid "%i dB" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 304bd46..2aaf772 100644 +index aff0bf8..f6ad877 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2589,6 +2589,18 @@ +@@ -2597,6 +2597,18 @@ true @@ -923,72 +807,10 @@ index f99c0e6..1911189 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 9832febb10d609a6e75465b3d82e681252686566 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 3 Oct 2014 18:40:06 +0100 -Subject: [PATCH 16/61] [SinkPi] Handle multichannel layout more like OMXAudio - ---- - xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -index a7691e8..d72a97a 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp -@@ -94,9 +94,9 @@ static void SetAudioProps(bool stream_channels, uint32_t channel_map) - CLog::Log(LOGDEBUG, "%s:%s hdmi_stream_channels %d hdmi_channel_map %08x", CLASSNAME, __func__, stream_channels, channel_map); - } - --static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) -+static uint32_t GetChannelMap(const CAEChannelInfo &channelLayout, bool passthrough) - { -- unsigned int channels = format.m_channelLayout.Count(); -+ unsigned int channels = channelLayout.Count(); - uint32_t channel_map = 0; - if (passthrough) - return 0; -@@ -135,12 +135,12 @@ static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) - // According to CEA-861-D only RL and RR are known. In case of a format having SL and SR channels - // but no BR BL channels, we use the wide map in order to open only the num of channels really - // needed. -- if (format.m_channelLayout.HasChannel(AE_CH_BL) && !format.m_channelLayout.HasChannel(AE_CH_SL)) -+ if (channelLayout.HasChannel(AE_CH_BL) && !channelLayout.HasChannel(AE_CH_SL)) - map = map_back; - - for (unsigned int i = 0; i < channels; ++i) - { -- AEChannel c = format.m_channelLayout[i]; -+ AEChannel c = channelLayout[i]; - unsigned int chan = 0; - if ((unsigned int)c < sizeof map_normal / sizeof *map_normal) - chan = map[(unsigned int)c]; -@@ -171,9 +171,9 @@ static uint32_t GetChannelMap(AEAudioFormat &format, bool passthrough) - 0xff, // 7 - 0x13, // 7.1 - }; -- uint8_t cea = format.m_channelLayout.HasChannel(AE_CH_LFE) ? cea_map_lfe[channels] : cea_map[channels]; -+ uint8_t cea = channelLayout.HasChannel(AE_CH_LFE) ? cea_map_lfe[channels] : cea_map[channels]; - if (cea == 0xff) -- CLog::Log(LOGERROR, "%s::%s - Unexpected CEA mapping %d,%d", CLASSNAME, __func__, format.m_channelLayout.HasChannel(AE_CH_LFE), channels); -+ CLog::Log(LOGERROR, "%s::%s - Unexpected CEA mapping %d,%d", CLASSNAME, __func__, channelLayout.HasChannel(AE_CH_LFE), channels); - - channel_map |= cea << 24; - -@@ -215,7 +215,7 @@ bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device) - format.m_frames = format.m_sampleRate * AUDIO_PLAYBUFFER / NUM_OMX_BUFFERS; - format.m_frameSamples = format.m_frames * channels; - -- SetAudioProps(m_passthrough, GetChannelMap(format, m_passthrough)); -+ SetAudioProps(m_passthrough, GetChannelMap(format.m_channelLayout, m_passthrough)); - - m_format = format; - m_sinkbuffer_sec_per_byte = 1.0 / (double)(m_format.m_frameSize * m_format.m_sampleRate); - -From d8fae79683f81ead870a5abac67da826e935183c Mon Sep 17 00:00:00 2001 +From fb43e160b3373ec9c3ed53e67dbcc907706a233d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 17/61] [rbp] Default extract thumbnails to false +Subject: [PATCH 15/46] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -1018,10 +840,10 @@ index 50fe36a..a54a4c4 100644
-From 1326d4272c2e881b3a154256e6825c181b6ee3ad Mon Sep 17 00:00:00 2001 +From 42afb7e432619c25a0c6389636784117c049c967 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 22/61] [dvdplayer] Add lock for player creation +Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -1029,7 +851,7 @@ Subject: [PATCH 22/61] [dvdplayer] Add lock for player creation 2 files changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 5ea3c51..f0ffe17 100644 +index aed1550..ff397f7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -517,6 +517,7 @@ int CSelectionStreams::CountSource(StreamType type, StreamSource source) const @@ -1048,7 +870,7 @@ index 5ea3c51..f0ffe17 100644 if (!m_players_created) return; delete m_dvdPlayerVideo; -@@ -4252,6 +4254,7 @@ double CDVDPlayer::GetQueueTime() +@@ -4268,6 +4270,7 @@ double CDVDPlayer::GetQueueTime() void CDVDPlayer::GetVideoStreamInfo(SPlayerVideoStreamInfo &info) { @@ -1057,20 +879,20 @@ index 5ea3c51..f0ffe17 100644 std::string retVal; diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h -index 71a62f1..9993ac0 100644 +index 2a4aea5..f74e71d 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.h +++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -558,4 +558,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer +@@ -557,4 +557,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer // omxplayer variables struct SOmxPlayerState m_OmxPlayerState; bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; -From f9b5ced2edadf501b4655a82788eaea620f6e4ed Mon Sep 17 00:00:00 2001 +From 8cc3e50eccf8fbfb00d35f8238f8bc7ee49c159b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 23/61] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 21/46] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -1079,7 +901,7 @@ In dvd stills mode give it a chance to return pictures that weren't ready when f 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index d725d32..55fa8b1 100644 +index a8add39..9f1892b 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -314,7 +314,8 @@ void CDVDPlayerVideo::Process() @@ -1147,10 +969,10 @@ index d725d32..55fa8b1 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From 36666ba4c6dd8a03f0b0c0055bb5238f4e8920e2 Mon Sep 17 00:00:00 2001 +From 2b43fd15eeb8c63853efbd4bfbfb40d6e3d4d0d0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 24/61] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 22/46] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -1173,10 +995,10 @@ index fcdd063..16f0c89 100644 } -From fc7285cbd4934c80ed8ec948ba0762d20ada7138 Mon Sep 17 00:00:00 2001 +From a878a035369d1f0a74474d1a22801c256a876dd8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 25/61] logging: Add microsecond timer to log messages +Subject: [PATCH 23/46] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -1229,10 +1051,10 @@ index 3443f12..31c4a99 100644 levelNames[logLevel]) + strData; -From adb7882f273437d58e9aff7c26c11ab1a8d32a73 Mon Sep 17 00:00:00 2001 +From 1e2fcfee503416f290d7bb20060bf07f0c5a705e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 26/61] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 24/46] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -1306,23 +1128,22 @@ index 68fc647..c80114e 100644 if(!m_fixedMode && GETFLAGS_GROUP(res.dwFlags) && GETFLAGS_MODE(res.dwFlags)) -From c727022054334a0f10585d36adbe9bb7814b0b82 Mon Sep 17 00:00:00 2001 +From 03136951f373c285114d45ec73a07c11a62152c9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 27/61] Fix for UI not showing both extractflags and +Subject: [PATCH 25/46] Fix for UI not showing both extractflags and extractthumb --- addons/resource.language.en_gb/resources/strings.po | 11 ++++++++--- - system/settings/rbp.xml | 4 ---- - system/settings/settings.xml | 10 +++++----- - 3 files changed, 13 insertions(+), 12 deletions(-) + system/settings/settings.xml | 4 ++-- + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c52f230..aee20d0 100644 +index 5c31c6f..c48b256 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -10945,7 +10945,7 @@ msgstr "" +@@ -11023,7 +11023,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -1331,7 +1152,7 @@ index c52f230..aee20d0 100644 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -14475,7 +14475,7 @@ msgstr "" +@@ -14573,7 +14573,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36178" @@ -1340,16 +1161,16 @@ index c52f230..aee20d0 100644 msgstr "" #. Description of setting "Videos -> File lists -> Replace file names with library titles" with label #20419 -@@ -14487,7 +14487,7 @@ msgstr "" +@@ -14585,7 +14585,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36180" --msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in Library Mode." -+msgid "Extract thumbnails, to display in Library Mode." +-msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in library mode." ++msgid "Extract thumbnails, to display in library Mode." msgstr "" #: system/settings/settings.xml -@@ -16601,3 +16601,8 @@ msgstr "" +@@ -16703,3 +16703,8 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -1358,59 +1179,26 @@ index c52f230..aee20d0 100644 +msgctxt "#38103" +msgid "Extract thumbnails from video files" +msgstr "" -diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index a54a4c4..208cd49 100644 ---- a/system/settings/rbp.xml -+++ b/system/settings/rbp.xml -@@ -33,10 +33,6 @@ - - false - -- -- -- -- - - false - diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 2aaf772..08d8f41 100644 +index f6ad877..d1acdae 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -846,23 +846,23 @@ - - - -- -+ - 1 - true - - -- -+ - 1 - true - - -- -+ - 1 +@@ -861,8 +861,8 @@ true - - 4 -+ ++ + 1 true -From 5c10acd7538646333db2b57f87e4bf8faa1c2c19 Mon Sep 17 00:00:00 2001 +From 8c257d47e97ed8a5cb78604746247e7b98693d89 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 28/61] Disable autoscrolling while on screensaver and while +Subject: [PATCH 26/46] Disable autoscrolling while on screensaver and while opening streams. --- @@ -1423,10 +1211,10 @@ Subject: [PATCH 28/61] Disable autoscrolling while on screensaver and while 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 16af7df..9c6496b 100644 +index 11564aa..48536b9 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -4958,3 +4958,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -4951,3 +4951,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1441,7 +1229,7 @@ index 16af7df..9c6496b 100644 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index b4da8f2..cc064c3 100644 +index f9c636e..487716a 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -389,6 +389,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs @@ -1454,7 +1242,7 @@ index b4da8f2..cc064c3 100644 virtual bool OnSettingsSaving() const; diff --git a/xbmc/guilib/GUIFadeLabelControl.cpp b/xbmc/guilib/GUIFadeLabelControl.cpp -index 9eadbe4..b2b5f13 100644 +index ac3cd94..5b8859d 100644 --- a/xbmc/guilib/GUIFadeLabelControl.cpp +++ b/xbmc/guilib/GUIFadeLabelControl.cpp @@ -20,6 +20,8 @@ @@ -1466,7 +1254,7 @@ index 9eadbe4..b2b5f13 100644 using namespace std; CGUIFadeLabelControl::CGUIFadeLabelControl(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, bool scrollOut, unsigned int timeToDelayAtEnd, bool resetOnLabelChange) -@@ -102,7 +104,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d +@@ -104,7 +106,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d m_lastLabel = m_currentLabel; } @@ -1541,10 +1329,10 @@ index 0d5b3f7..6d23024 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 796877858489b061853455e99cebd3131e76acf3 Mon Sep 17 00:00:00 2001 +From 4425b2be0ad1e5c3ea6eeddbd91f59046ed361ea Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 29/61] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 27/46] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1639,17 +1427,17 @@ index ab298b2..10c5ee0 100644 } catch(...) { -From 5c9736a99bc81334fd7aedf28578392c7780fb1a Mon Sep 17 00:00:00 2001 +From bdd96e0b98ef05db5e8067a0a802246e0d3f6f36 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 30/61] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 28/46] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp -index eafabb3..8a3beb7 100644 +index 4c363cf..b90237b 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp @@ -50,6 +50,9 @@ @@ -1674,10 +1462,10 @@ index eafabb3..8a3beb7 100644 { // If dvd is an mpeg2 and hint.stills -From 0b367aae0fae2d797055a20dd70949207659220f Mon Sep 17 00:00:00 2001 +From ce8914a9b4816a738606174e8ee4087b0466923e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 42/61] [mmalrenderer] Add SetCodecControl function and prefer +Subject: [PATCH 29/46] [mmalrenderer] Add SetCodecControl function and prefer to return pictures when renderer is low (disabled) --- @@ -1686,7 +1474,7 @@ Subject: [PATCH 42/61] [mmalrenderer] Add SetCodecControl function and prefer 2 files changed, 15 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index 27fa9c4..a2510be 100644 +index 95584aa..c37f321 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp @@ -124,6 +124,7 @@ CMMALVideo::CMMALVideo() @@ -1697,7 +1485,7 @@ index 27fa9c4..a2510be 100644 } CMMALVideo::~CMMALVideo() -@@ -864,6 +865,9 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) +@@ -865,6 +866,9 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) if (g_advancedSettings.CanLogComponent(LOGVIDEO)) CLog::Log(LOGDEBUG, "%s::%s - got output picture:%d", CLASSNAME, __func__, m_output_ready.size()); ret |= VC_PICTURE; @@ -1707,7 +1495,7 @@ index 27fa9c4..a2510be 100644 } if (!ret) { -@@ -942,6 +946,7 @@ void CMMALVideo::Reset(void) +@@ -943,6 +947,7 @@ void CMMALVideo::Reset(void) m_startframe = false; m_decoderPts = DVD_NOPTS_VALUE; m_preroll = !m_hints.stills && (m_speed == DVD_PLAYSPEED_NORMAL || m_speed == DVD_PLAYSPEED_PAUSE); @@ -1715,7 +1503,7 @@ index 27fa9c4..a2510be 100644 } void CMMALVideo::SetSpeed(int iSpeed) -@@ -1057,3 +1062,11 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) +@@ -1058,3 +1063,11 @@ bool CMMALVideo::GetCodecStats(double &pts, int &droppedPics) droppedPics= -1; return false; } @@ -1748,67 +1536,10 @@ index 51a64d1..bde8c06 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From 7ec37cce302f39ca91ba8bc86be80e7e1d7368c5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 1 Apr 2015 16:31:37 +0100 -Subject: [PATCH 43/61] [mmalcodec] Limit submitted video frames. Seems to - avoid stutter issues with low bitrate videos - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -index a2510be..c37f321 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp -@@ -848,10 +848,11 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) - break; - } - int ret = 0; -- if (mmal_queue_length(m_dec_input_pool->queue) > 0 && !m_demux_queue_length) -+ double queued = m_decoderPts != DVD_NOPTS_VALUE && pts != DVD_NOPTS_VALUE ? pts - m_decoderPts : 0.0; -+ if (mmal_queue_length(m_dec_input_pool->queue) > 0 && !m_demux_queue_length && queued <= DVD_MSEC_TO_TIME(500)) - { - if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -- CLog::Log(LOGDEBUG, "%s::%s - got space for output: demux_queue(%d) space(%d)", CLASSNAME, __func__, m_demux_queue_length, mmal_queue_length(m_dec_input_pool->queue) * m_dec_input->buffer_size); -+ CLog::Log(LOGDEBUG, "%s::%s - got space for output: demux_queue(%d) space(%d) queued(%.2f)", CLASSNAME, __func__, m_demux_queue_length, mmal_queue_length(m_dec_input_pool->queue) * m_dec_input->buffer_size, queued*1e-6); - ret |= VC_BUFFER; - } - else - -From 959ec414be56d1d4ca4774508069d350c61a83e9 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 24 Feb 2015 15:57:29 +0000 -Subject: [PATCH 44/61] [mmalrenderer] Fix for stereo view modes - -PR6090 (dirty regions for video) meant that RenderUpate is no longer called with the expected stereo view mode. -So, just explicitly set this before calling ManageDisplay to get the desired rectangles ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index fc9dfca..f1e3252 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -366,7 +366,11 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - - if (!m_bConfigured) return; - -+ if (g_graphicsContext.GetStereoMode()) -+ g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_LEFT); - ManageDisplay(); -+ if (g_graphicsContext.GetStereoMode()) -+ g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_OFF); - - // if running bypass, then the player might need the src/dst rects - // for sizing video playback on a layer other than the gles layer. - -From c755cacee4346e3a55cd337d85630471fe6ef309 Mon Sep 17 00:00:00 2001 +From d93b8a58ddcac183150087703bd7a32c061e510a Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 45/61] Load OSD dialogs on startup. +Subject: [PATCH 30/46] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -1823,10 +1554,10 @@ See http://forum.kodi.tv/showthread.php?tid=211501&pid=1938811#pid1938811 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp -index 499f926..9f85783 100644 +index 1194d4c..82b980f 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +++ b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp -@@ -50,6 +50,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : +@@ -45,6 +45,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : CGUIDialog(WINDOW_DIALOG_PVR_OSD_CHANNELS, "DialogPVRChannelsOSD.xml"), Observer() { @@ -1862,10 +1593,10 @@ index 5e091eb..35b417f 100644 CGUIDialogAudioSubtitleSettings::~CGUIDialogAudioSubtitleSettings() { } diff --git a/xbmc/video/dialogs/GUIDialogSubtitles.cpp b/xbmc/video/dialogs/GUIDialogSubtitles.cpp -index 6c14cd5..7e960ad 100644 +index 6dad844..a3e820c 100644 --- a/xbmc/video/dialogs/GUIDialogSubtitles.cpp +++ b/xbmc/video/dialogs/GUIDialogSubtitles.cpp -@@ -100,7 +100,7 @@ class CSubtitlesJob: public CJob +@@ -98,7 +98,7 @@ class CSubtitlesJob: public CJob CGUIDialogSubtitles::CGUIDialogSubtitles(void) : CGUIDialog(WINDOW_DIALOG_SUBTITLES, "DialogSubtitles.xml") { @@ -1875,10 +1606,10 @@ index 6c14cd5..7e960ad 100644 m_serviceItems = new CFileItemList; m_pausedOnRun = false; diff --git a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp -index 8a856e1..18b25fd 100644 +index 7316936..7033124 100644 --- a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp -@@ -35,7 +35,7 @@ using namespace PVR; +@@ -30,7 +30,7 @@ using namespace PVR; CGUIDialogVideoOSD::CGUIDialogVideoOSD(void) : CGUIDialog(WINDOW_DIALOG_VIDEO_OSD, "VideoOSD.xml") { @@ -1888,10 +1619,10 @@ index 8a856e1..18b25fd 100644 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index 4940561..f52698c 100644 +index eb814ca..ae4c69f 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -@@ -64,7 +64,9 @@ using namespace std; +@@ -63,7 +63,9 @@ using namespace std; CGUIDialogVideoSettings::CGUIDialogVideoSettings() : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "VideoOSDSettings.xml"), m_viewModeChanged(false) @@ -1903,10 +1634,10 @@ index 4940561..f52698c 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From b54cf11f709c406dfaafdab2703d1c111d0b61b8 Mon Sep 17 00:00:00 2001 +From 25c18140c09a346a0e9aa98699bcb6e02bda11b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 46/61] configure: Add raspberry-pi2 platform +Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -1918,10 +1649,10 @@ Subject: [PATCH 46/61] configure: Add raspberry-pi2 platform 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac -index cf18212..65df15f 100644 +index 760e873..2b8660e 100644 --- a/configure.ac +++ b/configure.ac -@@ -746,8 +746,17 @@ case $use_platform in +@@ -750,8 +750,17 @@ case $use_platform in raspberry-pi) target_platform=target_raspberry_pi use_neon=no @@ -1940,7 +1671,7 @@ index cf18212..65df15f 100644 use_hardcoded_tables="yes" ARCH="arm" AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer]) -@@ -755,8 +764,7 @@ case $use_platform in +@@ -759,8 +768,7 @@ case $use_platform in USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" @@ -2080,10 +1811,10 @@ index cdc2fe4..379bd1d 100644 set(CMAKE_SYSTEM_NAME Linux) endif() -From eded2ce0900d7837f4e451d5b58bc02153ce1e79 Mon Sep 17 00:00:00 2001 +From b8fcca27e22ea37429e7a296968af3c0c611f931 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 47/61] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 32/46] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -2139,10 +1870,10 @@ index 212a89b..dd509ea 100644 unsigned int iDisplayHeight = height; -From 98545b6d99c3ab0d9c2b55931cbae5e45b68411c Mon Sep 17 00:00:00 2001 +From 6f86813ee99e5c019dc2eae80b4fd5877f265318 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 48/61] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 33/46] [graphics] Allow switching to a more suitable 3D resolution --- @@ -2151,18 +1882,18 @@ Subject: [PATCH 48/61] [graphics] Allow switching to a more suitable 3D 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index 58406f7..a476cd8 100644 +index bd7dff9..ed7316a 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -35,6 +35,7 @@ - #include "utils/JobManager.h" +@@ -32,6 +32,7 @@ + #include "input/InputManager.h" + #include "GUIWindowManager.h" #include "video/VideoReferenceClock.h" - #include "cores/IPlayer.h" +#include using namespace std; -@@ -500,6 +501,43 @@ RESOLUTION CGraphicContext::GetVideoResolution() const +@@ -499,6 +500,43 @@ RESOLUTION CGraphicContext::GetVideoResolution() const return m_Resolution; } @@ -2206,7 +1937,7 @@ index 58406f7..a476cd8 100644 void CGraphicContext::ResetOverscan(RESOLUTION_INFO &res) { res.Overscan.left = 0; -@@ -1037,7 +1075,7 @@ void CGraphicContext::Flip(const CDirtyRegionList& dirty) +@@ -1042,7 +1080,7 @@ void CGraphicContext::Flip(const CDirtyRegionList& dirty) if(m_stereoMode != m_nextStereoMode) { m_stereoMode = m_nextStereoMode; @@ -2216,7 +1947,7 @@ index 58406f7..a476cd8 100644 } } diff --git a/xbmc/guilib/GraphicContext.h b/xbmc/guilib/GraphicContext.h -index 5c1501a..aba11cd 100644 +index a8fd03e..8501e58 100644 --- a/xbmc/guilib/GraphicContext.h +++ b/xbmc/guilib/GraphicContext.h @@ -108,6 +108,7 @@ class CGraphicContext : public CCriticalSection, @@ -2228,10 +1959,10 @@ index 5c1501a..aba11cd 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From 6376797042cac6d4c821c850e4569ccf66c03ebb Mon Sep 17 00:00:00 2001 +From bd09bf6d6894e58361f24e703963ac24810ff9a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 49/61] [3D] Support switching to 3D resolutions +Subject: [PATCH 34/46] [3D] Support switching to 3D resolutions Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes. Also remove the old code that treated 3D modes differently when assigning a score. @@ -2240,7 +1971,7 @@ Also remove the old code that treated 3D modes differently when assigning a scor 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoRenderers/BaseRenderer.cpp -index 4345c0f..cc5dc60 100644 +index bfafab7..84e6261 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoRenderers/BaseRenderer.cpp @@ -222,10 +222,14 @@ void CBaseRenderer::FindResolutionFromFpsMatch(float fps, float& weight) @@ -2313,10 +2044,10 @@ index 4345c0f..cc5dc60 100644 return current; } -From 1ca60872dbd7c116d44a2f9a49d5cc704e5193e2 Mon Sep 17 00:00:00 2001 +From e89f3576f0192f6a0827016fee5d5967f502a3e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 50/61] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 35/46] [graphics] Make pixel ratio for 3d modes consistent Note: Use the stored stereo flags from lists of resolutions. Use current stereo mode for current resolution. @@ -2328,7 +2059,7 @@ Use current stereo mode for current resolution. 4 files changed, 32 insertions(+), 35 deletions(-) diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoRenderers/BaseRenderer.cpp -index cc5dc60..0c23290 100644 +index 84e6261..f82f37f 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoRenderers/BaseRenderer.cpp @@ -119,7 +119,7 @@ bool CBaseRenderer::FindResolutionFromOverride(float fps, float& weight, bool fa @@ -2376,10 +2107,10 @@ index cc5dc60..0c23290 100644 continue; diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index a476cd8..9882935 100644 +index ed7316a..f591b9c 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -747,32 +747,33 @@ void CGraphicContext::ApplyStateBlock() +@@ -746,32 +746,33 @@ void CGraphicContext::ApplyStateBlock() g_Windowing.ApplyStateBlock(); } @@ -2428,7 +2159,7 @@ index a476cd8..9882935 100644 info.iWidth = (info.iWidth - info.iBlanking) / 2; info.Overscan.left /= 2; info.Overscan.right = (info.Overscan.right - info.iBlanking) / 2; -@@ -790,16 +791,14 @@ void CGraphicContext::SetResInfo(RESOLUTION res, const RESOLUTION_INFO& info) +@@ -795,16 +796,14 @@ void CGraphicContext::SetResInfo(RESOLUTION res, const RESOLUTION_INFO& info) if(info.dwFlags & D3DPRESENTFLAG_MODE3DSBS) { curr.Overscan.right = info.Overscan.right * 2 + info.iBlanking; @@ -2448,7 +2179,7 @@ index a476cd8..9882935 100644 } diff --git a/xbmc/guilib/GraphicContext.h b/xbmc/guilib/GraphicContext.h -index aba11cd..c84aed0 100644 +index 8501e58..0c53cae 100644 --- a/xbmc/guilib/GraphicContext.h +++ b/xbmc/guilib/GraphicContext.h @@ -120,11 +120,15 @@ class CGraphicContext : public CCriticalSection, @@ -2519,10 +2250,10 @@ index c80114e..80c05d2 100644 AddUniqueResolution(res2, resolutions); -From 322614f99f49aea527c75d9573e245da12cfbade Mon Sep 17 00:00:00 2001 +From 018e123537f5a75f92ff3eb1e71ee72712011d2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2015 17:05:18 +0000 -Subject: [PATCH 51/61] [players] Add settings option to enable MVC support +Subject: [PATCH 36/46] [players] Add settings option to enable MVC support --- addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ @@ -2532,10 +2263,10 @@ Subject: [PATCH 51/61] [players] Add settings option to enable MVC support 4 files changed, 27 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index aee20d0..3d6b660 100644 +index c48b256..8ecf1bf 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16602,6 +16602,16 @@ msgctxt "#38052" +@@ -16704,6 +16704,16 @@ msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -2553,7 +2284,7 @@ index aee20d0..3d6b660 100644 msgctxt "#38103" msgid "Extract thumbnails from video files" diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index 208cd49..6357b1d 100644 +index a54a4c4..31a6bcc 100644 --- a/system/settings/rbp.xml +++ b/system/settings/rbp.xml @@ -27,6 +27,13 @@ @@ -2603,10 +2334,10 @@ index e4f6d86..5d324f4 100644 case AV_CODEC_ID_MPEG4: // (role name) video_decoder.mpeg4 -From 9fed5fcd6c6c2150ba465abc04fb7776cb878b03 Mon Sep 17 00:00:00 2001 +From 3879afb94401608ee5985a8daabd53ade2e114e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 52/61] [mmalrenderer] Switch to using transform flags for 3d +Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d modes --- @@ -2620,10 +2351,10 @@ Subject: [PATCH 52/61] [mmalrenderer] Switch to using transform flags for 3d 7 files changed, 75 insertions(+), 130 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 3d6b660..eeb6d0a 100644 +index 8ecf1bf..aefe898 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16612,6 +16612,16 @@ msgctxt "#38111" +@@ -16714,6 +16714,16 @@ msgctxt "#38111" msgid "This option decodes frames for both eyes of MVC video. Disabling may improve performance if you don't require 3D" msgstr "" @@ -2641,7 +2372,7 @@ index 3d6b660..eeb6d0a 100644 msgctxt "#38103" msgid "Extract thumbnails from video files" diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml -index 6357b1d..77e983b 100644 +index 31a6bcc..b5af261 100644 --- a/system/settings/rbp.xml +++ b/system/settings/rbp.xml @@ -33,6 +33,14 @@ @@ -2660,7 +2391,7 @@ index 6357b1d..77e983b 100644 diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index f1e3252..8ffcf23 100644 +index 9f1f803..6cde0c5 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -366,11 +366,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) @@ -2985,35 +2716,10 @@ index 80c05d2..ae85484 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); - -From 1935fc178acf61dacda8f982802e4f326390dba5 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 17 Mar 2015 20:33:54 +0000 -Subject: [PATCH 53/61] alsa: enable-shared is required - ---- - tools/depends/target/alsa-lib/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/depends/target/alsa-lib/Makefile b/tools/depends/target/alsa-lib/Makefile -index b03fc19..a04d933 100644 ---- a/tools/depends/target/alsa-lib/Makefile -+++ b/tools/depends/target/alsa-lib/Makefile -@@ -19,7 +19,7 @@ CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \ - --with-ctl-plugins=ext \ - --with-pcm-plugins="copy,linear,route,mulaw,alaw,adpcm,rate,plug,multi,file,null,empty,share,meter,hooks,lfloat,ladspa,asym,iec958,softvol,extplug,ioplug,mmap_emul" \ - --disable-resmgr --enable-aload --enable-mixer --enable-pcm --disable-rawmidi --enable-hwdep --disable-seq --disable-alisp --disable-old-symbols --disable-python \ -- --with-softfloat=yes --with-libdl=yes --with-pthread=yes --with-librt=no --disable-shared \ -+ --with-softfloat=yes --with-libdl=yes --with-pthread=yes --with-librt=no --enable-shared \ - - LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a - - - -From 1d7052cf03293af8a4247348ae72b8ca07731a9f Mon Sep 17 00:00:00 2001 +From d4ecbc3818f8cc6c868b757a63a4aa59310363dc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 56/61] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 40/46] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -3021,10 +2727,10 @@ Subject: [PATCH 56/61] [gui] Also limit GUI updates when in non full-screen 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 9c6496b..01a711e 100644 +index 48536b9..e83cc9f 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2495,7 +2495,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2486,7 +2486,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) #if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) // This code reduces rendering fps of the GUI layer when playing videos in fullscreen mode // it makes only sense on architectures with multiple layers @@ -3033,7 +2739,7 @@ index 9c6496b..01a711e 100644 fps = CSettings::Get().GetInt("videoplayer.limitguiupdate"); #endif -@@ -2508,6 +2508,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2499,6 +2499,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -3043,10 +2749,10 @@ index 9c6496b..01a711e 100644 g_windowManager.FrameMove(); } -From 0768d7332735c93b675a7553c2f50988e10218cd Mon Sep 17 00:00:00 2001 +From 0af66e97c3563a209f41f45c01508747ca2e7788 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 57/61] [mmalrenderer] Add sharpness control +Subject: [PATCH 41/46] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -3055,20 +2761,20 @@ Subject: [PATCH 57/61] [mmalrenderer] Add sharpness control 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index d8ffaf4..474ffef 100644 +index a622e73..9341924 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -7474,7 +7474,7 @@ msgstr "" +@@ -7524,7 +7524,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" --msgid "(VDPAU)Sharpness" +-msgid "VDPAU - Sharpness" +msgid "Sharpness" msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index 8ffcf23..67daa9e 100644 +index 6cde0c5..9bf1aed 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -207,6 +207,7 @@ CMMALRenderer::CMMALRenderer() @@ -3118,17 +2824,17 @@ index 1404fb3..9bced7e 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From bbc34ab2aff74da8ce3ba13dd6937ea5f00f1844 Mon Sep 17 00:00:00 2001 +From 2f8c52cd11f50ceaa378aec35a5d92c7327bf9a7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 58/61] [dvdplayer] Add back required include +Subject: [PATCH 42/46] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index 55fa8b1..23edcd6 100644 +index 9f1892b..933d905 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -33,6 +33,7 @@ @@ -3140,10 +2846,10 @@ index 55fa8b1..23edcd6 100644 #include "guilib/GraphicContext.h" #include -From 93943251b2afa14881cd57ba1cc7a1b917e007b9 Mon Sep 17 00:00:00 2001 +From 0eca10f4cd6f53f8224ed32fab35cd96c423548f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 60/61] [screensaver] Leave GUI contents available for +Subject: [PATCH 44/46] [screensaver] Leave GUI contents available for screensaver --- @@ -3151,10 +2857,10 @@ Subject: [PATCH 60/61] [screensaver] Leave GUI contents available for 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xbmc/guilib/GUIWindowManager.cpp b/xbmc/guilib/GUIWindowManager.cpp -index a22fb74..eb35710 100644 +index ba33908..17ea269 100644 --- a/xbmc/guilib/GUIWindowManager.cpp +++ b/xbmc/guilib/GUIWindowManager.cpp -@@ -792,7 +792,16 @@ void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector +Date: Fri, 15 May 2015 14:04:11 +0100 +Subject: [PATCH 46/46] [omxplayer] Make unsupported when ac3transcode is + enabled + +--- + xbmc/cores/omxplayer/OMXHelper.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXHelper.cpp b/xbmc/cores/omxplayer/OMXHelper.cpp +index be54f31..373e3f2 100644 +--- a/xbmc/cores/omxplayer/OMXHelper.cpp ++++ b/xbmc/cores/omxplayer/OMXHelper.cpp +@@ -56,6 +56,12 @@ bool OMXPlayerUnsuitable(bool m_HasVideo, bool m_HasAudio, CDVDDemux* m_pDemuxer + CLog::Log(LOGNOTICE, "%s OMXPlayer unsuitable due to audio sink", __func__); + return true; + } ++ // omxplayer doesn't handle ac3 transcode ++ if (CSettings::Get().GetBool("audiooutput.ac3transcode")) ++ { ++ CLog::Log(LOGNOTICE, "%s OMXPlayer unsuitable due to ac3transcode", __func__); ++ return true; ++ } + if (m_pDemuxer) + { + // find video stream diff --git a/projects/WeTek_Play/options b/projects/WeTek_Play/options index b7f78c0edc..26918e9883 100644 --- a/projects/WeTek_Play/options +++ b/projects/WeTek_Play/options @@ -111,7 +111,7 @@ KODIPLAYER_DRIVER="libamcodec" # KODI DCADEC support (yes / no) - DCADEC_SUPPORT="no" + DCADEC_SUPPORT="yes" # Modules to install in initramfs for early boot INITRAMFS_MODULES="" diff --git a/projects/WeTek_Play/patches/kodi/0002-Allow-audio-passthrough-for-Amlogic-based-devices.patch b/projects/WeTek_Play/patches/kodi/0002-Allow-audio-passthrough-for-Amlogic-based-devices.patch deleted file mode 100644 index f062629493..0000000000 --- a/projects/WeTek_Play/patches/kodi/0002-Allow-audio-passthrough-for-Amlogic-based-devices.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 7cdd0f41588b9ddf4778f643fc77cbcbf7ca54a5 Mon Sep 17 00:00:00 2001 -From: Alex Deryskyba -Date: Wed, 16 Apr 2014 22:11:51 +0300 -Subject: [PATCH 02/17] Allow audio passthrough for Amlogic-based devices. - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -index b391ff3..a7565f0 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -@@ -91,6 +91,7 @@ AEDeviceType CActiveAESink::GetDeviceType(const std::string &device) - - bool CActiveAESink::HasPassthroughDevice() - { -+#ifndef HAS_LIBAMCODEC - for (AESinkInfoList::iterator itt = m_sinkInfoList.begin(); itt != m_sinkInfoList.end(); ++itt) - { - for (AEDeviceInfoList::iterator itt2 = itt->m_deviceInfoList.begin(); itt2 != itt->m_deviceInfoList.end(); ++itt2) -@@ -101,10 +102,14 @@ bool CActiveAESink::HasPassthroughDevice() - } - } - return false; -+#else -+ return true; -+#endif - } - - bool CActiveAESink::SupportsFormat(const std::string &device, AEDataFormat format, int samplerate) - { -+#ifndef HAS_LIBAMCODEC - std::string dev = device; - std::string dri; - CAESinkFactory::ParseDevice(dev, dri); -@@ -135,6 +140,9 @@ bool CActiveAESink::SupportsFormat(const std::string &device, AEDataFormat forma - } - } - return false; -+#else -+ return true; -+#endif - } - - enum SINK_STATES --- -1.7.10.4 - diff --git a/projects/WeTek_Play/patches/kodi/0013-Save-settings-only-if-they-were-modified-after-the-l.patch b/projects/WeTek_Play/patches/kodi/0013-Save-settings-only-if-they-were-modified-after-the-l.patch index 08a02c8e79..34d91c79f2 100644 --- a/projects/WeTek_Play/patches/kodi/0013-Save-settings-only-if-they-were-modified-after-the-l.patch +++ b/projects/WeTek_Play/patches/kodi/0013-Save-settings-only-if-they-were-modified-after-the-l.patch @@ -1,8 +1,8 @@ -From ada3250ecc3cb73b805027ac6761ca5576f748c3 Mon Sep 17 00:00:00 2001 +From 55a51ac4c992deaa1122ec8fccd21f8a336889e0 Mon Sep 17 00:00:00 2001 From: Alex Deryskyba Date: Sun, 19 Oct 2014 16:20:33 +0300 -Subject: [PATCH 13/17] Save settings only if they were modified after the - last save +Subject: [PATCH 13/17] Save settings only if they were modified after the last + save This prevents from multiple saving the same settings and helps to resolve the issue on Amlogic G18REF TV-boxes when setiings may be lost after a poweroff. @@ -15,15 +15,27 @@ is written half-way and couldn't be read upon next boot, so the XBMC creates a n default settings. With this fix the settings will be written at exit only once, minimizing the risk of being lost. + +note by seo: + added utils/md5.h after kodi includes cleanup. + however, this patch should not be needed at all. TODO remove --- - xbmc/settings/Settings.cpp | 11 +++++++++++ - 1 file changed, 11 insertions(+) + xbmc/settings/Settings.cpp | 12 ++++++++++++ + 1 file changed, 12 insertions(+) diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp -index 3c981a4..0850bce 100644 +index 2e690e3..bd0200d 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp -@@ -207,6 +207,17 @@ bool CSettings::Save(const std::string &file) +@@ -72,6 +72,7 @@ + #include "threads/SingleLock.h" + #include "utils/CharsetConverter.h" + #include "utils/log.h" ++#include "utils/md5.h" + #include "utils/RssManager.h" + #include "utils/StringUtils.h" + #include "utils/SystemInfo.h" +@@ -206,6 +207,17 @@ bool CSettings::Save(const std::string &file) if (!m_settingsManager->Save(root)) return false; @@ -42,5 +54,5 @@ index 3c981a4..0850bce 100644 } -- -1.7.10.4 +2.1.4 diff --git a/projects/WeTek_Play/patches/kodi/0017-enable-IEC958.patch b/projects/WeTek_Play/patches/kodi/0017-enable-IEC958.patch new file mode 100644 index 0000000000..c3f38fb26b --- /dev/null +++ b/projects/WeTek_Play/patches/kodi/0017-enable-IEC958.patch @@ -0,0 +1,18 @@ +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +index e22db7a..dcdaf2e 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +@@ -1291,6 +1291,12 @@ void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) + + AEDeviceType CAESinkALSA::AEDeviceTypeFromName(const std::string &name) + { ++#ifdef HAS_LIBAMCODEC ++ // ugly workaround to show DTS / AC3 caps ++ // but don't run into multi channel issues ++ // as we can only open 2 pcm channels ++ return AE_DEVTYPE_IEC958; ++#endif + if (name.substr(0, 4) == "hdmi") + return AE_DEVTYPE_HDMI; + else if (name.substr(0, 6) == "iec958" || name.substr(0, 5) == "spdif") + diff --git a/projects/imx6/bootloader/uEnv-matrix.txt b/projects/imx6/bootloader/uEnv-matrix.txt new file mode 100644 index 0000000000..6e60f0b358 --- /dev/null +++ b/projects/imx6/bootloader/uEnv-matrix.txt @@ -0,0 +1,4 @@ +zImage=/KERNEL +bootfile=/KERNEL +mmcargs=setenv bootargs 'boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 quiet video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 dmfc=3 consoleblank=0' +uenvcmd=if test -n $ethaddr; then true; else setenv ethaddr 1E:ED:19:27:1A:B2; fi diff --git a/projects/imx6/filesystem/usr/lib/systemd/system/imx6-poweroff.service b/projects/imx6/filesystem/usr/lib/systemd/system/imx6-poweroff.service new file mode 100644 index 0000000000..fe62bd2fa4 --- /dev/null +++ b/projects/imx6/filesystem/usr/lib/systemd/system/imx6-poweroff.service @@ -0,0 +1,15 @@ +[Unit] +Description=imx6 poweroff service +Before=systemd-poweroff.service +After=kodi-poweroff.service +DefaultDependencies=no + +[Service] +Type=oneshot +Environment=HOME=/storage +ExecStart=-/bin/sh -c "echo 0 > /sys/class/leds/imx6\:red\:front/brightness; echo 1 > /sys/class/graphics/fb0/blank" +StandardError=null +RemainAfterExit=yes + +[Install] +WantedBy=poweroff.target diff --git a/projects/imx6/linux/linux.arm.conf b/projects/imx6/linux/linux.arm.conf index 229697034e..3600d1d1b1 100644 --- a/projects/imx6/linux/linux.arm.conf +++ b/projects/imx6/linux/linux.arm.conf @@ -2104,7 +2104,33 @@ CONFIG_GPIO_MXC=y # # USB GPIO expanders: # -# CONFIG_W1 is not set +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set +CONFIG_W1_MASTER_MXC=m +# CONFIG_W1_MASTER_DS1WM is not set +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2408 is not set +# CONFIG_W1_SLAVE_DS2413 is not set +# CONFIG_W1_SLAVE_DS2423 is not set +# CONFIG_W1_SLAVE_DS2431 is not set +# CONFIG_W1_SLAVE_DS2433 is not set +# CONFIG_W1_SLAVE_DS2760 is not set +# CONFIG_W1_SLAVE_DS2780 is not set +# CONFIG_W1_SLAVE_DS2781 is not set +# CONFIG_W1_SLAVE_DS28E04 is not set +# CONFIG_W1_SLAVE_BQ27000 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set @@ -2127,8 +2153,10 @@ CONFIG_POWER_SUPPLY=y # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_IMX6_USB_CHARGER is not set -# CONFIG_POWER_RESET is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_GPIO is not set # CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_RESET_UDOO=y # CONFIG_POWER_AVS is not set CONFIG_HWMON=y # CONFIG_HWMON_VID is not set diff --git a/projects/imx6/options b/projects/imx6/options index 430621f802..74efdb35d6 100644 --- a/projects/imx6/options +++ b/projects/imx6/options @@ -42,6 +42,8 @@ # Configuration for u-boot UBOOT_CONFIG="mx6_cubox-i_config" + UBOOT_CONFIG="$UBOOT_CONFIG matrix" + UBOOT_CONFIG="$UBOOT_CONFIG udoo_quad_config" # Target Configfile for u-boot UBOOT_CONFIGFILE="" @@ -52,6 +54,8 @@ # Kernel extra targets to build KERNEL_UBOOT_EXTRA_TARGET="imx6q-cubox-i.dtb imx6dl-cubox-i.dtb" KERNEL_UBOOT_EXTRA_TARGET="$KERNEL_UBOOT_EXTRA_TARGET imx6q-hummingboard.dtb imx6dl-hummingboard.dtb" + KERNEL_UBOOT_EXTRA_TARGET="$KERNEL_UBOOT_EXTRA_TARGET imx6q-tbs2910.dtb" + KERNEL_UBOOT_EXTRA_TARGET="$KERNEL_UBOOT_EXTRA_TARGET imx6q-udoo.dtb" # Additional kernel make parameters (for example to specify the u-boot loadaddress) KERNEL_MAKE_EXTRACMD="" @@ -112,7 +116,7 @@ KODIPLAYER_DRIVER="libfslvpuwrap" # KODI DCADEC support (yes / no) - DCADEC_SUPPORT="no" + DCADEC_SUPPORT="yes" # Modules to install in initramfs for early boot INITRAMFS_MODULES="" diff --git a/projects/imx6/patches/linux/linux-320-cuboxi_led_heartbeat.patch b/projects/imx6/patches/linux/linux-320-cuboxi_led_heartbeat.patch new file mode 100644 index 0000000000..e65e4bd519 --- /dev/null +++ b/projects/imx6/patches/linux/linux-320-cuboxi_led_heartbeat.patch @@ -0,0 +1,10 @@ +--- a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-11-25 19:23:06.332485391 +0100 ++++ b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-11-25 19:23:24.675776865 +0100 +@@ -31,6 +31,7 @@ + label = "imx6:red:front"; + max-brightness = <248>; + pwms = <&pwm1 0 50000>; ++ linux,default-trigger = "heartbeat"; + }; + }; + diff --git a/projects/imx6/patches/linux/linux-330-udoo-chipidea-clock-for-an-USB-phy-hub.patch b/projects/imx6/patches/linux/linux-330-udoo-chipidea-clock-for-an-USB-phy-hub.patch new file mode 100644 index 0000000000..a94f5d9126 --- /dev/null +++ b/projects/imx6/patches/linux/linux-330-udoo-chipidea-clock-for-an-USB-phy-hub.patch @@ -0,0 +1,161 @@ +From 7938bdb186ed300a8de0d78dff514f3c43209bc1 Mon Sep 17 00:00:00 2001 +From: vpeter4 +Date: Wed, 10 Dec 2014 11:58:19 +0100 +Subject: [PATCH] chipidea: ci_hdrc_imx: Allow handling the clock for an USB + phy/hub + +for file ci_hdrc_imx.c + 1-2-chipidea-ci_hdrc_imx-Allow-handling-the-clock-for-an-USB-phy-hub.patch +for file usbmisc_imx.c + unknown patch (used from https://github.com/mtx512/linux-imx/commits/imx_3.10.17_1.0.0_beta-udoo) + +Subject: [1/2] chipidea: ci_hdrc_imx: Allow handling the clock for an USB + phy/hub +From: Fabio Estevam +Date: Thu, 14 Nov 2013 00:09:46 -0200 + +When using external USB PHY or USB hub, it is common that they require a clock +input. + +Add a 'clk_phy' clock, so that it can be retrieved from the device tree and +enabled in the driver, so that the clock can properly drive the external +USB phy/hub. + +Tested on a imx6q-udoo board, that connects via USBH1 to a USB2514 hub. + +In this board the USB2514 is clocked from a 24MHz clock that comes from the +imx6q CLKO2 pin. + +--- + .../devicetree/bindings/usb/ci-hdrc-imx.txt | 2 ++ + .../drivers/usb/chipidea/ci_hdrc_imx.c | 20 +++++++++++++++++++- + .../drivers/usb/chipidea/usbmisc_imx.c | 18 ++++++++++++++++++ + 3 files changed, 39 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt +index b4b5b79..07ba38c 100644 +--- a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt ++++ b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt +@@ -18,6 +18,8 @@ Optional properties: + - vbus-supply: regulator for vbus + - disable-over-current: disable over current detect + - external-vbus-divider: enables off-chip resistor divider for Vbus ++- clocks: phandle to the clock that drives the USB hub ++- clock-names: must be "phy" + + Examples: + usb@02184000 { /* USB OTG */ +diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c +index de6b965..4e621fd 100644 +--- a/drivers/usb/chipidea/ci_hdrc_imx.c ++++ b/drivers/usb/chipidea/ci_hdrc_imx.c +@@ -68,6 +68,7 @@ struct ci_hdrc_imx_data { + struct usb_phy *phy; + struct platform_device *ci_pdev; + struct clk *clk; ++ struct clk *clk_phy; + struct imx_usbmisc_data *usbmisc_data; + bool supports_runtime_pm; + bool in_lpm; +@@ -155,10 +156,22 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) + return ret; + } + ++ data->clk_phy = devm_clk_get(&pdev->dev, "phy"); ++ if (IS_ERR(data->clk_phy)) { ++ data->clk_phy = NULL; ++ } else { ++ ret = clk_prepare_enable(data->clk_phy); ++ if (ret) { ++ dev_err(&pdev->dev, ++ "Failed to enable clk_phy: %d\n", ret); ++ goto err_clk; ++ } ++ } ++ + data->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "fsl,usbphy", 0); + if (IS_ERR(data->phy)) { + ret = PTR_ERR(data->phy); +- goto err_clk; ++ goto err_clk_phy; + } + + pdata.phy = data->phy; +@@ -234,6 +247,9 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) + + disable_device: + ci_hdrc_remove_device(data->ci_pdev); ++err_clk_phy: ++ if (data->clk_phy) ++ clk_disable_unprepare(data->clk_phy); + err_clk: + clk_disable_unprepare(data->clk); + release_bus_freq(BUS_FREQ_HIGH); +@@ -246,6 +262,8 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev) + + pm_runtime_disable(&pdev->dev); + ci_hdrc_remove_device(data->ci_pdev); ++ if (data->clk_phy) ++ clk_disable_unprepare(data->clk_phy); + clk_disable_unprepare(data->clk); + release_bus_freq(BUS_FREQ_HIGH); + +diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c +index 683bcec..86fd7e6 100644 +--- a/drivers/usb/chipidea/usbmisc_imx.c ++++ b/drivers/usb/chipidea/usbmisc_imx.c +@@ -11,6 +11,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -50,6 +51,7 @@ struct usbmisc_ops { + struct imx_usbmisc { + void __iomem *base; + spinlock_t lock; ++ struct clk *clk; + const struct usbmisc_ops *ops; + }; + +@@ -281,6 +283,7 @@ static int usbmisc_imx_probe(struct platform_device *pdev) + { + struct resource *res; + struct imx_usbmisc *data; ++ int ret; + struct of_device_id *tmp_dev; + + if (usbmisc) +@@ -297,6 +300,20 @@ static int usbmisc_imx_probe(struct platform_device *pdev) + if (IS_ERR(data->base)) + return PTR_ERR(data->base); + ++ data->clk = devm_clk_get(&pdev->dev, NULL); ++ if (IS_ERR(data->clk)) { ++ dev_err(&pdev->dev, ++ "failed to get clock, err=%ld\n", PTR_ERR(data->clk)); ++ return PTR_ERR(data->clk); ++ } ++ ++ ret = clk_prepare_enable(data->clk); ++ if (ret) { ++ dev_err(&pdev->dev, ++ "clk_prepare_enable failed, err=%d\n", ret); ++ return ret; ++ } ++ + tmp_dev = (struct of_device_id *) + of_match_device(usbmisc_imx_dt_ids, &pdev->dev); + data->ops = (const struct usbmisc_ops *)tmp_dev->data; +@@ -319,6 +336,7 @@ static int usbmisc_imx_probe(struct platform_device *pdev) + + static int usbmisc_imx_remove(struct platform_device *pdev) + { ++ clk_disable_unprepare(usbmisc->clk); + usbmisc = NULL; + return 0; + } +-- +1.8.1.2 diff --git a/projects/imx6/patches/linux/linux-331-udoo-poweroff-driver.patch b/projects/imx6/patches/linux/linux-331-udoo-poweroff-driver.patch new file mode 100644 index 0000000000..f1c39fef29 --- /dev/null +++ b/projects/imx6/patches/linux/linux-331-udoo-poweroff-driver.patch @@ -0,0 +1,254 @@ +From c95f6c30e3230b02e90b98ca6ec8e8c2784141eb Mon Sep 17 00:00:00 2001 +From: vpeter4 +Date: Thu, 21 May 2015 20:42:22 +0200 +Subject: [PATCH] Add poweroff driver. + +Use original power_off function from rtc-snvs if set. +Arduino operation is controled by device tree parameter. + +From 1bc304cd507fe9eb5673223f0d76ec0aa4ff55f3 Mon Sep 17 00:00:00 2001 +From: mxt512 +Date: Thu, 13 Feb 2014 20:13:27 +0000 +Subject: [PATCH] Add poweroff driver. + +Existing pm_power_off function was in rtc-snvs. Given we need to reset the SAM3X and turn off +the 5v supply on power down, lets implement a power-off driver to do this for now. + +TODO: Not the cleanest solution but it works, should revisit. + Overwriting power_off function with udoo_power_off in case uddo is used. + +--- + arch/arm/boot/dts/imx6q-udoo.dts | 12 ++++ + arch/arm/mach-imx/mach-imx6q.c | 44 ++++++++++++++ + drivers/power/reset/Kconfig | 8 +++ + drivers/power/reset/Makefile | 1 + + drivers/power/reset/udoo-poweroff.c | 113 ++++++++++++++++++++++++++++++++++++ + 5 files changed, 178 insertions(+) + create mode 100644 drivers/power/reset/udoo-poweroff.c + +diff --git a/arch/arm/boot/dts/imx6q-udoo.dts b/arch/arm/boot/dts/imx6q-udoo.dts +index 7cc0267..6c9d46f 100644 +--- a/arch/arm/boot/dts/imx6q-udoo.dts ++++ b/arch/arm/boot/dts/imx6q-udoo.dts +@@ -23,6 +23,13 @@ + memory { + reg = <0x10000000 0x40000000>; + }; ++ ++ poweroff { ++ compatible = "udoo,poweroff"; ++ sam3x_rst_gpio = <&gpio1 0 GPIO_ACTIVE_LOW>; ++ pwr_5v_gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>; ++ arduino_mode = <0>; ++ }; + }; + + &fec { +diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c +index a466891..ed49659 100644 +--- a/arch/arm/mach-imx/mach-imx6q.c ++++ b/arch/arm/mach-imx/mach-imx6q.c +@@ -280,6 +280,46 @@ static inline void imx6q_enet_init(void) + imx6q_1588_init(); + } + ++#ifdef CONFIG_POWER_RESET_UDOO ++#define ARDUINO_MODE_STOPPED 1 /* does arduino starts at boot */ ++#define ARDUINO_MODE_LEAVE_POWER 2 /* leave 5V power on after shutdown (to keep arduino reset) */ ++ ++static inline void imx6q_udoo_gpio_init(void) ++{ ++ struct device_node *pwr_off_np; ++ int sam3x_rst_gpio = -EINVAL; ++ u32 arduino_mode = -EINVAL; ++ int ret; ++ ++ pwr_off_np = of_find_compatible_node(NULL, NULL, "udoo,poweroff"); ++ if (pwr_off_np == NULL) ++ return; ++ ++ pr_emerg("%s: setup sam3x reset gpio\n", __func__); ++ ++ ret = of_property_read_u32(pwr_off_np, "arduino_mode", &arduino_mode); ++ if (ret != 0) { ++ pr_err("%s: arduino mode not found in dtb\n", __func__); ++ arduino_mode = 0; ++ } ++ ++ pr_emerg("%s: arduino_mode set to %d\n", __func__, arduino_mode); ++ sam3x_rst_gpio = of_get_named_gpio(pwr_off_np, "sam3x_rst_gpio", 0); ++ of_node_put(pwr_off_np); ++ ++ if (gpio_is_valid(sam3x_rst_gpio)) { ++ if (arduino_mode & ARDUINO_MODE_STOPPED) { ++ pr_emerg("%s: arduino stopped\n", __func__); ++ ret = gpio_request_one(sam3x_rst_gpio, GPIOF_OUT_INIT_LOW, "sam3x_rst_gpio"); ++ } else { ++ ret = gpio_request_one(sam3x_rst_gpio, GPIOF_OUT_INIT_HIGH, "sam3x_rst_gpio"); ++ } ++ ++ ret = gpio_export(sam3x_rst_gpio, false); ++ } ++} ++#endif ++ + static void __init imx6q_init_machine(void) + { + struct device *parent; +@@ -299,6 +339,10 @@ static void __init imx6q_init_machine(void) + imx_anatop_init(); + cpu_is_imx6q() ? imx6q_pm_init() : imx6dl_pm_init(); + imx6q_csi_mux_init(); ++ ++#ifdef CONFIG_POWER_RESET_UDOO ++ imx6q_udoo_gpio_init(); ++#endif + } + + #define OCOTP_CFG3 0x440 +diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig +index 6d452a7..1a0620f 100644 +--- a/drivers/power/reset/Kconfig ++++ b/drivers/power/reset/Kconfig +@@ -57,3 +57,11 @@ config POWER_RESET_XGENE + depends on POWER_RESET + help + Reboot support for the APM SoC X-Gene Eval boards. ++ ++config POWER_RESET_UDOO ++ bool "UDOO power-off driver" ++ depends on POWER_RESET ++ help ++ This driver supports powering down the UDOO. ++ Say Y if you have a UDOO. ++ +diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile +index a5b4a77..9b8e1b0 100644 +--- a/drivers/power/reset/Makefile ++++ b/drivers/power/reset/Makefile +@@ -5,3 +5,4 @@ obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o + obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o + obj-$(CONFIG_POWER_RESET_VEXPRESS) += vexpress-poweroff.o + obj-$(CONFIG_POWER_RESET_XGENE) += xgene-reboot.o ++obj-$(CONFIG_POWER_RESET_UDOO) += udoo-poweroff.o +diff --git a/drivers/power/reset/udoo-poweroff.c b/drivers/power/reset/udoo-poweroff.c +new file mode 100644 +index 0000000..2a2aecf +--- /dev/null ++++ b/drivers/power/reset/udoo-poweroff.c +@@ -0,0 +1,113 @@ ++/* ++ * UDOO board power off ++ * ++ * ++ * Copyright (C) 2014 Jasbir Matharu ++ * Copyright (C) 2015 vpeter ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ARDUINO_MODE_STOPPED 1 /* does arduino starts at boot */ ++#define ARDUINO_MODE_LEAVE_POWER 2 /* leave 5V power on after shutdown (to keep arduino reset) */ ++ ++static void (*pm_power_off_orig)(void) = NULL; ++static int sam3x_rst_gpio = -EINVAL; ++static int pwr_5v_gpio = -EINVAL; ++static u32 arduino_mode = -EINVAL; ++ ++static void udoo_power_off(void) { ++ int ret; ++ ++ pr_emerg("%s: powering off\n", __func__); ++ if (pm_power_off_orig != NULL) ++ pm_power_off_orig(); ++ ++ if (gpio_is_valid(sam3x_rst_gpio)) { ++ pr_emerg("%s: sam3x reset\n", __func__); ++ ret = gpio_direction_output(sam3x_rst_gpio, 0); ++ if (ret) ++ pr_emerg("%s: sam3x reset unsuccessful\n", __func__); ++ ++ msleep(50); ++ } ++ ++ if (gpio_is_valid(pwr_5v_gpio) && (arduino_mode & ARDUINO_MODE_LEAVE_POWER) == 0) { ++ pr_emerg("%s: 5V power down\n", __func__); ++ ret = gpio_request_one(pwr_5v_gpio, GPIOF_OUT_INIT_HIGH, "pwr_5v_gpio"); ++ if (ret) ++ pr_emerg("%s: 5V power down unsuccessful\n", __func__); ++ } else ++ pr_emerg("%s: 5V power still on, sam3x reset\n", __func__); ++} ++ ++static int udoo_power_off_probe(struct platform_device *pdev) ++{ ++ struct device_node *pwr_off_np; ++ int ret; ++ ++ pr_emerg("%s: power-off probe\n", __func__); ++ ++ pwr_off_np = of_find_compatible_node(NULL, NULL, "udoo,poweroff"); ++ if (pwr_off_np) { ++ ret = of_property_read_u32(pwr_off_np, "arduino_mode", &arduino_mode); ++ if (ret != 0) { ++ pr_emerg("%s: arduino mode not found in dtb\n", __func__); ++ arduino_mode = 0; ++ } ++ ++ sam3x_rst_gpio = of_get_named_gpio(pwr_off_np, "sam3x_rst_gpio", 0); ++ pwr_5v_gpio = of_get_named_gpio(pwr_off_np, "pwr_5v_gpio", 0); ++ of_node_put(pwr_off_np); ++ ++ pm_power_off_orig = pm_power_off; ++ pm_power_off = udoo_power_off; ++ return 0; ++ } ++ ++ /* If a pm_power_off function has already been added, leave it alone */ ++ if (pm_power_off != NULL) { ++ pr_emerg("%s: pm_power_off function already registered\n", __func__); ++ return -EBUSY; ++ } ++ ++ return -ENODEV; ++} ++ ++static int udoo_power_off_remove(struct platform_device *pdev) ++{ ++ return 0; ++} ++ ++static const struct of_device_id power_off_dt_ids[] = { ++ { .compatible = "udoo,poweroff", }, ++ { /* sentinel */ } ++}; ++MODULE_DEVICE_TABLE(of, power_off_dt_ids); ++ ++static struct platform_driver udoo_power_off_driver = { ++ .driver = { ++ .name = "udoo_power_off", ++ .owner = THIS_MODULE, ++ .of_match_table = of_match_ptr(power_off_dt_ids), ++ }, ++ .probe = udoo_power_off_probe, ++ .remove = udoo_power_off_remove, ++}; ++module_platform_driver(udoo_power_off_driver); ++ ++MODULE_AUTHOR("Jasbir Matharu, vpeter"); ++MODULE_DESCRIPTION("UDOO Power off driver v2"); ++MODULE_LICENSE("GPL v2"); +-- +1.8.1.2 diff --git a/projects/imx6/patches/linux/linux-332-udoo-device_tree.patch b/projects/imx6/patches/linux/linux-332-udoo-device_tree.patch new file mode 100644 index 0000000000..7d6216cde0 --- /dev/null +++ b/projects/imx6/patches/linux/linux-332-udoo-device_tree.patch @@ -0,0 +1,439 @@ +From be220380dbd0a899ff49434d1b0c68c9b07830b6 Mon Sep 17 00:00:00 2001 +From: vpeter4 +Date: Thu, 11 Dec 2014 18:37:24 +0100 +Subject: [PATCH] udoo quad device tree + +--- + arch/arm/boot/dts/imx6q-udoo.dts | 350 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 343 insertions(+), 7 deletions(-) + +diff --git a/arch/arm/boot/dts/imx6q-udoo.dts b/arch/arm/boot/dts/imx6q-udoo.dts +index 1b8cce1..83b9a62 100644 +--- a/arch/arm/boot/dts/imx6q-udoo.dts ++++ b/arch/arm/boot/dts/imx6q-udoo.dts +@@ -2,6 +2,10 @@ + * Copyright 2013 Freescale Semiconductor, Inc. + * + * Author: Fabio Estevam ++ * ++ * Copyright (C) 2014 Jasbir ++ * Copyright (C) 2014 udoo team ++ * Copyright (C) 2014 vpeter + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as +@@ -16,14 +20,166 @@ + model = "Udoo i.MX6 Quad Board"; + compatible = "udoo,imx6q-udoo", "fsl,imx6q"; + +- chosen { +- stdout-path = &uart2; ++ aliases { ++ mxcfb0 = &mxcfb1; ++ mxcfb1 = &mxcfb2; ++ mxcfb2 = &mxcfb3; ++ mxcfb3 = &mxcfb4; + }; + ++ chosen { ++ stdout-path = &uart1; ++ }; ++ + memory { + reg = <0x10000000 0x40000000>; + }; + ++ regulators { ++ compatible = "simple-bus"; ++ ++ reg_2p5v: 2p5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "2P5V"; ++ regulator-min-microvolt = <2500000>; ++ regulator-max-microvolt = <2500000>; ++ regulator-always-on; ++ }; ++ ++ reg_3p3v: 3p3v { ++ compatible = "regulator-fixed"; ++ regulator-name = "3P3V"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ aux_5v: aux5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "AUX_5V"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpio = <&gpio6 10 1>; ++ regulator-boot-on; ++ enable-active-high; ++ }; ++ ++ reg_sensor: sensor_supply { ++ compatible = "regulator-fixed"; ++ regulator-name = "sensor-SUPPLY"; ++ enable-active-high; ++ }; ++ ++ reg_usb_otg_vbus: usb_otg_vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb_otg_vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ enable-active-high; ++ }; ++ ++ reg_usb_h1_vbus: usb_h1_vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb_h1_vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ enable-active-high; ++ startup-delay-us = <2>; /* USB2415 requires a POR of 1 us minimum */ ++ gpio = <&gpio7 12 0>; ++ }; ++ }; ++ ++ mxcfb1: fb@0 { ++ compatible = "fsl,mxc_sdc_fb"; ++ disp_dev = "hdmi"; ++ interface_pix_fmt = "RGB24"; ++ mode_str ="1920x1080M@60"; ++ default_bpp = <24>; ++ int_clk = <0>; ++ late_init = <0>; ++ status = "okay"; ++ }; ++ ++ mxcfb2: fb@1 { ++ compatible = "fsl,mxc_sdc_fb"; ++ disp_dev = "hdmi"; ++ interface_pix_fmt = "RGB24"; ++ mode_str ="1920x1080M@60"; ++ default_bpp = <24>; ++ int_clk = <0>; ++ late_init = <0>; ++ status = "disabled"; ++ }; ++ ++ mxcfb3: fb@2 { ++ compatible = "fsl,mxc_sdc_fb"; ++ disp_dev = "hdmi"; ++ interface_pix_fmt = "RGB24"; ++ mode_str ="1920x1080M@60"; ++ default_bpp = <24>; ++ int_clk = <0>; ++ late_init = <0>; ++ status = "disabled"; ++ }; ++ ++ mxcfb4: fb@3 { ++ compatible = "fsl,mxc_sdc_fb"; ++ disp_dev = "hdmi"; ++ interface_pix_fmt = "RGB24"; ++ mode_str ="1920x1080M@60"; ++ default_bpp = <24>; ++ int_clk = <0>; ++ late_init = <0>; ++ status = "disabled"; ++ }; ++ ++ codec: vt1613 { ++ compatible = "wlf,vt1613"; ++ amic-mono; ++ }; ++ ++ sound { ++ compatible = "fsl,imx6q-udoo-vt1613", ++ "fsl,imx-audio-vt1613"; ++ model = "vt1613-audio"; ++ ssi-controller = <&ssi1>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "Headphone Jack", "HPOUTL", ++ "Headphone Jack", "HPOUTR", ++ "Ext Spk", "SPKOUTL", ++ "Ext Spk", "SPKOUTR", ++ "MICBIAS", "AMIC", ++ "IN3R", "MICBIAS", ++ "DMIC", "MICBIAS", ++ "DMICDAT", "DMIC"; ++ mux-int-port = <1>; ++ mux-ext-port = <6>; ++ }; ++// hp-det-gpios = <&gpio7 8 1>; ++// mic-det-gpios = <&gpio1 9 1>; ++ ++ sound-hdmi { ++ compatible = "fsl,imx6q-audio-hdmi", ++ "fsl,imx-audio-hdmi"; ++ model = "imx-audio-hdmi"; ++ hdmi-controller = <&hdmi_audio>; ++ }; ++ ++ sound-spdif { ++ compatible = "fsl,imx-audio-spdif", ++ "fsl,imx-sabreauto-spdif"; ++ model = "imx-spdif"; ++ spdif-controller = <&spdif>; ++ spdif-in; ++ status = "disabled"; ++ }; ++ ++ v4l2_out { ++ compatible = "fsl,mxc_v4l2_output"; ++ status = "okay"; ++ }; ++ + poweroff { + compatible = "udoo,poweroff"; + sam3x_rst_gpio = <&gpio1 0 0>; +@@ -31,6 +187,55 @@ + }; + }; + ++&hdmi_audio { ++ status = "okay"; ++}; ++ ++&hdmi_core { ++ ipu_id = <0>; ++ disp_id = <0>; ++ status = "okay"; ++}; ++ ++&hdmi_video { ++ fsl,phy_reg_vlev = <0x0294>; ++ fsl,phy_reg_cksymtx = <0x800d>; ++ status = "okay"; ++}; ++ ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_2>; ++ status = "okay"; ++}; ++ ++&i2c2 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c2_2>; ++ status = "okay"; ++ ++ egalax_ts@04 { ++ compatible = "eeti,egalax_ts"; ++ reg = <0x04>; ++ interrupt-parent = <&gpio2>; ++ interrupts = <28 2>; ++ wakeup-gpios = <&gpio2 28 0>; ++ }; ++ ++ hdmi: edid@50 { ++ compatible = "fsl,imx6-hdmi-i2c"; ++ reg = <0x50>; ++ }; ++}; ++ ++&i2c3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c3_5>; ++ status = "okay"; ++}; ++ + &fec { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet>; +@@ -39,9 +244,68 @@ + }; + + &iomuxc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hog>; ++ + imx6q-udoo { +- pinctrl_enet: enetgrp { ++ pinctrl_hog: hoggrp { + fsl,pins = < ++ MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x80000000 /* 5v enable */ ++ MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x80000000 /* Vtt suspend */ ++ MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x80000000 /* touch reset */ ++ MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x80000000 /* audio reset */ ++ MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x80000000 /* ethernet power */ ++ ++ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000 /* usb hub reset */ ++ MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0 /* clk usb hub */ ++ MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0xb0b1 /* usb otg select */ ++ ++ MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x80000000 /* sdcard power */ ++ MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 /* sd card detect */ ++ MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x80000000 /* select dbg uart*/ ++ MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x80000000 /* SAM3X reset */ ++ MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x30b1 /* SAM3X erase */ ++ MX6QDL_PAD_GPIO_16__GPIO7_IO11 0xb0b1 /* SAM3X vbus_en */ ++ MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x80000000 /* SAM3X usb host */ ++ MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000 /* panel on */ ++ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000 /* backlight on */ ++ MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x80000000 /* camera reset */ ++ MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x80000000 /* camera enable */ ++ MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x80000000 /* input mon serial*/ ++ MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03 0x80000000 /* input mon serial*/ ++ MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x80000000 /* writeprotect spi*/ ++ MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x30b1 /* arduino pinout */ ++ ++ MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x80000000 /* audio audmux */ ++ MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x80000000 /* audio audmux */ ++ MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x80000000 /* audio audmux */ ++ MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x80000000 /* audio audmux */ ++ >; ++ }; ++ ++ pinctrl_i2c1_2: i2c1grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 ++ MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c2_2: i2c2grp-2 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 ++ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_i2c3_5: i2c3grp-5 { ++ fsl,pins = < ++ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_enet: enetgrp { ++ fsl,pins = < + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 +@@ -57,10 +321,10 @@ + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 +- MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 ++ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000 /* reset */ + >; + }; +- ++ + pinctrl_uart2: uart2grp { + fsl,pins = < + MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 +@@ -68,19 +332,51 @@ + >; + }; + ++ pinctrl_uart4: uart4grp { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 ++ MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 ++ >; ++ }; ++ + pinctrl_usdhc3: usdhc3grp { + fsl,pins = < +- MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 +- MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 ++ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 ++ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 + >; + }; ++ ++ pinctrl_i2c3_1: i2c3grp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 ++ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 ++ >; ++ }; ++ ++ pinctrl_spdif_1: spdifgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0 ++ >; ++ }; ++ ++ /*pinctrl_hdmi_cec_1: hdmicecgrp-1 { ++ fsl,pins = < ++ MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 ++ >; ++ };*/ + }; + }; + ++&spdif { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spdif_1>; ++ status = "disabled"; ++}; ++ + &sata { + status = "okay"; + }; +@@ -91,9 +387,49 @@ + status = "okay"; + }; + ++&uart4 { /* sam3x port */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart4>; ++ status = "okay"; ++}; ++ + &usdhc3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc3>; + non-removable; ++ keep-power-in-suspend; ++ status = "okay"; ++}; ++ ++&usbotg { ++ status = "disabled"; ++}; ++ ++&usbh1 { ++ vbus-supply = <®_usb_h1_vbus>; ++ clocks = <&clks 201>; ++ clock-names = "phy"; ++ status = "okay"; ++}; ++ ++&hdmi_cec { ++ /*pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_hdmi_cec_1>;*/ ++ status = "disabled"; ++}; ++ ++&mxcfb1 { ++ status = "okay"; ++}; ++ ++&mxcfb2 { ++ status = "okay"; ++}; ++ ++&mxcfb3 { ++ status = "okay"; ++}; ++ ++&mxcfb4 { + status = "okay"; + }; +-- +1.8.1.2 + diff --git a/projects/imx6/patches/linux/linux-999-3.14-vpu352.patch b/projects/imx6/patches/linux/linux-999-3.14-vpu352.patch index 503229d219..dd4fbf995a 100644 --- a/projects/imx6/patches/linux/linux-999-3.14-vpu352.patch +++ b/projects/imx6/patches/linux/linux-999-3.14-vpu352.patch @@ -59,21 +59,19 @@ diff -ruN linux-cuboxi-3.14-dc5edb8-original/arch/arm/mach-imx/clk-imx6q.c linux imx6q_set_lpm(WAIT_CLOCKED); diff -ruN linux-cuboxi-3.14-dc5edb8-original/arch/arm/mach-imx/mach-imx6q.c linux-cuboxi-3.14-dc5edb8/arch/arm/mach-imx/mach-imx6q.c ---- linux-cuboxi-3.14-dc5edb8-original/arch/arm/mach-imx/mach-imx6q.c 2015-02-16 21:54:12.278970657 +0100 -+++ linux-cuboxi-3.14-dc5edb8/arch/arm/mach-imx/mach-imx6q.c 2015-02-16 21:55:13.970971815 +0100 -@@ -364,6 +364,12 @@ +--- linux-cuboxi-3.14-dc5edb8-original/arch/arm/mach-imx/mach-imx6q.c 2015-05-22 19:56:02.761641828 +0200 ++++ linux-cuboxi-3.14-dc5edb8/arch/arm/mach-imx/mach-imx6q.c 2015-05-22 19:57:22.608235000 +0200 +@@ -387,6 +387,10 @@ if (dev_pm_opp_disable(cpu_dev, 852000000)) pr_warn("failed to disable 850 MHz OPP\n"); } + if (IS_ENABLED(CONFIG_MX6_VPU_352M)) { -+ if (dev_pm_opp_disable(cpu_dev, 396000000)) { ++ if (dev_pm_opp_disable(cpu_dev, 396000000)) + pr_warn("failed to disable 396MHz OPP\n"); -+ pr_info("remove 396MHz OPP for VPU running at 352MHz!\n"); -+ } + } + } - put_node: - of_node_put(np); + static void __init imx6q_opp_init(void) diff -ruN linux-cuboxi-3.14-dc5edb8-original/drivers/cpufreq/imx6-cpufreq.c linux-cuboxi-3.14-dc5edb8/drivers/cpufreq/imx6-cpufreq.c --- linux-cuboxi-3.14-dc5edb8-original/drivers/cpufreq/imx6-cpufreq.c 2015-02-16 21:54:09.350970602 +0100 +++ linux-cuboxi-3.14-dc5edb8/drivers/cpufreq/imx6-cpufreq.c 2015-02-16 21:55:49.778972488 +0100 diff --git a/projects/imx6/patches/u-boot/100-udoo_board_support.patch b/projects/imx6/patches/u-boot/100-udoo_board_support.patch new file mode 100755 index 0000000000..dab728f82b --- /dev/null +++ b/projects/imx6/patches/u-boot/100-udoo_board_support.patch @@ -0,0 +1,1956 @@ +From 6b8791fcb10110cec4c5bdf91babffcdcfc1a04f Mon Sep 17 00:00:00 2001 +From: vpeter4 +Date: Sat, 16 May 2015 16:44:39 +0200 +Subject: [PATCH] udoo board support + +diff between + u-boot-2013.10-rc3 + U-Boot_Unico-2013 799fb9b 15.5.2015 + +used macro MACH_TYPE_UDOO in cfb_console.c + for version_string/BOARD_INFO_STRING +L2 cache support is disabled + got error: ** No partition table - mmc 0 ** + +make udoo_quad_config +make udoo_dl_config +--- + arch/arm/cpu/armv7/cpu.c | 14 + + arch/arm/imx-common/Makefile | 2 + + arch/arm/imx-common/cmd_plotmsg.c | 74 + + arch/arm/imx-common/sata.c | 33 + + arch/arm/include/asm/imx-common/sata.h | 17 + + board/boundary/nitrogen6x/nitrogen6x.c | 29 +- + board/udoo/1066mhz_4x256mx16_dl.cfg | 58 + + board/udoo/1066mhz_4x256mx16_q.cfg | 63 + + board/udoo/Makefile | 26 + + board/udoo/clocks.cfg | 31 + + board/udoo/ddr-setup_dl.cfg | 85 ++ + board/udoo/ddr-setup_q.cfg | 87 ++ + board/udoo/udoo.c | 540 ++++++++ + board/udoo/udoo.cfg | 35 + + boards.cfg | 2 + + common/Makefile | 1 + + common/cmd_multiboot.c | 312 +++++ + drivers/video/cfb_console.c | 12 + + include/configs/udoo.h | 268 ++++ + include/micrel.h | 5 + + include/video.h | 2 + + 21 files changed, 5482 insertions(+), 27 deletions(-) + create mode 100644 arch/arm/imx-common/cmd_plotmsg.c + create mode 100644 arch/arm/imx-common/sata.c + create mode 100644 arch/arm/include/asm/imx-common/sata.h + create mode 100644 board/udoo/1066mhz_4x256mx16_dl.cfg + create mode 100644 board/udoo/1066mhz_4x256mx16_q.cfg + create mode 100644 board/udoo/Makefile + create mode 100644 board/udoo/clocks.cfg + create mode 100644 board/udoo/ddr-setup_dl.cfg + create mode 100644 board/udoo/ddr-setup_q.cfg + create mode 100644 board/udoo/udoo.c + create mode 100644 board/udoo/udoo.cfg + create mode 100644 common/cmd_multiboot.c + create mode 100644 include/configs/udoo.h + +diff --git a/arch/arm/cpu/armv7/cpu.c b/arch/arm/cpu/armv7/cpu.c +index 01cdb7e..177e0a2 100644 +--- a/arch/arm/cpu/armv7/cpu.c ++++ b/arch/arm/cpu/armv7/cpu.c +@@ -20,10 +20,20 @@ + #include + #include + #include ++#include + #include + + void __weak cpu_cache_initialization(void){} + ++#if (defined(MACH_TYPE_UDOO) || defined(CONFIG_VIDEO_ENABLED)) ++static void do_disable_lvds() ++{ ++ gpio_direction_output(IMX_GPIO_NR(1, 2), 0); /* LVDS power On */ ++ gpio_direction_output(IMX_GPIO_NR(1, 4), 0); /* LVDS backlight On */ ++ return; ++} ++#endif ++ + int cleanup_before_linux(void) + { + /* +@@ -66,5 +76,9 @@ int cleanup_before_linux(void) + */ + cpu_cache_initialization(); + ++#if (defined(MACH_TYPE_UDOO) || defined(CONFIG_VIDEO_ENABLED)) ++ do_disable_lvds(); ++#endif ++ + return 0; + } +diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile +index 727a052..f619bbc 100644 +--- a/arch/arm/imx-common/Makefile ++++ b/arch/arm/imx-common/Makefile +@@ -17,12 +17,14 @@ endif + ifeq ($(SOC),$(filter $(SOC),mx5 mx6)) + COBJS-y += timer.o cpu.o speed.o + COBJS-$(CONFIG_I2C_MXC) += i2c-mxv7.o ++COBJS-$(CONFIG_CMD_SATA) += sata.o + endif + ifeq ($(SOC),$(filter $(SOC),mx6 mxs)) + COBJS-y += misc.o + endif + COBJS-$(CONFIG_CMD_BMODE) += cmd_bmode.o + COBJS-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o ++COBJS-$(CONFIG_CMD_PLOTMSG) += cmd_plotmsg.o + COBJS := $(sort $(COBJS-y)) + + SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +diff --git a/arch/arm/imx-common/cmd_plotmsg.c b/arch/arm/imx-common/cmd_plotmsg.c +new file mode 100644 +index 0000000..55890d4 +--- /dev/null ++++ b/arch/arm/imx-common/cmd_plotmsg.c +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (C) 2013 Seco USA Inc ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++#include ++#include ++ ++#define MAX_LEN 160 ++#define X_MARGIN 10 ++#define Y_PADDING 20 ++ ++static int do_plotmsg(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) ++{ ++ int i = 1; ++ static int y = 30; ++ int x; ++ char msg[MAX_LEN]; ++ ++ if (argc == 1) ++ return CMD_RET_USAGE; ++ ++ if (y < BMP_LOGO_HEIGHT) ++ x = BMP_LOGO_WIDTH + X_MARGIN; ++ else ++ x = X_MARGIN; ++ ++ msg[0] = 0; ++ ++ if ((strcmp(argv[1], "-r") == 0) && (y > 30)) { ++ int f; ++ i++; ++ y -= Y_PADDING; ++ for (f=0; f < MAX_LEN/10; f++) ++ strcat(msg, " "); ++ udoo_video_drawstring(x, y, msg); ++ strcpy(msg, argv[i]); ++ i++; ++ } ++ ++ if (strcmp(argv[1], "-u") == 0) { ++ i++; ++ x = X_MARGIN; ++ y = ((BMP_LOGO_HEIGHT / Y_PADDING) * Y_PADDING) + Y_PADDING; ++ strcpy(msg, argv[i]); ++ i++; ++ } ++ ++ while(i < argc) { ++ if ((strlen(msg) + strlen(argv[i])) < MAX_LEN) { ++ if (i == 1) { ++ strcpy(msg, argv[i]); ++ } else { ++ strcat(msg, " "); ++ strcat(msg, argv[i]); ++ } ++ } else ++ printf("Warn: Max text length reached (max %d characters permetted).\n", MAX_LEN); ++ i++; ++ } ++ ++ udoo_video_drawstring(x, y, msg); ++ y += Y_PADDING; ++ return 0; ++} ++ ++U_BOOT_CMD(plotmsg, 50, 1, do_plotmsg, ++ "Plot text message on current display (HDMI or LVDS).\n" \ ++ "\t -r Overwrite last message.\n" \ ++ "\t -u Start writing just under Logo.", ++ "[-r|-u] message ..." ++); +diff --git a/arch/arm/imx-common/sata.c b/arch/arm/imx-common/sata.c +new file mode 100644 +index 0000000..00b3d92 +--- /dev/null ++++ b/arch/arm/imx-common/sata.c +@@ -0,0 +1,33 @@ ++/* ++ * Copyright 2011 Freescale Semiconductor, Inc. ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++#include ++#include ++ ++int sata_setup(void) ++{ ++ struct iomuxc_base_regs *const iomuxc_regs ++ = (struct iomuxc_base_regs *) IOMUXC_BASE_ADDR; ++ ++ int ret = enable_sata_clock(); ++ if (ret) ++ return ret; ++ ++ clrsetbits_le32(&iomuxc_regs->gpr[13], ++ IOMUXC_GPR13_SATA_MASK, ++ IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB ++ |IOMUXC_GPR13_SATA_PHY_7_SATA2M ++ |IOMUXC_GPR13_SATA_SPEED_3G ++ |(3< + * +- * SPDX-License-Identifier: GPL-2.0+ ++ * SPDX-License-Identifier: GPL-2.0+ + */ + + #include +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -378,32 +379,6 @@ static void setup_buttons(void) + ARRAY_SIZE(button_pads)); + } + +-#ifdef CONFIG_CMD_SATA +- +-int setup_sata(void) +-{ +- struct iomuxc_base_regs *const iomuxc_regs +- = (struct iomuxc_base_regs *) IOMUXC_BASE_ADDR; +- int ret = enable_sata_clock(); +- if (ret) +- return ret; +- +- clrsetbits_le32(&iomuxc_regs->gpr[13], +- IOMUXC_GPR13_SATA_MASK, +- IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB +- |IOMUXC_GPR13_SATA_PHY_7_SATA2M +- |IOMUXC_GPR13_SATA_SPEED_3G +- |(3< ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ ++ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \ ++ PAD_CTL_SRE_FAST | PAD_CTL_HYS) ++ ++#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ ++ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) ++ ++#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \ ++ PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \ ++ PAD_CTL_SRE_FAST | PAD_CTL_HYS) ++ ++#define WDT_EN IMX_GPIO_NR(5, 4) ++#define WDT_TRG IMX_GPIO_NR(3, 19) ++ ++int dram_init(void) ++{ ++ gd->ram_size = (phys_size_t)CONFIG_DDR_MB * 1024 * 1024; ++ ++ return 0; ++} ++ ++static iomux_v3_cfg_t const uart2_pads[] = { ++ MX6_PAD_EIM_D26__UART2_TXD | MUX_PAD_CTRL(UART_PAD_CTRL), ++ MX6_PAD_EIM_D27__UART2_RXD | MUX_PAD_CTRL(UART_PAD_CTRL), ++}; ++ ++static iomux_v3_cfg_t const usdhc3_pads[] = { ++ MX6_PAD_SD3_CLK__USDHC3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++ MX6_PAD_SD3_CMD__USDHC3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++ MX6_PAD_SD3_DAT0__USDHC3_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++ MX6_PAD_SD3_DAT1__USDHC3_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++ MX6_PAD_SD3_DAT2__USDHC3_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++ MX6_PAD_SD3_DAT3__USDHC3_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), ++}; ++ ++static iomux_v3_cfg_t const wdog_pads[] = { ++ MX6_PAD_EIM_A24__GPIO_5_4 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ MX6_PAD_EIM_D19__GPIO_3_19, ++}; ++ ++static iomux_v3_cfg_t const lvds_pads[] = { ++ MX6_PAD_GPIO_2__GPIO_1_2 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ MX6_PAD_GPIO_4__GPIO_1_4 | MUX_PAD_CTRL(NO_PAD_CTRL), ++}; ++ ++int mx6_rgmii_rework(struct phy_device *phydev) ++{ ++ /* ++ * Bug: Apparently uDoo does not works with Gigabit switches... ++ * Limiting speed to 10/100Mbps, and setting master mode, seems to ++ * be the only way to have a successfull PHY auto negotiation. ++ * How to fix: Understand why Linux kernel do not have this issue. ++ */ ++ phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, 0x1c00); ++ ++ /* control data pad skew - devaddr = 0x02, register = 0x04 */ ++ ksz9031_phy_extended_write(phydev, 0x02, ++ MII_KSZ9031_EXT_RGMII_CTRL_SIG_SKEW, ++ MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); ++ /* rx data pad skew - devaddr = 0x02, register = 0x05 */ ++ ksz9031_phy_extended_write(phydev, 0x02, ++ MII_KSZ9031_EXT_RGMII_RX_DATA_SKEW, ++ MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); ++ /* tx data pad skew - devaddr = 0x02, register = 0x05 */ ++ ksz9031_phy_extended_write(phydev, 0x02, ++ MII_KSZ9031_EXT_RGMII_TX_DATA_SKEW, ++ MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); ++ /* gtx and rx clock pad skew - devaddr = 0x02, register = 0x08 */ ++ ++ ksz9031_phy_extended_write(phydev, 0x02, ++ MII_KSZ9031_EXT_RGMII_CLOCK_SKEW, ++ MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x03FF); ++ return 0; ++} ++ ++static iomux_v3_cfg_t const enet_pads1[] = { ++ MX6_PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TXC__ENET_RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TD0__ENET_RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TD1__ENET_RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TD2__ENET_RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TD3__ENET_RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_RXC__ENET_RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ /* RGMII reset */ ++ MX6_PAD_EIM_D23__GPIO_3_23 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* alimentazione ethernet*/ ++ MX6_PAD_EIM_EB3__GPIO_2_31 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* pin 32 - 1 - (MODE0) all */ ++ MX6_PAD_RGMII_RD0__GPIO_6_25 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* pin 31 - 1 - (MODE1) all */ ++ MX6_PAD_RGMII_RD1__GPIO_6_27 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* pin 28 - 1 - (MODE2) all */ ++ MX6_PAD_RGMII_RD2__GPIO_6_28 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* pin 27 - 1 - (MODE3) all */ ++ MX6_PAD_RGMII_RD3__GPIO_6_29 | MUX_PAD_CTRL(NO_PAD_CTRL), ++ /* pin 33 - 1 - (CLK125_EN) 125Mhz clockout enabled */ ++ MX6_PAD_RGMII_RX_CTL__GPIO_6_24 | MUX_PAD_CTRL(NO_PAD_CTRL), ++}; ++ ++static iomux_v3_cfg_t const enet_pads2[] = { ++ MX6_PAD_RGMII_RD0__ENET_RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_RD1__ENET_RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_RD2__ENET_RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_RD3__ENET_RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), ++ MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), ++}; ++ ++static void setup_iomux_enet(void) ++{ ++ imx_iomux_v3_setup_multiple_pads(enet_pads1, ARRAY_SIZE(enet_pads1)); ++ udelay(20); ++ gpio_direction_output(IMX_GPIO_NR(2, 31), 1); /* Power on enet */ ++ ++ gpio_direction_output(IMX_GPIO_NR(3, 23), 0); /* assert PHY rst */ ++ ++ gpio_direction_output(IMX_GPIO_NR(6, 24), 1); ++ gpio_direction_output(IMX_GPIO_NR(6, 25), 1); ++ gpio_direction_output(IMX_GPIO_NR(6, 27), 1); ++ gpio_direction_output(IMX_GPIO_NR(6, 28), 1); ++ gpio_direction_output(IMX_GPIO_NR(6, 29), 1); ++ udelay(1000); ++ ++ gpio_set_value(IMX_GPIO_NR(3, 23), 1); /* deassert PHY rst */ ++ ++ /* Need delay 100ms to exit from reset. */ ++ udelay(1000 * 100); ++ ++ gpio_free(IMX_GPIO_NR(6, 24)); ++ gpio_free(IMX_GPIO_NR(6, 25)); ++ gpio_free(IMX_GPIO_NR(6, 27)); ++ gpio_free(IMX_GPIO_NR(6, 28)); ++ gpio_free(IMX_GPIO_NR(6, 29)); ++ ++ imx_iomux_v3_setup_multiple_pads(enet_pads2, ARRAY_SIZE(enet_pads2)); ++} ++ ++static void setup_iomux_uart(void) ++{ ++ imx_iomux_v3_setup_multiple_pads(uart2_pads, ARRAY_SIZE(uart2_pads)); ++} ++ ++static void setup_iomux_wdog(void) ++{ ++ imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads)); ++ gpio_direction_output(WDT_TRG, 0); ++ gpio_direction_output(WDT_EN, 1); ++ gpio_direction_input(WDT_TRG); ++} ++ ++static struct fsl_esdhc_cfg usdhc_cfg = { USDHC3_BASE_ADDR }; ++ ++int board_mmc_getcd(struct mmc *mmc) ++{ ++ return 1; /* Always present */ ++} ++ ++int board_eth_init(bd_t *bis) ++{ ++ uint32_t base = IMX_FEC_BASE; ++ struct mii_dev *bus = NULL; ++ struct phy_device *phydev = NULL; ++ int ret; ++ ++ setup_iomux_enet(); ++ ++#ifdef CONFIG_FEC_MXC ++ bus = fec_get_miibus(base, -1); ++ if (!bus) ++ return 0; ++ /* scan phy 4,5,6,7 */ ++ phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII); ++ ++ if (!phydev) { ++ free(bus); ++ return 0; ++ } ++ printf("using phy at %d\n", phydev->addr); ++ ret = fec_probe(bis, -1, base, bus, phydev); ++ if (ret) { ++ printf("FEC MXC: %s:failed\n", __func__); ++ free(phydev); ++ free(bus); ++ } ++#endif ++ return 0; ++} ++ ++int board_mmc_init(bd_t *bis) ++{ ++ imx_iomux_v3_setup_multiple_pads(usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); ++ usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); ++ usdhc_cfg.max_bus_width = 4; ++ ++ return fsl_esdhc_initialize(bis, &usdhc_cfg); ++} ++ ++#if defined(CONFIG_VIDEO_IPUV3) ++ ++struct display_info_t { ++ int bus; ++ int addr; ++ int pixfmt; ++ int (*detect)(struct display_info_t const *dev); ++ void (*enable)(struct display_info_t const *dev); ++ struct fb_videomode mode; ++}; ++ ++static int detect_hdmi(struct display_info_t const *dev) ++{ ++ struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR; ++ return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT; ++} ++ ++static void do_enable_hdmi(struct display_info_t const *dev) ++{ ++ imx_enable_hdmi_phy(); ++} ++ ++static int detect_lvds(struct display_info_t const *dev) ++{ ++ return 0; ++} ++ ++static void do_enable_lvds(struct display_info_t const *dev) ++{ ++ imx_iomux_v3_setup_multiple_pads(lvds_pads, ARRAY_SIZE(lvds_pads)); ++ gpio_direction_output(IMX_GPIO_NR(1, 2), 1); /* LVDS power On */ ++ gpio_direction_output(IMX_GPIO_NR(1, 4), 1); /* LVDS backlight On */ ++ return; ++} ++ ++static struct display_info_t const displays[] = {{ ++ .bus = -1, ++ .addr = -1, ++ .pixfmt = IPU_PIX_FMT_RGB666, ++ .detect = detect_lvds, ++ .enable = do_enable_lvds, ++ .mode = { ++ // Rif. 800x480 Panel UMSH-8596MD-20T ++ // To activate write "setenv panel LDB-WVGA" or leave empty. ++ .name = "LDB-WVGA", ++ .refresh = 60, ++ .xres = 800, ++ .yres = 480, ++ .pixclock = 15385, ++ .left_margin = 220, ++ .right_margin = 40, ++ .upper_margin = 21, ++ .lower_margin = 7, ++ .hsync_len = 60, ++ .vsync_len = 10, ++ .sync = 0, ++ .vmode = FB_VMODE_NONINTERLACED ++} }, { ++ .bus = -1, ++ .addr = 0, ++ .pixfmt = IPU_PIX_FMT_RGB24, ++ .detect = detect_hdmi, ++ .enable = do_enable_hdmi, ++ .mode = { ++ .name = "HDMI", ++ .refresh = 60, ++ .xres = 1024, ++ .yres = 768, ++ .pixclock = 15385, ++ .left_margin = 220, ++ .right_margin = 40, ++ .upper_margin = 21, ++ .lower_margin = 7, ++ .hsync_len = 60, ++ .vsync_len = 10, ++ .sync = FB_SYNC_EXT, ++ .vmode = FB_VMODE_NONINTERLACED ++} }, { ++ .bus = -1, ++ .addr = -1, ++ .pixfmt = IPU_PIX_FMT_RGB666, ++ .detect = detect_lvds, ++ .enable = do_enable_lvds, ++ .mode = { ++ // Rif. Panel 1024x768 - UMSH-8596MD-15T - G156XW01V0 ++ // To activate write "setenv panel LDB-XGA". ++ .name = "LDB-XGA", ++ .refresh = 60, ++ .xres = 1024, ++ .yres = 768, ++ .pixclock = 15385, ++ .left_margin = 220, ++ .right_margin = 40, ++ .upper_margin = 21, ++ .lower_margin = 7, ++ .hsync_len = 60, ++ .vsync_len = 10, ++ .sync = 0, ++ .vmode = FB_VMODE_NONINTERLACED ++} }, { ++ .bus = -1, ++ .addr = -1, ++ .pixfmt = IPU_PIX_FMT_RGB666, ++ .detect = detect_lvds, ++ .enable = do_enable_lvds, ++ .mode = { ++ // Rif. 1366x768 Panel CHIMEI M156B3-LA1 ++ // To activate write "setenv panel LDB-WXGA". ++ .name = "LDB-WXGA", ++ .refresh = 59, ++ .xres = 1368, ++ .yres = 768, ++ .pixclock = 13890, ++ .left_margin = 93, ++ .right_margin = 33, ++ .upper_margin = 22, ++ .lower_margin = 7, ++ .hsync_len = 40, ++ .vsync_len = 4, ++ .sync = 0, ++ .vmode = FB_VMODE_NONINTERLACED ++} }, ++}; ++ ++int board_video_skip(void) ++{ ++ int i; ++ int ret; ++ char const *panel = getenv("panel"); ++ ++ if (!panel) { ++ for (i = 0; i < ARRAY_SIZE(displays); i++) { ++ struct display_info_t const *dev = displays+i; ++ if (dev->detect(dev)) { ++ panel = dev->mode.name; ++ printf("auto-detected panel %s\n", panel); ++ break; ++ } ++ } ++ if (!panel) { ++ panel = displays[0].mode.name; ++ printf("No panel detected: default to %s\n", panel); ++ i = 0; ++ } ++ } else { ++ for (i = 0; i < ARRAY_SIZE(displays); i++) { ++ if (!strcmp(panel, displays[i].mode.name)) ++ break; ++ } ++ } ++ if (i < ARRAY_SIZE(displays)) { ++ ret = ipuv3_fb_init(&displays[i].mode, 0, ++ displays[i].pixfmt); ++ if (!ret) { ++ displays[i].enable(displays+i); ++ printf("Display: %s (%ux%u)\n", ++ displays[i].mode.name, ++ displays[i].mode.xres, ++ displays[i].mode.yres); ++ } else { ++ printf("LCD %s cannot be configured: %d\n", ++ displays[i].mode.name, ret); ++ } ++ } else { ++ printf("unsupported panel %s\n", panel); ++ ret = -EINVAL; ++ } ++ return (0 != ret); ++} ++ ++static void setup_display(void) ++{ ++ struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; ++ struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR; ++ int reg; ++ ++ enable_ipu_clock(); ++ imx_setup_hdmi(); ++ ++ /* Turn on LDB0,IPU DI0 clocks */ ++ reg = __raw_readl(&mxc_ccm->CCGR3); ++ reg |= MXC_CCM_CCGR3_LDB_DI0_MASK; ++ writel(reg, &mxc_ccm->CCGR3); ++ ++ /* set LDB0, LDB1 clk select to 011/011 */ ++ reg = readl(&mxc_ccm->cs2cdr); ++ reg &= ~(MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_MASK ++ |MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_MASK); ++ reg |= (3<cs2cdr); ++ ++ reg = readl(&mxc_ccm->cscmr2); ++ reg |= MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV; ++ writel(reg, &mxc_ccm->cscmr2); ++ ++ reg = readl(&mxc_ccm->chsccdr); ++ reg |= (CHSCCDR_CLK_SEL_LDB_DI0 ++ << MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET); ++ writel(reg, &mxc_ccm->chsccdr); ++ ++ reg = IOMUXC_GPR2_BGREF_RRMODE_EXTERNAL_RES ++ |IOMUXC_GPR2_DI1_VS_POLARITY_ACTIVE_HIGH ++ |IOMUXC_GPR2_DI0_VS_POLARITY_ACTIVE_LOW ++ |IOMUXC_GPR2_BIT_MAPPING_CH1_SPWG ++ |IOMUXC_GPR2_DATA_WIDTH_CH1_18BIT ++ |IOMUXC_GPR2_BIT_MAPPING_CH0_SPWG ++ |IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT ++ |IOMUXC_GPR2_LVDS_CH1_MODE_DISABLED ++ |IOMUXC_GPR2_LVDS_CH0_MODE_ENABLED_DI0; ++ writel(reg, &iomux->gpr[2]); ++ ++ reg = readl(&iomux->gpr[3]); ++ reg = (reg & ~(IOMUXC_GPR3_LVDS0_MUX_CTL_MASK ++ |IOMUXC_GPR3_HDMI_MUX_CTL_MASK)) ++ | (IOMUXC_GPR3_MUX_SRC_IPU1_DI0 ++ <gpr[3]); ++} ++ ++/* ++ * Show device feature strings on current display ++ * around uDOO Logo. ++ */ ++void show_boot_messages(void) ++{ ++ int i; ++ ulong cycles = 0; ++ int repeatable; ++ char *plotmsg_cmd[2]; ++#if defined(CONFIG_MX6DL) ++ char *boot_messages[7] = { ++"UDOO Board 2013", ++"CPU Freescale i.MX6 DualLite 1GHz", ++"dual ARMv7 Cortex-A9 core", ++"1GB RAM DDR3", ++"Vivante GC880 GPU", ++"Atmel SAM3X8E ARM Cortex-M3 CPU", ++"Arduino-compatible R3 1.0 pinout", ++}; ++#else ++ char *boot_messages[7] = { ++"UDOO Board 2013", ++"CPU Freescale i.MX6 Quad/Dual 1GHz", ++"quad/dual ARMv7 Cortex-A9 core", ++"1GB RAM DDR3", ++"Vivante GC2000 / GC880", ++"Atmel SAM3X8E ARM Cortex-M3 CPU", ++"Arduino-compatible R3 1.0 pinout", ++}; ++#endif ++ ++ for (i=0; i<7; i++) { ++ plotmsg_cmd[0] = "plotmsg"; ++ plotmsg_cmd[1] = boot_messages[i]; ++ cmd_process(0, 2, plotmsg_cmd, &repeatable, &cycles); ++ } ++} ++#endif /* CONFIG_VIDEO_IPUV3 */ ++ ++int board_early_init_f(void) ++{ ++#if defined(CONFIG_VIDEO_IPUV3) ++ setup_display(); ++#endif ++ setup_iomux_wdog(); ++ setup_iomux_uart(); ++ ++ return 0; ++} ++ ++int board_phy_config(struct phy_device *phydev) ++{ ++ mx6_rgmii_rework(phydev); ++ if (phydev->drv->config) ++ phydev->drv->config(phydev); ++ ++ return 0; ++} ++ ++/* ++ * Do not overwrite the console ++ * Use always serial for U-Boot console ++ */ ++int overwrite_console(void) ++{ ++#if defined(CONFIG_VIDEO_IPUV3) ++ show_boot_messages(); ++#endif ++ return 1; ++} ++ ++int board_init(void) ++{ ++ /* address of boot parameters */ ++ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; ++ ++#ifdef CONFIG_CMD_SATA ++ sata_setup(); ++#endif ++ return 0; ++} ++ ++int checkboard(void) ++{ ++ puts("Board: UDOO\n"); ++ ++ return 0; ++} +diff --git a/board/udoo/udoo.cfg b/board/udoo/udoo.cfg +new file mode 100644 +index 0000000..eb1102b +--- /dev/null ++++ b/board/udoo/udoo.cfg +@@ -0,0 +1,35 @@ ++/* ++ * Copyright (C) 2013 Seco USA Inc ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ * ++ * Refer doc/README.imximage for more details about how-to configure ++ * and create imximage boot image ++ * ++ * The syntax is taken as close as possible with the kwbimage ++ */ ++ ++/* image version */ ++IMAGE_VERSION 2 ++ ++/* ++ * Boot Device : one of ++ * spi, sd (the board has no nand neither onenand) ++ */ ++BOOT_FROM sd ++ ++#define __ASSEMBLY__ ++#include ++#include "asm/arch/mx6-ddr.h" ++#include "asm/arch/iomux.h" ++#include "asm/arch/crm_regs.h" ++ ++#if defined(CONFIG_MX6Q) ++#include "ddr-setup_q.cfg" ++#include "1066mhz_4x256mx16_q.cfg" ++#else ++#include "ddr-setup_dl.cfg" ++#include "1066mhz_4x256mx16_dl.cfg" ++#endif ++ ++#include "clocks.cfg" +diff --git a/boards.cfg b/boards.cfg +index 9480005..d20aebe 100644 +--- a/boards.cfg ++++ b/boards.cfg +@@ -286,6 +286,8 @@ Active arm armv7 mx5 freescale mx53smd + Active arm armv7 mx5 genesi mx51_efikamx mx51_efikamx mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg - + Active arm armv7 mx5 genesi mx51_efikamx mx51_efikasb mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_sb.cfg - + Active arm armv7 mx5 ttcontrol vision2 vision2 vision2:IMX_CONFIG=board/ttcontrol/vision2/imximage_hynix.cfg Stefano Babic ++Active arm armv7 mx6 - udoo udoo_dl udoo:IMX_CONFIG=board/udoo/udoo.cfg,MX6DL,DDR_MB=1024 Fabio Estevam ++Active arm armv7 mx6 - udoo udoo_quad udoo:IMX_CONFIG=board/udoo/udoo.cfg,MX6Q,DDR_MB=1024 Fabio Estevam + Active arm armv7 mx6 - wandboard wandboard_dl wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL,DDR_MB=1024 Fabio Estevam + Active arm armv7 mx6 - wandboard wandboard_quad wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q2g.cfg,MX6Q,DDR_MB=2048 Fabio Estevam + Active arm armv7 mx6 - wandboard wandboard_solo wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s.cfg,MX6S,DDR_MB=512 Fabio Estevam +diff --git a/common/Makefile b/common/Makefile +index 97dd76e..27a1b36 100644 +--- a/common/Makefile ++++ b/common/Makefile +@@ -54,6 +54,7 @@ COBJS-$(CONFIG_ENV_IS_IN_UBI) += env_ubi.o + COBJS-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o + + # command ++COBJS-$(CONFIG_CMD_MULTIBOOT) += cmd_multiboot.o + COBJS-$(CONFIG_CMD_AMBAPP) += cmd_ambapp.o + COBJS-$(CONFIG_SOURCE) += cmd_source.o + COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o +diff --git a/common/cmd_multiboot.c b/common/cmd_multiboot.c +new file mode 100644 +index 0000000..79df3d8 +--- /dev/null ++++ b/common/cmd_multiboot.c +@@ -0,0 +1,312 @@ ++/* ++ * Copyright 2000-2013 ++ * Giuseppe Pagano, Seco s.r.l., giuseppe.pagano@seco.com. ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++#include ++ ++#define DEF_bootargs_defaults "console=ttymxc1,115200 root=/dev/mmcblk0p${sd_part} rootwait rw fixrtc rootflags=barrier=1 fbmem=24M video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24" ++#define DEF_bootcmd_defaults "plotmsg -u Booting from mmcblk0p${sd_part}. Please wait...; mmc dev 0; ext2load mmc 0:${sd_part} 0x10800000 /boot/uImage; bootm 0x10800000" ++ ++#define msleep(a) udelay(a * 1000) ++int default_boot = 1; ++ ++void do_show_environment(int ch, char *bootvars) { ++ char tempstr[500]; ++ char settempstr[500]; ++ char env_var_name[300]; ++ ++ sprintf(env_var_name, "%s_run_%d", bootvars, ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy (tempstr, getenv(env_var_name)); ++ printf(" %s\n", tempstr); ++ } else { ++ sprintf(env_var_name, "%s_%d", bootvars, ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy (tempstr, getenv(env_var_name)); ++ printf(" setenv %s '%s'\n", bootvars, tempstr); ++ } else { ++ sprintf(env_var_name, "sd_part_%d", ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy(tempstr, getenv(env_var_name)); ++ printf(" setenv sd_part '%s'\n", tempstr); ++ } else { ++ printf(" setenv sd_part '%d'\n", ch); ++ } ++ if (strcmp(bootvars, "bootargs") == 0) { ++ if (getenv("bootargs_defaults") != NULL) { ++ strcpy(tempstr, strdup(getenv("bootargs_defaults"))); ++ printf(" bootargs_defaults='%s'\n", tempstr); ++ } else { ++ strcpy(tempstr, DEF_bootargs_defaults); ++ } ++ sprintf(settempstr, " setenv bootargs '%s'\n", tempstr); ++ printf(settempstr); ++ } else { ++ if (getenv("bootcmd_defaults") != NULL) { ++ strcpy(tempstr, strdup(getenv("bootcmd_defaults"))); ++ printf(" bootcmd_defaults='%s'\n", tempstr); ++ } else { ++ strcpy(tempstr, DEF_bootcmd_defaults); ++ } ++ sprintf(settempstr, " setenv bootcmd '%s'\n", tempstr); ++ printf(settempstr); ++ } ++ } ++ } ++} ++ ++void do_detailed_environment(void) { ++ int counter = 1; ++ char *boot_descr; ++ char boot_descr_opt[300]; ++ ++ sprintf(boot_descr_opt, "boot_descr_1"); ++ printf ("\nShowing multiboot possible action.\n"); ++ ++ while (getenv(boot_descr_opt) != NULL) { ++ sprintf(boot_descr_opt, "boot_descr_%d", counter); ++ boot_descr = strdup(getenv(boot_descr_opt)); ++ if (getenv(boot_descr_opt) == NULL) { ++ break; ++ } ++ printf("%d) %s.\n", counter, boot_descr); ++ do_show_environment(counter, "bootargs"); ++ do_show_environment(counter, "bootcmd"); ++ printf(" boot\n"); ++ counter++; ++ } ++ return; ++} ++ ++int show_multioption(void) { ++ int counter = 1; ++ char *boot_descr; ++ char boot_descr_opt[300]; ++ char *default_boot_str; ++ ++ sprintf(boot_descr_opt, "boot_descr_1"); ++ printf ("Chose system you want to boot.\n"); ++ ++ if (getenv("default_boot") != NULL) { ++ default_boot_str = strdup(getenv("default_boot")); ++ default_boot = default_boot_str[0] - '0'; ++ } ++ ++ while (getenv(boot_descr_opt) != NULL) { ++ sprintf(boot_descr_opt, "boot_descr_%d", counter); ++ boot_descr = strdup(getenv(boot_descr_opt)); ++ if (getenv(boot_descr_opt) == NULL) { ++ printf(" p) Show what would be done.\n"); ++ printf(" q) Quit.\n"); ++ break; ++ } ++ if (counter == default_boot) ++ printf("> %d) %s.\n", counter, boot_descr); ++ else ++ printf(" %d) %s.\n", counter, boot_descr); ++ counter++; ++ } ++ if ((counter > 1) && (default_boot >= counter)) { ++ printf("Warn ! Invalid default_boot value: ->%c<- (non numeric or not existing entry).\n", default_boot_str[0]); ++ default_boot = 1; ++ } ++ printf (" > "); ++ return --counter; ++} ++ ++int do_detailed_help(void) { ++ ++ printf("\n\tHow to setup u-boot environment for multiboot utility.\n"); ++ ++ printf("\nStep 1) Define as much \"boot_descr_X\" variable as you need assigning to it\n"); ++ printf("\ta title rapresenting bootable system number X. \n"); ++ printf("\t(Eg. \"setenv boot_descr_1 Linux\").\n"); ++ ++ printf("\nStep 2) Define default booting entry via \"default_boot\" variable.\n"); ++ printf("\t(Eg. \"setenv default_boot 2\").\n"); ++ ++ printf("\nStep 3) For each configured bootable system there are 3 levels of variable\n"); ++ printf("\tdefinitions which override each other in the following order:\n"); ++ printf("\t \"bootargs_run_X\" OVERRIDES \"bootargs_X\" OVERRIDES \"sd_part_X\"\n"); ++ printf("\t \"bootcmd_run_X\" OVERRIDES \"bootcmd_X\" OVERRIDES \"sd_part_X\"\n"); ++ printf("\tIf one of the described variable is missing the next one will be used.\n"); ++ ++ printf("\nHere the meaning of multiboot configuration variable:\n"); ++ ++ printf(" - bootargs_run_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" String contained in \"bootargs_run_X\" will be executed inside multiboot\n"); ++ printf(" environment with the following command: \"run bootargs_run_X\".\n"); ++ ++ printf(" - bootargs_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" String contained in \"bootargs_X\" will be adopted as bootargs environment.\n"); ++ ++ printf(" - sd_part_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" uSD partition number \"sd_part_X\" to be used as root device filesystem.\n"); ++ ++ printf(" - bootargs_defaults\n"); ++ printf(" Current value for bootargs_defaults is:\n"); ++ if (getenv("bootargs_defaults") != NULL) ++ printf(" bootargs_defaults='%s'\n", getenv("bootargs_defaults")); ++ else ++ printf(" bootargs_defaults='%s'\n", DEF_bootargs_defaults); ++ printf("\n"); ++ ++ printf(" - bootcmd_run_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" String contained in \"bootcmd_run_X\" will be executed inside multiboot\n"); ++ printf(" environment with the following command: \"run bootcmd_run_X\".\n"); ++ ++ printf(" - bootcmd_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" String contained in \"bootcmd_X\" will be used as bootcmd environment.\n"); ++ ++ printf(" - sd_part_X (where X can be 1, 2, 3, ...)\n"); ++ printf(" uSD partition number \"sd_part_X\" will be used to load uImage from.\n"); ++ ++ printf(" - bootcmd_default\n"); ++ printf(" Current value for bootcmd_default is:\n"); ++ if (getenv("bootcmd_defaults") != NULL) ++ printf(" bootcmd_defaults='%s'\n", getenv("bootcmd_defaults")); ++ else ++ printf(" bootcmd_defaults='%s'\n", DEF_bootcmd_defaults); ++ printf("\n"); ++ ++ ++ printf("If your system need multiboot customized environment it will be necessary to\n"); ++ printf("define some boot*_X variable or change \"bootargs_defaults\" and \"bootcmd_default\".\n"); ++ printf("When no variable is defined, multiboot will use /dev/sda1 for system 1,\n"); ++ printf("use /dev/sda2 for system 2, /dev/sda3 for system 3, and so on.\n"); ++ ++ return 0; ++} ++ ++void do_set_environment(char ch, char *bootvars) { ++ char tempstr[500]; ++ char settempstr[500]; ++ char env_var_name[300]; ++ ++ sprintf(env_var_name, "%s_run_%c", bootvars, ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy (tempstr, getenv(env_var_name)); ++ run_command(tempstr, 0); ++ } else { ++ sprintf(env_var_name, "%s_%c", bootvars, ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy (tempstr, getenv(env_var_name)); ++ setenv(bootvars, tempstr); ++ } else { ++ sprintf(env_var_name, "sd_part_%c", ch); ++ if (getenv(env_var_name) != NULL) { ++ strcpy(tempstr, getenv(env_var_name)); ++ setenv("sd_part", tempstr); ++ } else { ++ setenv("sd_part", ch); ++ } ++ if (strcmp(bootvars, "bootargs") == 0) { ++ if (getenv("bootargs_defaults") != NULL) { ++ strcpy(tempstr, strdup(getenv("bootargs_defaults"))); ++ } else { ++ strcpy(tempstr, DEF_bootargs_defaults); ++ } ++ sprintf(settempstr, "setenv bootargs %s", tempstr); ++ run_command(settempstr, 0); ++ } else { ++ if (getenv("bootcmd_defaults") != NULL) { ++ strcpy(tempstr, strdup(getenv("bootcmd_defaults"))); ++ } else { ++ strcpy(tempstr, DEF_bootcmd_defaults); ++ } ++ sprintf(settempstr, "setenv bootcmd %s", tempstr); ++ run_command(settempstr, 0); ++ } ++ } ++ } ++ return; ++} ++ ++void do_chooseboot(int sec) { ++ int timeout; ++ int first_round = 0; ++ int num_of_possibility; ++ char n[1]; ++ char ch; ++ ++ do { ++ if (first_round > 0) ++ printf ("\nInvalid option. Valid choice are from 1 to %d.\n", num_of_possibility); ++ num_of_possibility = show_multioption(); ++ sprintf(n, "%d", num_of_possibility); ++ ch = (char)(((int)'0') + default_boot); ++ ++ if (num_of_possibility == 0) { ++ printf("No bootable system defined: \"boot_descr_1\" is empty! \n Giving up.\n"); ++ return; ++ } ++ ++ if ( sec == 99 ) { ++ ch = getc(); ++ printf("%c\n", ch); ++ } else { ++ timeout = sec * 10; ++ while (timeout > 0) { ++ if (tstc()) { ++ ch = getc(); ++ printf("%c\n", ch); ++ break; ++ } ++ msleep(100); ++ timeout--; ++ } ++ } ++ ++ if (ch == 'q') ++ return; ++ ++ if (ch == 'p') { ++ sec = 99; ++ do_detailed_environment(); ++ } ++ first_round = 1; ++ } while ((ch < '1') || (ch > n[0])); ++ ++ do_set_environment(ch, "bootargs"); ++ do_set_environment(ch, "bootcmd"); ++ ++ run_command("boot", 0); ++} ++ ++static int do_multiboot(cmd_tbl_t *cmd, int flag, int argc, char * const argv[]) ++{ ++ int sec = 5; ++ ++ if (argc > 2) ++ return cmd_usage(cmd); ++ ++ if (argc == 2 && ((strcmp(argv[1], "help") == 0) || strcmp(argv[1], "h") == 0)) { ++ return cmd_usage(cmd); ++ } ++ ++ if (argc == 2 && (strcmp(argv[1], "d") == 0)) { ++ return do_detailed_help(); ++ } ++ ++ if (argc == 2 && ((argv[1] >= '0') || (argv[1] <= '9'))) ++ sec = argv[1][0] - '0'; ++ ++ if (argc == 2 && (strcmp(argv[1], "W") == 0)) ++ sec = 99; ++ ++ printf ("\nUDOO interactive multiboot utility.\n"); ++ ++ do_chooseboot(sec); ++ return 0; ++} ++ ++U_BOOT_CMD( ++ multiboot, CONFIG_SYS_MAXARGS, 1, do_multiboot, ++ "manage a multiboot startup", ++ "[args..]\n" ++ " - d Print detailed help.\n - [0-9, W] Seconds before default entry (if empty 5 sec). W = Wait forever" ++); +diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c +index c6f58c2..9293e8d 100644 +--- a/drivers/video/cfb_console.c ++++ b/drivers/video/cfb_console.c +@@ -2036,7 +2036,11 @@ static void *video_logo(void) + if (board_cfb_skip()) + return 0; + ++#ifndef MACH_TYPE_UDOO + sprintf(info, " %s", version_string); ++#else ++ sprintf(info, " %s", BOARD_INFO_STRING); ++#endif + + space = (VIDEO_LINE_LEN / 2 - VIDEO_INFO_X) / VIDEO_FONT_WIDTH; + len = strlen(info); +@@ -2219,6 +2223,14 @@ static int video_init(void) + return 0; + } + ++void udoo_video_drawstring(int xx, int yy, unsigned char *s) ++{ ++ video_drawstring(xx, yy, s); ++ if (cfb_do_flush_cache) ++ flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE); ++ return; ++} ++ + /* + * Implement a weak default function for boards that optionally + * need to skip the video initialization. +diff --git a/include/configs/udoo.h b/include/configs/udoo.h +new file mode 100644 +index 0000000..e4077d4 +--- /dev/null ++++ b/include/configs/udoo.h +@@ -0,0 +1,268 @@ ++/* ++ * Copyright (C) 2013 Freescale Semiconductor, Inc. ++ * ++ * Configuration settings for UDOO board. ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#ifndef __CONFIG_H ++#define __CONFIG_H ++ ++#include ++#include ++#include ++ ++#define CONFIG_MX6 ++#define CONFIG_DISPLAY_CPUINFO ++#define CONFIG_DISPLAY_BOARDINFO ++ ++#define MACH_TYPE_UDOO 4800 ++#define CONFIG_MACH_TYPE MACH_TYPE_UDOO ++ ++#define CONFIG_CMDLINE_TAG ++#define CONFIG_SETUP_MEMORY_TAGS ++#define CONFIG_INITRD_TAG ++#define CONFIG_REVISION_TAG ++ ++/* disable L2 cache support */ ++#define CONFIG_SYS_L2CACHE_OFF ++ ++/* Size of malloc() pool */ ++#define CONFIG_SYS_MALLOC_LEN (10 * SZ_1M) ++ ++#define CONFIG_BOARD_EARLY_INIT_F ++#define CONFIG_MXC_GPIO ++ ++#define CONFIG_MXC_UART ++#define CONFIG_MXC_UART_BASE UART2_BASE ++ ++/* SATA Configs */ ++ ++#if defined(CONFIG_MX6Q) ++#define CONFIG_CMD_SATA ++#endif ++#ifdef CONFIG_CMD_SATA ++#define CONFIG_DWC_AHSATA ++#define CONFIG_SYS_SATA_MAX_DEVICE 1 ++#define CONFIG_DWC_AHSATA_PORT_ID 0 ++#define CONFIG_DWC_AHSATA_BASE_ADDR SATA_ARB_BASE_ADDR ++#define CONFIG_LBA48 ++#define CONFIG_LIBATA ++#endif ++ ++/* Network support */ ++ ++#define CONFIG_CMD_PING ++#define CONFIG_CMD_DHCP ++#define CONFIG_CMD_MII ++#define CONFIG_CMD_NET ++#define CONFIG_FEC_MXC ++#define CONFIG_MII ++#define IMX_FEC_BASE ENET_BASE_ADDR ++#define CONFIG_FEC_XCV_TYPE RGMII ++#define CONFIG_ETHPRIME "FEC" ++#define CONFIG_FEC_MXC_PHYADDR 6 ++#define CONFIG_PHYLIB ++#define CONFIG_PHY_MICREL ++#define CONFIG_PHY_MICREL_KSZ9031 ++ ++/* allow to overwrite serial and ethaddr */ ++#define CONFIG_ENV_OVERWRITE ++#define CONFIG_CONS_INDEX 1 ++#define CONFIG_BAUDRATE 115200 ++ ++/* HDMI or LVDS Display Configuration */ ++#define CONFIG_VIDEO_ENABLED ++#ifdef CONFIG_VIDEO_ENABLED ++#define CONFIG_VIDEO ++#define CONFIG_VIDEO_IPUV3 ++#define CONFIG_CFB_CONSOLE ++#define CONFIG_VGA_AS_SINGLE_DEVICE ++#define CONFIG_SYS_CONSOLE_IS_IN_ENV ++#define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE ++#define CONFIG_VIDEO_BMP_RLE8 ++#define CONFIG_SPLASH_SCREEN ++#define CONFIG_SPLASH_SCREEN_ALIGN ++#define CONFIG_BMP_16BPP ++#define CONFIG_VIDEO_LOGO ++#define CONFIG_VIDEO_BMP_LOGO ++#define CONFIG_IPUV3_CLK 260000000 ++#define CONFIG_CONSOLE_MUX ++#define CONFIG_CMD_HDMIDETECT ++#define CONFIG_CMD_PLOTMSG ++#define CONFIG_IMX_HDMI ++#define BOARD_INFO_STRING "u-boot-imx-2013-10 on:" ++#endif ++ ++/* Command definition */ ++#include ++ ++#undef CONFIG_CMD_IMLS ++ ++#define CONFIG_CMD_MULTIBOOT ++#define CONFIG_CMD_BMODE ++#define CONFIG_CMD_SETEXPR ++ ++#define CONFIG_BOOTDELAY 5 ++ ++#define CONFIG_SYS_MEMTEST_START 0x10000000 ++#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) ++#define CONFIG_LOADADDR 0x12000000 ++#define CONFIG_SYS_TEXT_BASE 0x17800000 ++ ++/* MMC Configuration */ ++#define CONFIG_FSL_ESDHC ++#define CONFIG_FSL_USDHC ++#define CONFIG_SYS_FSL_ESDHC_ADDR 0 ++ ++#define CONFIG_MMC ++#define CONFIG_CMD_MMC ++#define CONFIG_GENERIC_MMC ++#define CONFIG_BOUNCE_BUFFER ++#define CONFIG_CMD_EXT2 ++#define CONFIG_CMD_FAT ++#define CONFIG_DOS_PARTITION ++ ++#define CONFIG_DEFAULT_FDT_FILE "imx6q-udoo.dtb" ++ ++#define CONFIG_EXTRA_ENV_SETTINGS \ ++ "script=boot.scr\0" \ ++ "uimage=/boot/uImage\0" \ ++ "console=ttymxc1\0" \ ++ "splashpos=m,m\0" \ ++ "fdt_high=0xffffffff\0" \ ++ "initrd_high=0xffffffff\0" \ ++ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ ++ "fdt_addr=0x11000000\0" \ ++ "boot_fdt=try\0" \ ++ "ip_dyn=yes\0" \ ++ "hdmi_patch=\0" \ ++ "mmcdev=0\0" \ ++ "mmcpart=1\0" \ ++ "mmcroot=/dev/mmcblk0p1 rootwait rw\0" \ ++ "update_sd_firmware_filename=u-boot.imx\0" \ ++ "update_sd_firmware=" \ ++ "if test ${ip_dyn} = yes; then " \ ++ "setenv get_cmd dhcp; " \ ++ "else " \ ++ "setenv get_cmd tftp; " \ ++ "fi; " \ ++ "if mmc dev ${mmcdev}; then " \ ++ "if ${get_cmd} ${update_sd_firmware_filename}; then " \ ++ "setexpr fw_sz ${filesize} / 0x200; " \ ++ "setexpr fw_sz ${fw_sz} + 1; " \ ++ "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ ++ "fi; " \ ++ "fi\0" \ ++ "mmcargs=setenv bootargs console=${console},${baudrate} " \ ++ "root=${mmcroot} " \ ++ "${hdmi_patch} " \ ++ "fbmem=24M video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32\0" \ ++ "loadbootscript=" \ ++ "ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ ++ "bootscript=echo Running bootscript from mmc ...; " \ ++ "source\0" \ ++ "loaduimage=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ ++ "loadfdt=ext2load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ ++ "mmcboot=echo Booting from mmc ...; " \ ++ "run mmcargs; " \ ++ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ ++ "if run loadfdt; then " \ ++ "bootm ${loadaddr} - ${fdt_addr}; " \ ++ "else " \ ++ "if test ${boot_fdt} = try; then " \ ++ "bootm; " \ ++ "else " \ ++ "echo WARN: Cannot load the DT; " \ ++ "fi; " \ ++ "fi; " \ ++ "else " \ ++ "bootm; " \ ++ "fi;\0" \ ++ "netargs=setenv bootargs console=${console},${baudrate} " \ ++ "root=/dev/nfs " \ ++ "${hdmi_patch} " \ ++ "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ ++ "netboot=echo Booting from net ...; " \ ++ "run netargs; " \ ++ "if test ${ip_dyn} = yes; then " \ ++ "setenv get_cmd dhcp; " \ ++ "else " \ ++ "setenv get_cmd tftp; " \ ++ "fi; " \ ++ "${get_cmd} ${uimage}; " \ ++ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ ++ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ ++ "bootm ${loadaddr} - ${fdt_addr}; " \ ++ "else " \ ++ "if test ${boot_fdt} = try; then " \ ++ "bootm; " \ ++ "else " \ ++ "echo WARN: Cannot load the DT; " \ ++ "fi; " \ ++ "fi; " \ ++ "else " \ ++ "bootm; " \ ++ "fi;\0" ++ ++#define CONFIG_BOOTCOMMAND \ ++ "mmc dev ${mmcdev}; if mmc rescan; then " \ ++ "if run loadbootscript; then " \ ++ "run bootscript; " \ ++ "else " \ ++ "if run loaduimage; then " \ ++ "run mmcboot; " \ ++ "else run netboot; " \ ++ "fi; " \ ++ "fi; " \ ++ "else run netboot; fi" ++ ++/* Miscellaneous configurable options */ ++#define CONFIG_SYS_LONGHELP ++#define CONFIG_SYS_HUSH_PARSER ++#define CONFIG_SYS_PROMPT "UDOO board => " ++#define CONFIG_AUTO_COMPLETE ++#define CONFIG_SYS_CBSIZE 256 ++ ++/* Print Buffer Size */ ++#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) ++#define CONFIG_SYS_MAXARGS 16 ++#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE ++ ++#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR ++#define CONFIG_SYS_HZ 1000 ++ ++#define CONFIG_CMDLINE_EDITING ++ ++/* Physical Memory Map */ ++#define ONEGIGA 1 ++#define CONFIG_NR_DRAM_BANKS 1 ++#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR ++ ++#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM ++#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR ++#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE ++ ++#define CONFIG_SYS_INIT_SP_OFFSET \ ++ (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) ++#define CONFIG_SYS_INIT_SP_ADDR \ ++ (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) ++ ++/* FLASH and environment organization */ ++#define CONFIG_SYS_NO_FLASH ++ ++#define CONFIG_ENV_SIZE (8 * 1024) ++ ++#define CONFIG_ENV_IS_IN_MMC ++#define CONFIG_ENV_OFFSET (6 * 128 * 1024) // 0x000C0000 ++#define CONFIG_SYS_MMC_ENV_DEV 0 ++ ++#define CONFIG_OF_LIBFDT ++#define CONFIG_CMD_BOOTZ ++ ++#ifndef CONFIG_SYS_DCACHE_OFF ++#define CONFIG_CMD_CACHE ++#endif ++ ++#endif /* __CONFIG_H * */ +diff --git a/include/micrel.h b/include/micrel.h +index e1c62d8..1d72b50 100644 +--- a/include/micrel.h ++++ b/include/micrel.h +@@ -15,6 +15,11 @@ + #define MII_KSZ9031_MOD_DATA_POST_INC_RW 0x8000 + #define MII_KSZ9031_MOD_DATA_POST_INC_W 0xC000 + ++#define MII_KSZ9031_EXT_RGMII_CTRL_SIG_SKEW 0x4 ++#define MII_KSZ9031_EXT_RGMII_RX_DATA_SKEW 0x5 ++#define MII_KSZ9031_EXT_RGMII_TX_DATA_SKEW 0x6 ++#define MII_KSZ9031_EXT_RGMII_CLOCK_SKEW 0x8 ++ + struct phy_device; + int ksz9021_phy_extended_write(struct phy_device *phydev, int regnum, u16 val); + int ksz9021_phy_extended_read(struct phy_device *phydev, int regnum); +diff --git a/include/video.h b/include/video.h +index 0ff857b..0f9a56f 100644 +--- a/include/video.h ++++ b/include/video.h +@@ -14,6 +14,8 @@ + int video_init (void *videobase); + void video_putc (const char c); + void video_puts (const char *s); ++void udoo_video_drawstring(int xx, int yy, unsigned char *s); ++ + + /** + * Display a BMP format bitmap on the screen +-- +1.8.1.2 + diff --git a/projects/imx6/patches/u-boot/101-udoo-uEnv.txt-bootz-n-fixes.patch b/projects/imx6/patches/u-boot/101-udoo-uEnv.txt-bootz-n-fixes.patch new file mode 100644 index 0000000000..bfe4f2afd9 --- /dev/null +++ b/projects/imx6/patches/u-boot/101-udoo-uEnv.txt-bootz-n-fixes.patch @@ -0,0 +1,206 @@ +From 590891a15d4f3facafeb3186a8d3217f33343eb3 Mon Sep 17 00:00:00 2001 +From: Robert Nelson +Date: Wed, 23 Apr 2014 11:48:34 -0500 +Subject: [PATCH] udoo: uEnv.txt, bootz, n fixes + +diff -urN a/include/configs/udoo.h b/include/configs/udoo.h +--- a/include/configs/udoo.h 2014-11-29 15:55:08.877512289 +0100 ++++ b/include/configs/udoo.h 2014-11-29 16:14:42.716345900 +0100 +@@ -101,7 +101,7 @@ + #define CONFIG_CMD_BMODE + #define CONFIG_CMD_SETEXPR + +-#define CONFIG_BOOTDELAY 5 ++#define CONFIG_BOOTDELAY 1 + + #define CONFIG_SYS_MEMTEST_START 0x10000000 + #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) +@@ -119,101 +119,118 @@ + #define CONFIG_BOUNCE_BUFFER + #define CONFIG_CMD_EXT2 + #define CONFIG_CMD_FAT ++#define CONFIG_CMD_EXT4 ++#define CONFIG_CMD_FS_GENERIC + #define CONFIG_DOS_PARTITION + + #define CONFIG_DEFAULT_FDT_FILE "imx6q-udoo.dtb" + + #define CONFIG_EXTRA_ENV_SETTINGS \ + "script=boot.scr\0" \ +- "uimage=/boot/uImage\0" \ ++ "image=zImage\0" \ + "console=ttymxc1\0" \ + "splashpos=m,m\0" \ + "fdt_high=0xffffffff\0" \ + "initrd_high=0xffffffff\0" \ + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ +- "fdt_addr=0x11000000\0" \ ++ "fdt_addr=0x18000000\0" \ + "boot_fdt=try\0" \ + "ip_dyn=yes\0" \ +- "hdmi_patch=\0" \ ++ "optargs=\0" \ ++ "video=\0" \ + "mmcdev=0\0" \ + "mmcpart=1\0" \ +- "mmcroot=/dev/mmcblk0p1 rootwait rw\0" \ ++ "mmcroot=/dev/mmcblk0p2 ro\0" \ ++ "mmcrootfstype=ext4 rootwait\0" \ + "update_sd_firmware_filename=u-boot.imx\0" \ + "update_sd_firmware=" \ +- "if test ${ip_dyn} = yes; then " \ +- "setenv get_cmd dhcp; " \ +- "else " \ +- "setenv get_cmd tftp; " \ +- "fi; " \ +- "if mmc dev ${mmcdev}; then " \ +- "if ${get_cmd} ${update_sd_firmware_filename}; then " \ +- "setexpr fw_sz ${filesize} / 0x200; " \ +- "setexpr fw_sz ${fw_sz} + 1; " \ +- "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ +- "fi; " \ +- "fi\0" \ ++ "if test ${ip_dyn} = yes; then " \ ++ "setenv get_cmd dhcp; " \ ++ "else " \ ++ "setenv get_cmd tftp; " \ ++ "fi; " \ ++ "if mmc dev ${mmcdev}; then " \ ++ "if ${get_cmd} ${update_sd_firmware_filename}; then " \ ++ "setexpr fw_sz ${filesize} / 0x200; " \ ++ "setexpr fw_sz ${fw_sz} + 1; " \ ++ "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ ++ "fi; " \ ++ "fi\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ +- "root=${mmcroot} " \ +- "${hdmi_patch} " \ +- "fbmem=24M video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32\0" \ ++ "${optargs} " \ ++ "root=${mmcroot} " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "video=${video}\0" \ ++ "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt\0" \ ++ "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ ++ "env import -t $loadaddr $filesize\0" \ + "loadbootscript=" \ +- "ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ ++ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ + "bootscript=echo Running bootscript from mmc ...; " \ +- "source\0" \ +- "loaduimage=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ +- "loadfdt=ext2load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ ++ "source\0" \ ++ "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ ++ "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ ++ "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \ + "mmcboot=echo Booting from mmc ...; " \ +- "run mmcargs; " \ +- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ +- "if run loadfdt; then " \ +- "bootm ${loadaddr} - ${fdt_addr}; " \ +- "else " \ +- "if test ${boot_fdt} = try; then " \ +- "bootm; " \ +- "else " \ +- "echo WARN: Cannot load the DT; " \ +- "fi; " \ +- "fi; " \ +- "else " \ +- "bootm; " \ +- "fi;\0" \ ++ "run mmcargs; " \ ++ "bootz ${loadaddr} - ${fdt_addr};\0" \ ++ "mmcbootdefault=echo Booting from mmc ...; " \ ++ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ ++ "if run loadfdt; then " \ ++ "bootz ${loadaddr} - ${fdt_addr}; " \ ++ "else " \ ++ "if test ${boot_fdt} = try; then " \ ++ "bootz ${loadaddr}; " \ ++ "else " \ ++ "echo WARN: Cannot load the DT; " \ ++ "fi; " \ ++ "fi; " \ ++ "else " \ ++ "bootz ${loadaddr}; " \ ++ "fi;\0" \ + "netargs=setenv bootargs console=${console},${baudrate} " \ +- "root=/dev/nfs " \ +- "${hdmi_patch} " \ ++ "root=/dev/nfs " \ + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ +- "netboot=echo Booting from net ...; " \ +- "run netargs; " \ +- "if test ${ip_dyn} = yes; then " \ +- "setenv get_cmd dhcp; " \ +- "else " \ +- "setenv get_cmd tftp; " \ +- "fi; " \ +- "${get_cmd} ${uimage}; " \ +- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ +- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ +- "bootm ${loadaddr} - ${fdt_addr}; " \ +- "else " \ +- "if test ${boot_fdt} = try; then " \ +- "bootm; " \ +- "else " \ +- "echo WARN: Cannot load the DT; " \ +- "fi; " \ +- "fi; " \ +- "else " \ +- "bootm; " \ +- "fi;\0" ++ "netboot=echo Booting from net ...; " \ ++ "run netargs; " \ ++ "if test ${ip_dyn} = yes; then " \ ++ "setenv get_cmd dhcp; " \ ++ "else " \ ++ "setenv get_cmd tftp; " \ ++ "fi; " \ ++ "${get_cmd} ${image}; " \ ++ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ ++ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ ++ "bootz ${loadaddr} - ${fdt_addr}; " \ ++ "else " \ ++ "if test ${boot_fdt} = try; then " \ ++ "bootz; " \ ++ "else " \ ++ "echo WARN: Cannot load the DT; " \ ++ "fi; " \ ++ "fi; " \ ++ "else " \ ++ "bootz; " \ ++ "fi;\0" + + #define CONFIG_BOOTCOMMAND \ +- "mmc dev ${mmcdev}; if mmc rescan; then " \ +- "if run loadbootscript; then " \ +- "run bootscript; " \ +- "else " \ +- "if run loaduimage; then " \ +- "run mmcboot; " \ +- "else run netboot; " \ +- "fi; " \ +- "fi; " \ +- "else run netboot; fi" ++ "mmc dev ${mmcdev};" \ ++ "if mmc rescan; then " \ ++ "echo SD/MMC found on device ${mmcdev};" \ ++ "if run loadbootenv; then " \ ++ "run importbootenv;" \ ++ "fi;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n $uenvcmd; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "echo Running default loadimage ...;" \ ++ "if run loadimage; then " \ ++ "run loadfdt;" \ ++ "run mmcboot;" \ ++ "fi;" \ ++ "fi;" + + /* Miscellaneous configurable options */ + #define CONFIG_SYS_LONGHELP diff --git a/projects/imx6/patches/u-boot/102-udoo_zImage.patch b/projects/imx6/patches/u-boot/102-udoo_zImage.patch new file mode 100644 index 0000000000..a683e7d1e6 --- /dev/null +++ b/projects/imx6/patches/u-boot/102-udoo_zImage.patch @@ -0,0 +1,27 @@ +diff -urN a/include/configs/udoo.h b/include/configs/udoo.h +--- a/include/configs/udoo.h 2014-11-29 18:58:38.930773257 +0100 ++++ b/include/configs/udoo.h 2014-11-29 19:04:06.005449364 +0100 +@@ -126,8 +126,9 @@ + #define CONFIG_DEFAULT_FDT_FILE "imx6q-udoo.dtb" + + #define CONFIG_EXTRA_ENV_SETTINGS \ ++ "zImage=KERNEL\0" \ + "script=boot.scr\0" \ +- "image=zImage\0" \ ++ "image=${zImage}\0" \ + "console=ttymxc1\0" \ + "splashpos=m,m\0" \ + "fdt_high=0xffffffff\0" \ +@@ -168,9 +169,9 @@ + "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ + "bootscript=echo Running bootscript from mmc ...; " \ + "source\0" \ +- "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ +- "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ +- "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \ ++ "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${zImage}\0" \ ++ "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${zImage}\0" \ ++ "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ + "bootz ${loadaddr} - ${fdt_addr};\0" \ diff --git a/scripts/create_addon b/scripts/create_addon index 690c321792..b54007e8b1 100755 --- a/scripts/create_addon +++ b/scripts/create_addon @@ -50,7 +50,7 @@ fi if [ "$PKG_IS_ADDON" = "yes" ] ; then $SCRIPTS/build $@ - printf "%${BUILD_INDENT}c CREATE ADDON $1\n" ' '>&$SILENT_OUT + printf "%${BUILD_INDENT}c CREATE ADDON ($PROJECT/$TARGET_ARCH) $1\n" ' '>&$SILENT_OUT export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) rm -rf $ADDON_BUILD diff --git a/scripts/image b/scripts/image index f0a8605b20..f2960b0875 100755 --- a/scripts/image +++ b/scripts/image @@ -37,11 +37,20 @@ if [ "$OPENELEC_VERSION" = devel ]; then fi GIT_HASH=$(git rev-parse HEAD) GIT_ABBREV=$(git log -1 --pretty=format:%h) + DEVEL_VERSION=$OPENELEC_VERSION OPENELEC_VERSION=$OPENELEC_VERSION-$BUILD_DATE-r$GIT_BUILD-g$GIT_ABBREV fi TARGET_VERSION="$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION" IMAGE_NAME="$DISTRONAME-$TARGET_VERSION" +if [ "$DEVEL_VERSION" = "devel" ] ; then + IMAGE_NAME="$DISTRONAME-$PROJECT.$TARGET_ARCH-$OS_VERSION-$OPENELEC_VERSION" +fi + +if [ "$PROJECT" == "imx6" -a -n "$SYSTEM" ]; then + IMAGE_NAME="$IMAGE_NAME-$SYSTEM" +fi + if [ -n "$IMAGE_SUFFIX" ]; then IMAGE_NAME="$IMAGE_NAME-$IMAGE_SUFFIX" fi @@ -269,6 +278,15 @@ fi fi fi + # MfgTool2 for TBS Matrix support (add it to .tar) + # only for matrix system or all? (one tar for all updates?) + if [ "$PROJECT" == "imx6" -a "$SYSTEM" == "matrix" ]; then + $SCRIPTS/unpack imx6-mfgtool2-tbs-matrix + + mkdir -p $RELEASE_DIR/MfgTool2-TBS-Matrix + cp -PR $BUILD/imx6-mfgtool2-tbs-matrix-*/imx6-mfgtool2-tbs-matrix-*/* $RELEASE_DIR/MfgTool2-TBS-Matrix + fi + cp $ROOT/README* $RELEASE_DIR cp $ROOT/CHANGELOG* $RELEASE_DIR echo "$TARGET_VERSION" > $RELEASE_DIR/RELEASE @@ -283,7 +301,6 @@ fi mkdir -p $RELEASE_DIR/target cp $TARGET_IMG/$IMAGE_NAME.system $RELEASE_DIR/target/SYSTEM cp $TARGET_IMG/$IMAGE_NAME.kernel $RELEASE_DIR/target/KERNEL - # create md5sum's ( cd $RELEASE_DIR; md5sum -t target/SYSTEM > target/SYSTEM.md5; @@ -305,6 +322,16 @@ fi if [ -z "$KERNEL_NAME" ] ; then KERNEL_NAME="KERNEL" fi + + UBOOT_SYSTEM="" + if [ "$PROJECT" == "imx6" ]; then + if [ -n "$SYSTEM" ]; then + UBOOT_SYSTEM="$SYSTEM" + else + UBOOT_SYSTEM="cuboxi" + fi + fi + echo "mkimage: boo. now root access (sudo) is required..." echo "mkimage: see scripts/image and scripts/mkimage if you dont trust us :)" # variables used in image script must be passed @@ -319,6 +346,7 @@ fi RELEASE_DIR="$RELEASE_DIR" \ UUID_SYSTEM="$(uuidgen)" \ UUID_STORAGE="$(uuidgen)" \ + UBOOT_SYSTEM="$UBOOT_SYSTEM" \ $SCRIPTS/mkimage fi diff --git a/scripts/mkimage b/scripts/mkimage index f189f5c5e8..aeb4f6c3d6 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -173,15 +173,21 @@ EOF elif [ "$BOOTLOADER" = "u-boot" ]; then # create bootloader configuration echo "image: creating bootloader configuration..." - if [ -f "$RELEASE_DIR/3rdparty/bootloader/uEnv.txt" ]; then + if [ -n "$UBOOT_SYSTEM" -a -f "$RELEASE_DIR/3rdparty/bootloader/uEnv-$UBOOT_SYSTEM.txt" ]; then + cp "$RELEASE_DIR/3rdparty/bootloader/uEnv-$UBOOT_SYSTEM.txt" "$OE_TMP/uEnv.txt" + elif [ -f "$RELEASE_DIR/3rdparty/bootloader/uEnv.txt" ]; then cp $RELEASE_DIR/3rdparty/bootloader/uEnv.txt "$OE_TMP" elif [ -f "$RELEASE_DIR/3rdparty/bootloader/boot.scr" ]; then cp $RELEASE_DIR/3rdparty/bootloader/boot.scr "$OE_TMP" fi echo "image: installing u-boot bootloader..." - if [ -f "$RELEASE_DIR/3rdparty/bootloader/SPL" ]; then + if [ -n "$UBOOT_SYSTEM" -a -f "$RELEASE_DIR/3rdparty/bootloader/SPL-$UBOOT_SYSTEM" ]; then + dd if="$RELEASE_DIR/3rdparty/bootloader/SPL-$UBOOT_SYSTEM" of="$DISK" bs=512 seek=2 conv=notrunc + elif [ -f "$RELEASE_DIR/3rdparty/bootloader/SPL" ]; then dd if="$RELEASE_DIR/3rdparty/bootloader/SPL" of="$DISK" bs=512 seek=2 conv=notrunc + elif [ -n "$UBOOT_SYSTEM" -a -f "$RELEASE_DIR/3rdparty/bootloader/u-boot-$UBOOT_SYSTEM.imx" ]; then + dd if="$RELEASE_DIR/3rdparty/bootloader/u-boot-$UBOOT_SYSTEM.imx" of="$DISK" bs=512 seek=2 conv=notrunc elif [ -f "$RELEASE_DIR/3rdparty/bootloader/u-boot.imx" ]; then dd if="$RELEASE_DIR/3rdparty/bootloader/u-boot.imx" of="$DISK" bs=512 seek=2 conv=notrunc fi @@ -189,7 +195,10 @@ elif [ "$BOOTLOADER" = "u-boot" ]; then echo "image: copying files to part1..." cp $TARGET_IMG/$IMAGE_NAME.kernel "$OE_TMP/$KERNEL_NAME" cp $TARGET_IMG/$IMAGE_NAME.system "$OE_TMP/SYSTEM" - if [ -f $RELEASE_DIR/3rdparty/bootloader/u-boot.img ] ; then + + if [ -n "$UBOOT_SYSTEM" -a -f "$RELEASE_DIR/3rdparty/bootloader/u-boot-$UBOOT_SYSTEM.img" ]; then + cp "$RELEASE_DIR/3rdparty/bootloader/u-boot-$UBOOT_SYSTEM.img" "$OE_TMP/u-boot.img" + elif [ -f $RELEASE_DIR/3rdparty/bootloader/u-boot.img ]; then cp $RELEASE_DIR/3rdparty/bootloader/u-boot.img "$OE_TMP" fi diff --git a/tools/mkpkg/mkpkg_screensaver.asteroids b/tools/mkpkg/mkpkg_screensaver.asteroids new file mode 100755 index 0000000000..584a940e47 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.asteroids @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.asteroids.git ]; then + git clone https://github.com/notspiff/screensaver.asteroids.git screensaver.asteroids.git + fi + + cd screensaver.asteroids.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.asteroids-$GIT_REV + cp -R screensaver.asteroids.git screensaver.asteroids-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.asteroids-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.asteroids-$GIT_REV.tar.xz screensaver.asteroids-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.asteroids-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.biogenesis b/tools/mkpkg/mkpkg_screensaver.biogenesis new file mode 100755 index 0000000000..7b7ed17f05 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.biogenesis @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.biogenesis.git ]; then + git clone https://github.com/notspiff/screensaver.biogenesis.git screensaver.biogenesis.git + fi + + cd screensaver.biogenesis.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.biogenesis-$GIT_REV + cp -R screensaver.biogenesis.git screensaver.biogenesis-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.biogenesis-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.biogenesis-$GIT_REV.tar.xz screensaver.biogenesis-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.biogenesis-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.greynetic b/tools/mkpkg/mkpkg_screensaver.greynetic new file mode 100755 index 0000000000..8c04e95fc2 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.greynetic @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.greynetic.git ]; then + git clone https://github.com/notspiff/screensaver.greynetic.git screensaver.greynetic.git + fi + + cd screensaver.greynetic.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.greynetic-$GIT_REV + cp -R screensaver.greynetic.git screensaver.greynetic-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.greynetic-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.greynetic-$GIT_REV.tar.xz screensaver.greynetic-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.greynetic-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.matrixtrails b/tools/mkpkg/mkpkg_screensaver.matrixtrails new file mode 100755 index 0000000000..35a2dc157d --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.matrixtrails @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.matrixtrails.git ]; then + git clone https://github.com/notspiff/screensaver.matrixtrails.git screensaver.matrixtrails.git + fi + + cd screensaver.matrixtrails.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.matrixtrails-$GIT_REV + cp -R screensaver.matrixtrails.git screensaver.matrixtrails-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.matrixtrails-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.matrixtrails-$GIT_REV.tar.xz screensaver.matrixtrails-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.matrixtrails-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.pingpong b/tools/mkpkg/mkpkg_screensaver.pingpong new file mode 100755 index 0000000000..a02dcd7f93 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.pingpong @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.pingpong.git ]; then + git clone https://github.com/notspiff/screensaver.pingpong.git screensaver.pingpong.git + fi + + cd screensaver.pingpong.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.pingpong-$GIT_REV + cp -R screensaver.pingpong.git screensaver.pingpong-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.pingpong-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.pingpong-$GIT_REV.tar.xz screensaver.pingpong-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.pingpong-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.pyro b/tools/mkpkg/mkpkg_screensaver.pyro new file mode 100755 index 0000000000..0422a97b53 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.pyro @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.pyro.git ]; then + git clone https://github.com/notspiff/screensaver.pyro.git screensaver.pyro.git + fi + + cd screensaver.pyro.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.pyro-$GIT_REV + cp -R screensaver.pyro.git screensaver.pyro-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.pyro-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.pyro-$GIT_REV.tar.xz screensaver.pyro-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.pyro-$GIT_REV diff --git a/tools/mkpkg/mkpkg_screensaver.stars b/tools/mkpkg/mkpkg_screensaver.stars new file mode 100755 index 0000000000..a84c2bf8f4 --- /dev/null +++ b/tools/mkpkg/mkpkg_screensaver.stars @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d screensaver.stars.git ]; then + git clone https://github.com/notspiff/screensaver.stars.git screensaver.stars.git + fi + + cd screensaver.stars.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf screensaver.stars-$GIT_REV + cp -R screensaver.stars.git screensaver.stars-$GIT_REV + +echo "cleaning sources..." + rm -rf screensaver.stars-$GIT_REV/.git + +echo "packing sources..." + tar cvJf screensaver.stars-$GIT_REV.tar.xz screensaver.stars-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf screensaver.stars-$GIT_REV diff --git a/tools/mkpkg/mkpkg_visualization.vsxu b/tools/mkpkg/mkpkg_visualization.vsxu new file mode 100755 index 0000000000..7a5bbd6d28 --- /dev/null +++ b/tools/mkpkg/mkpkg_visualization.vsxu @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d visualization.vsxu.git ]; then + git clone https://github.com/notspiff/visualization.vsxu.git visualization.vsxu.git + fi + + cd visualization.vsxu.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf visualization.vsxu-$GIT_REV + cp -R visualization.vsxu.git visualization.vsxu-$GIT_REV + +echo "cleaning sources..." + rm -rf visualization.vsxu-$GIT_REV/.git + +echo "packing sources..." + tar cvJf visualization.vsxu-$GIT_REV.tar.xz visualization.vsxu-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf visualization.vsxu-$GIT_REV