mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv
Conflicts: packages/sysutils/busybox/install packages/sysutils/busybox/meta
This commit is contained in:
commit
a71fc829d2
@ -35,7 +35,7 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
fi
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp -R $PKG_DIR/config/boblight.conf.sample $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp -R $PKG_DIR/config/boblight.conf $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
if [ "$DISPLAYSERVER" = "xorg-server" ] ; then
|
||||
cp -R $PKG_DIR/config/boblight.X11.sample $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
fi
|
||||
|
@ -29,52 +29,15 @@ ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.boblightd"
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
LOG_FILE="$ADDON_HOME/service.log"
|
||||
chmod a+x $ADDON_DIR/bin/*
|
||||
|
||||
# Boblight config file created by user
|
||||
BOBLIGHT_CONFIG="$ADDON_HOME/boblight.conf"
|
||||
|
||||
# Flag file to start boblight-x11 daemon
|
||||
BOBLIGHT_X11="$ADDON_HOME/boblight.X11"
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="boblightd.disabled"
|
||||
LOCKFILE_SLEEP="boblightd.sleep"
|
||||
|
||||
export LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH"
|
||||
|
||||
cp -R $ADDON_DIR/config/*.sample $ADDON_HOME > $LOG_FILE 2>&1
|
||||
|
||||
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||
boblightd.stop
|
||||
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||
|
||||
if [ -f "$BOBLIGHT_CONFIG" ] ; then
|
||||
if [ ! "$(pidof boblightd)" ]; then
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
break
|
||||
fi
|
||||
# Start the boblight daemon
|
||||
boblightd -c $BOBLIGHT_CONFIG >> $LOG_FILE 2>&1
|
||||
done &
|
||||
fi
|
||||
|
||||
if [ -e $BOBLIGHT_X11 ]; then
|
||||
if [ ! "$(pidof boblight-X11)" ]; then
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
break
|
||||
fi
|
||||
# Start the boblight daemon
|
||||
boblight-X11 >> $LOG_FILE 2>&1
|
||||
done &
|
||||
fi
|
||||
fi
|
||||
cp $ADDON_DIR/config/*.sample $ADDON_HOME
|
||||
if [ ! -f $ADDON_HOME/boblight.conf ] ; then
|
||||
cp $ADDON_DIR/config/boblight.conf $ADDON_HOME/boblight.conf
|
||||
fi
|
||||
|
||||
if [ -x $ADDON_DIR/bin/boblight-X11 -a -e $ADDON_HOME/boblight.X11 ] ; then
|
||||
boblight-X11 -f >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
exec boblightd -c $ADDON_HOME/boblight.conf > $ADDON_HOME/service.log 2>&1
|
||||
|
@ -1,45 +0,0 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="boblightd.disabled"
|
||||
LOCKFILE_SLEEP="boblightd.sleep"
|
||||
|
||||
mkdir -p "$LOCKDIR"
|
||||
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
|
||||
if [ "$(pidof boblightd)" ] ; then
|
||||
killall -q boblightd
|
||||
killall -q boblight-X11
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof boblightd boblight-X11)" ] ; then
|
||||
break
|
||||
fi
|
||||
usleep 200000
|
||||
done
|
||||
killall -q -9 boblightd
|
||||
killall -q -9 boblight-X11
|
||||
fi
|
@ -17,27 +17,3 @@
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
__scriptname__ = "Boblightd"
|
||||
__author__ = "OpenELEC"
|
||||
__url__ = "http://www.openelec.tv"
|
||||
__settings__ = xbmcaddon.Addon(id='service.multimedia.boblightd')
|
||||
__cwd__ = __settings__.getAddonInfo('path')
|
||||
__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "boblightd.start") )
|
||||
__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "boblightd.stop") )
|
||||
|
||||
#make binary files executable in adson bin folder
|
||||
subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True)
|
||||
|
||||
subprocess.Popen(__start__, shell=True, close_fds=True)
|
||||
|
||||
while (not xbmc.abortRequested):
|
||||
time.sleep(0.250)
|
||||
|
||||
subprocess.Popen(__stop__, shell=True, close_fds=True)
|
||||
|
@ -22,20 +22,17 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
LOCKFILE_SLEEP="/var/lock/boblightd.sleep"
|
||||
SERVICE="service.multimedia.boblightd.service"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend|pre)
|
||||
progress "Shutting down boblightd for suspending..."
|
||||
touch $LOCKFILE_SLEEP
|
||||
boblightd.stop
|
||||
;;
|
||||
thaw|resume|post)
|
||||
if [ -f "$LOCKFILE_SLEEP" ] ; then
|
||||
progress "Restarting boblightd for wakeup..."
|
||||
rm -rf "$LOCKFILE_SLEEP"
|
||||
pre)
|
||||
if systemctl is-active "$SERVICE" &>/dev/null ; then
|
||||
systemctl stop "$SERVICE"
|
||||
fi
|
||||
;;
|
||||
*) exit $NA
|
||||
post)
|
||||
if systemctl is-enabled "$SERVICE" &>/dev/null ; then
|
||||
systemctl start "$SERVICE"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=boblightd
|
||||
After=graphical.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.xbmc/addons/service.multimedia.boblightd/bin/boblightd.start"
|
||||
ExecStopPost=-/bin/sh -c "pidof boblight-X11 && killall -q -9 boblight-X11"
|
||||
TimeoutStopSec=1
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=xbmc.target
|
@ -22,14 +22,8 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="tvheadend.disabled"
|
||||
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||
ADDON_SYS_DIR="/usr/lib/xbmc/addons/service.multimedia.tvheadend"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend"
|
||||
ADDON_BIN="tvheadend"
|
||||
LOG_FILE="$ADDON_HOME/service.log"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
XMLTV_FILE="$ADDON_DIR/bin/tv_grab_file"
|
||||
@ -42,29 +36,13 @@ TIMESHIFT_SETTINGS_DIR="$ADDON_HOME/timeshift"
|
||||
TIMESHIFT_SETTINGS_FILE="$TIMESHIFT_SETTINGS_DIR/config"
|
||||
TIMESHIFT_DIR="$ADDON_HOME/cache/timeshift"
|
||||
|
||||
## handle upgrade. this should be removed later
|
||||
|
||||
# remove any old hts-tvheadend dir
|
||||
if [ -d $HOME/.xbmc/addons/service.multimedia.hts-tvheadend ] ; then
|
||||
# stop old service if runing
|
||||
$HOME/.xbmc/addons/service.multimedia.hts-tvheadend/bin/tvheadend.stop
|
||||
rm -rf $HOME/.xbmc/addons/service.multimedia.hts-tvheadend
|
||||
fi
|
||||
|
||||
# reuse old config files
|
||||
if [ -d $HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend ] ; then
|
||||
mv $HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend $ADDON_HOME
|
||||
sed -i 's/service.multimedia.hts-tvheadend/service.multimedia.tvheadend/g' $ADDON_HOME/xmltv/config
|
||||
fi
|
||||
##
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
chmod a+x $ADDON_DIR/bin/*
|
||||
|
||||
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
elif [ -f $ADDON_SYS_DIR/settings-default.xml ]; then
|
||||
cp $ADDON_SYS_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -72,8 +50,6 @@ if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then
|
||||
mkdir -p $XMLTV_SETTINGS_DIR
|
||||
if [ -f $ADDON_DIR/xmltv-config ]; then
|
||||
cp $ADDON_DIR/xmltv-config $XMLTV_SETTINGS_FILE
|
||||
elif [ -f $ADDON_SYS_DIR/xmltv-config ]; then
|
||||
cp $ADDON_SYS_DIR/xmltv-config $XMLTV_SETTINGS_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -82,8 +58,6 @@ if [ ! -f "$DVR_SETTINGS_FILE" ]; then
|
||||
mkdir -p $DVR_SETTINGS_DIR
|
||||
if [ -f $ADDON_DIR/dvr-config ]; then
|
||||
cp $ADDON_DIR/dvr-config $DVR_SETTINGS_FILE
|
||||
elif [ -f $ADDON_SYS_DIR/dvr-config ]; then
|
||||
cp $ADDON_SYS_DIR/dvr-config $DVR_SETTINGS_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -92,8 +66,6 @@ if [ ! -f "$TIMESHIFT_SETTINGS_FILE" ]; then
|
||||
mkdir -p $TIMESHIFT_SETTINGS_DIR
|
||||
if [ -f $ADDON_DIR/timeshift-config ]; then
|
||||
cp $ADDON_DIR/timeshift-config $TIMESHIFT_SETTINGS_FILE
|
||||
elif [ -f $ADDON_SYS_DIR/timeshift-config ]; then
|
||||
cp $ADDON_SYS_DIR/timeshift-config $TIMESHIFT_SETTINGS_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -104,45 +76,36 @@ else
|
||||
fi
|
||||
|
||||
mkdir -p /var/config
|
||||
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
||||
cat "$ADDON_DIR/settings-default.xml" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf.default
|
||||
elif [ -f $ADDON_SYS_DIR/settings-default.xml ]; then
|
||||
cat "$ADDON_SYS_DIR/settings-default.xml" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf.default
|
||||
fi
|
||||
cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf
|
||||
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
||||
cat "$ADDON_DIR/settings-default.xml" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf.default
|
||||
fi
|
||||
cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/tvheadend.conf
|
||||
|
||||
. /var/config/tvheadend.conf.default
|
||||
. /var/config/tvheadend.conf
|
||||
|
||||
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||
tvheadend.stop
|
||||
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
break
|
||||
fi
|
||||
# start userspace DVB driver/addon
|
||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||
driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}')
|
||||
logger -t Tvheadend "### Loading userspace DVB driver: $driver_dvb_name ###"
|
||||
# use ". " because of variable export
|
||||
. $driver_dvb
|
||||
done
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] && [ ! -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
sleep 1
|
||||
continue
|
||||
fi
|
||||
if [ "$PRELOAD_CAPMT_CA" == "true" ] ; then
|
||||
logger -t Tvheadend "### Preloading capmt_ca.so library ###"
|
||||
LD_PRELOAD="$ADDON_DIR/bin/capmt_ca.so $LD_PRELOAD" $ADDON_BIN $TVHEADEND_ARG &>$LOG_FILE
|
||||
else
|
||||
$ADDON_BIN $TVHEADEND_ARG &>$LOG_FILE
|
||||
fi
|
||||
done &
|
||||
fi
|
||||
# start userspace DVB driver/addon
|
||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||
driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}')
|
||||
logger -t Tvheadend "### Loading userspace DVB driver: $driver_dvb_name ###"
|
||||
# use ". " because of variable export
|
||||
. $driver_dvb
|
||||
done
|
||||
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||
while [ true ] ; do
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$PRELOAD_CAPMT_CA" == "true" ] ; then
|
||||
logger -t Tvheadend "### Preloading capmt_ca.so library ###"
|
||||
LD_PRELOAD="$ADDON_DIR/bin/capmt_ca.so $LD_PRELOAD" exec tvheadend $TVHEADEND_ARG &>$LOG_FILE
|
||||
else
|
||||
exec tvheadend $TVHEADEND_ARG &>$LOG_FILE
|
||||
fi
|
||||
|
@ -17,23 +17,3 @@
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import xbmc, xbmcaddon, time, os, subprocess
|
||||
|
||||
__scriptname__ = "TVHeadend Service"
|
||||
__author__ = "OpenELEC"
|
||||
__url__ = "http://www.openelec.tv"
|
||||
__settings__ = xbmcaddon.Addon(id='service.multimedia.tvheadend')
|
||||
__cwd__ = __settings__.getAddonInfo('path')
|
||||
__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "tvheadend.start") )
|
||||
__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "tvheadend.stop") )
|
||||
|
||||
#make binary files executable in adson bin folder
|
||||
subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True)
|
||||
|
||||
subprocess.Popen(__start__, shell=True, close_fds=True)
|
||||
|
||||
while (not xbmc.abortRequested):
|
||||
time.sleep(0.250)
|
||||
|
||||
subprocess.Popen(__stop__, shell=True, close_fds=True)
|
||||
|
@ -22,35 +22,26 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
SERVICE="service.multimedia.tvheadend"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'`
|
||||
|
||||
LOCKFILE_SLEEP="/var/lock/tvheadend.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend|pre)
|
||||
if [ "$(pidof tvheadend)" ];then
|
||||
progress "Shutting down HTS TVHeadend for suspending..."
|
||||
touch $LOCKFILE_SLEEP
|
||||
tvheadend.stop
|
||||
pre)
|
||||
if systemctl is-active "$SERVICE" &>/dev/null ; then
|
||||
systemctl stop "$SERVICE"
|
||||
for module in $REMOVE_MODULES ; do
|
||||
rmmod -w $module
|
||||
done
|
||||
fi
|
||||
;;
|
||||
|
||||
thaw|resume|post)
|
||||
if [ -f "$LOCKFILE_SLEEP" ] ; then
|
||||
progress "Restarting HTS TVHeadend for wakeup..."
|
||||
post)
|
||||
if systemctl is-enabled "$SERVICE" &>/dev/null ; then
|
||||
for module in $REMOVE_MODULES ; do
|
||||
modprobe $module
|
||||
done
|
||||
rm -rf "$LOCKFILE_SLEEP"
|
||||
systemctl start "$SERVICE"
|
||||
fi
|
||||
;;
|
||||
*) exit $NA
|
||||
;;
|
||||
esac
|
||||
|
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=TVHeadend Service
|
||||
After=graphical.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.xbmc/addons/service.multimedia.tvheadend/bin/tvheadend.start"
|
||||
TimeoutStopSec=2
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=xbmc.target
|
@ -47,10 +47,6 @@ OSDSkin = sttng
|
||||
MYDATA
|
||||
}
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="vdr.disabled"
|
||||
LOCKFILE_SLEEP="vdr.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon"
|
||||
LOG_FILE="$ADDON_HOME/service.log"
|
||||
@ -59,6 +55,8 @@ ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
ADDON_CONFIG_DIR="$ADDON_HOME/config"
|
||||
ADDON_PLUGIN_DIR="$ADDON_DIR/plugin"
|
||||
|
||||
chmod a+x $ADDON_DIR/bin/*
|
||||
|
||||
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||
mkdir -p $ADDON_HOME
|
||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
@ -143,49 +141,38 @@ if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P 'xmltv2vdr --epgfile=$ADDON_CACHE_DIR/epg.db'"
|
||||
fi
|
||||
|
||||
(
|
||||
cd $ADDON_DIR/config
|
||||
mkdir -p $ADDON_CONFIG_DIR
|
||||
cd $ADDON_DIR/config
|
||||
mkdir -p $ADDON_CONFIG_DIR
|
||||
|
||||
for dir in `find . -type d`; do
|
||||
mkdir -p $ADDON_CONFIG_DIR/$dir
|
||||
done
|
||||
for dir in `find . -type d`; do
|
||||
mkdir -p $ADDON_CONFIG_DIR/$dir
|
||||
done
|
||||
|
||||
for config in `find . -type f`; do
|
||||
if [ ! -f $ADDON_CONFIG_DIR/$config ]; then
|
||||
cp $config $ADDON_CONFIG_DIR/$config
|
||||
fi
|
||||
done
|
||||
)
|
||||
for config in `find . -type f`; do
|
||||
if [ ! -f $ADDON_CONFIG_DIR/$config ]; then
|
||||
cp $config $ADDON_CONFIG_DIR/$config
|
||||
fi
|
||||
done
|
||||
|
||||
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||
vdr.stop
|
||||
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||
# start userspace DVB driver/addon
|
||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||
driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}')
|
||||
logger -t VDR "### Loading userspace DVB driver: $driver_dvb_name ###"
|
||||
# use ". " because of variable export
|
||||
. $driver_dvb
|
||||
done
|
||||
|
||||
if [ ! "$(pidof vdr.bin)" ];then
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
umount /var/run/vdr 2>&1
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
break
|
||||
fi
|
||||
# start userspace DVB driver/addon
|
||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||
driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}')
|
||||
logger -t VDR "### Loading userspace DVB driver: $driver_dvb_name ###"
|
||||
# use ". " because of variable export
|
||||
. $driver_dvb
|
||||
done
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] && [ ! -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
sleep 1
|
||||
continue
|
||||
fi
|
||||
check_tmpfs_mount
|
||||
fix_config
|
||||
LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" eval LANG=en_US.UTF-8 vdr.bin $VDR_ARG &>$LOG_FILE
|
||||
done &
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
check_tmpfs_mount
|
||||
fix_config
|
||||
eval LANG=en_US.UTF-8 exec vdr.bin $VDR_ARG &>$LOG_FILE
|
||||
|
@ -1,43 +0,0 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="vdr.disabled"
|
||||
LOCKFILE_SLEEP="vdr.sleep"
|
||||
|
||||
mkdir -p "$LOCKDIR"
|
||||
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
|
||||
if [ "$(pidof vdr.bin)" ] ; then
|
||||
killall -q vdr.bin
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof vdr.bin)" ] ; then
|
||||
break
|
||||
fi
|
||||
usleep 200000
|
||||
done
|
||||
killall -q -9 vdr.bin
|
||||
fi
|
@ -17,27 +17,3 @@
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import xbmcaddon
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
__scriptname__ = "VDR Service"
|
||||
__author__ = "OpenELEC"
|
||||
__url__ = "http://www.openelec.tv"
|
||||
__settings__ = xbmcaddon.Addon(id='service.multimedia.vdr-addon')
|
||||
__cwd__ = __settings__.getAddonInfo('path')
|
||||
__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "vdr.start") )
|
||||
__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "vdr.stop") )
|
||||
|
||||
#make binary files executable in adson bin folder
|
||||
subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True)
|
||||
|
||||
subprocess.Popen(__start__, shell=True, close_fds=True)
|
||||
|
||||
while (not xbmc.abortRequested):
|
||||
time.sleep(0.250)
|
||||
|
||||
subprocess.Popen(__stop__, shell=True, close_fds=True)
|
||||
|
@ -22,36 +22,26 @@
|
||||
|
||||
. /etc/profile
|
||||
|
||||
SERVICE="service.multimedia.vdr-addon.service"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon"
|
||||
ADDON_CONFIG_DIR="$ADDON_HOME/config"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'`
|
||||
|
||||
LOCKFILE_SLEEP="/var/lock/vdr.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend|pre)
|
||||
if [ "$(pidof vdr.bin)" ];then
|
||||
progress "Shutting down vdr for suspending..."
|
||||
touch $LOCKFILE_SLEEP
|
||||
vdr.stop
|
||||
pre)
|
||||
if systemctl is-active "$SERVICE" &>/dev/null ; then
|
||||
systemctl stop "$SERVICE"
|
||||
for module in $REMOVE_MODULES ; do
|
||||
rmmod -w $module
|
||||
done
|
||||
fi
|
||||
;;
|
||||
thaw|resume|post)
|
||||
if [ -f "$LOCKFILE_SLEEP" ] ; then
|
||||
progress "Restarting vdr for wakeup..."
|
||||
post)
|
||||
if systemctl is-enabled "$SERVICE" &>/dev/null ; then
|
||||
for module in $REMOVE_MODULES ; do
|
||||
modprobe $module
|
||||
done
|
||||
rm -rf "$LOCKFILE_SLEEP"
|
||||
systemctl start "$SERVICE"
|
||||
fi
|
||||
;;
|
||||
*) exit $NA
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=vdr
|
||||
After=graphical.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.xbmc/addons/service.multimedia.vdr-addon/bin/vdr.start"
|
||||
TimeoutStopSec=2
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=xbmc.target
|
@ -18,19 +18,36 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ARCTIC_MC"
|
||||
PKG_VERSION=""
|
||||
PKG_NAME="unzip"
|
||||
PKG_VERSION="60"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="various"
|
||||
PKG_SITE="http://www.arctic.ac"
|
||||
PKG_URL=""
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.info-zip.org/pub/infozip/"
|
||||
PKG_URL="http://ftp.uk.i-scream.org/sites/www.ibiblio.org/gentoo/distfiles/$PKG_NAME$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="${PKG_NAME}${PKG_VERSION}"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_BUILD_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="oem"
|
||||
PKG_SHORTDESC="ARCTIC_MC: Metapackage for various preinstalled packages for http://www.arctic.ac/en/p/living/entertainment-center.html"
|
||||
PKG_LONGDESC=""
|
||||
PKG_SECTION="compress"
|
||||
PKG_SHORTDESC="unzip: PKUNZIP compatible compression utility"
|
||||
PKG_LONGDESC="UnZip is an extraction utility for archives compressed in .zip format (also called "zipfiles"). Although highly compatible both with PKWARE's PKZIP and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, the primary objectives have been portability and non-MSDOS functionality."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
make CC=$TARGET_CC \
|
||||
RANLIB=$TARGET_RANLIB \
|
||||
AR=$TARGET_AR \
|
||||
STRIP=$TARGET_STRIP \
|
||||
CFLAGS="$CFLAGS" \
|
||||
-f unix/Makefile generic
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp unzip $INSTALL/usr/bin
|
||||
$STRIP $INSTALL/usr/bin/unzip
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-theme-Confluence"
|
||||
PKG_VERSION="13.alpha-ee5f905"
|
||||
PKG_VERSION="13.alpha-ca8ade7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="13.alpha-ee5f905"
|
||||
PKG_VERSION="13.alpha-ca8ade7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@ -443,12 +443,16 @@ make_target() {
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin/xbmc
|
||||
rm -rf $INSTALL/usr/bin/xbmc-standalone
|
||||
rm -rf $INSTALL/usr/lib/xbmc/*.cmake
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/xbmc
|
||||
cp $PKG_DIR/scripts/xbmc-config $INSTALL/usr/lib/xbmc
|
||||
cp $PKG_DIR/scripts/xbmc-hacks $INSTALL/usr/lib/xbmc
|
||||
cp $PKG_DIR/scripts/xbmc-sources $INSTALL/usr/lib/xbmc
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/openelec
|
||||
cp $PKG_DIR/scripts/systemd-addon-wrapper $INSTALL/usr/lib/openelec
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/cputemp $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/gputemp $INSTALL/usr/bin
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,97 @@
|
||||
From 9c1dea43c9b9b66c48d057d3c0e44cd4a807e4dc Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 20 Dec 2013 00:36:34 +0200
|
||||
Subject: [PATCH] service addons: use a wrapper to setup systemd
|
||||
|
||||
---
|
||||
xbmc/addons/AddonDatabase.cpp | 3 +++
|
||||
xbmc/addons/AddonInstaller.cpp | 10 ++++++++++
|
||||
xbmc/addons/AddonInstaller.h | 2 ++
|
||||
3 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/xbmc/addons/AddonDatabase.cpp b/xbmc/addons/AddonDatabase.cpp
|
||||
index 4202363..105749f 100644
|
||||
--- a/xbmc/addons/AddonDatabase.cpp
|
||||
+++ b/xbmc/addons/AddonDatabase.cpp
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "AddonDatabase.h"
|
||||
#include "addons/AddonManager.h"
|
||||
+#include "addons/AddonInstaller.h"
|
||||
#include "utils/log.h"
|
||||
#include "utils/Variant.h"
|
||||
#include "utils/StringUtils.h"
|
||||
@@ -581,6 +582,7 @@ bool CAddonDatabase::DisableAddon(const CStdString &addonID, bool disable /* = t
|
||||
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(addon);
|
||||
if (service)
|
||||
service->Stop();
|
||||
+ CAddonInstaller::Get().CallOEWrapper(addonID, true);
|
||||
}
|
||||
// restart the pvr manager when disabling a pvr add-on with the pvr manager enabled
|
||||
else if (CAddonMgr::Get().GetAddon(addonID, addon, ADDON_PVRDLL, false) && addon &&
|
||||
@@ -601,6 +603,7 @@ bool CAddonDatabase::DisableAddon(const CStdString &addonID, bool disable /* = t
|
||||
// If the addon is a service, start it
|
||||
if (CAddonMgr::Get().GetAddon(addonID, addon, ADDON_SERVICE, false) && addon && disabled)
|
||||
{
|
||||
+ CAddonInstaller::Get().CallOEWrapper(addonID, false);
|
||||
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(addon);
|
||||
if (service)
|
||||
service->Start();
|
||||
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
|
||||
index 8c9f241..d2f4610 100644
|
||||
--- a/xbmc/addons/AddonInstaller.cpp
|
||||
+++ b/xbmc/addons/AddonInstaller.cpp
|
||||
@@ -70,6 +70,13 @@ CAddonInstaller &CAddonInstaller::Get()
|
||||
return addonInstaller;
|
||||
}
|
||||
|
||||
+void CAddonInstaller::CallOEWrapper(const std::string& ID, bool disable)
|
||||
+{
|
||||
+ char cmd[255];
|
||||
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d", ID.c_str(), disable);
|
||||
+ system(cmd);
|
||||
+}
|
||||
+
|
||||
void CAddonInstaller::OnJobComplete(unsigned int jobID, bool success, CJob* job)
|
||||
{
|
||||
if (success)
|
||||
@@ -586,6 +593,7 @@ bool CAddonInstallJob::OnPreInstall()
|
||||
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(addon);
|
||||
if (service)
|
||||
service->Stop();
|
||||
+ CAddonInstaller::Get().CallOEWrapper(m_addon->ID(), true);
|
||||
CAddonMgr::Get().RemoveAddon(m_addon->ID()); // remove it
|
||||
return running;
|
||||
}
|
||||
@@ -713,6 +721,7 @@ void CAddonInstallJob::OnPostInstall(bool reloadAddon)
|
||||
AddonPtr addon;
|
||||
CAddonMgr::Get().GetAddon(m_addon->ID(), addon);
|
||||
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(addon);
|
||||
+ CAddonInstaller::Get().CallOEWrapper(m_addon->ID(), false);
|
||||
if (service)
|
||||
service->Start();
|
||||
}
|
||||
@@ -794,6 +803,7 @@ bool CAddonUnInstallJob::DoWork()
|
||||
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(m_addon);
|
||||
if (service)
|
||||
service->Stop();
|
||||
+ CAddonInstaller::Get().CallOEWrapper(m_addon->ID(), true);
|
||||
}
|
||||
|
||||
AddonPtr repoPtr = CAddonInstallJob::GetRepoForAddon(m_addon);
|
||||
diff --git a/xbmc/addons/AddonInstaller.h b/xbmc/addons/AddonInstaller.h
|
||||
index 39cab93..2938c7f 100644
|
||||
--- a/xbmc/addons/AddonInstaller.h
|
||||
+++ b/xbmc/addons/AddonInstaller.h
|
||||
@@ -29,6 +29,8 @@ class CAddonInstaller : public IJobCallback
|
||||
public:
|
||||
static CAddonInstaller &Get();
|
||||
|
||||
+ void CallOEWrapper(const std::string& ID, bool disable);
|
||||
+
|
||||
bool IsDownloading() const;
|
||||
void GetInstallList(ADDON::VECADDONS &addons) const;
|
||||
bool GetProgress(const CStdString &addonID, unsigned int &percent) const;
|
||||
--
|
||||
1.8.3.2
|
||||
|
@ -1,5 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
@ -20,26 +19,18 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="tvheadend.disabled"
|
||||
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||
|
||||
ADDON_BIN="tvheadend"
|
||||
|
||||
mkdir -p "$LOCKDIR"
|
||||
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
if [ ! -d /storage/.config/system.d ] ; then
|
||||
mkdir -p /storage/.config/system.d
|
||||
fi
|
||||
|
||||
if [ "$(pidof $ADDON_BIN)" ] ; then
|
||||
killall -q $ADDON_BIN
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof $ADDON_BIN)" ] ; then
|
||||
break
|
||||
fi
|
||||
usleep 200000
|
||||
done
|
||||
killall -q -9 $ADDON_BIN
|
||||
if [ -f "/storage/.xbmc/addons/$1/system.d/$1.service" ] ; then
|
||||
if [ $2 -eq 1 ] ; then
|
||||
# disable = true: cleanup
|
||||
systemctl stop "$1.service"
|
||||
systemctl disable "/storage/.xbmc/addons/$1/system.d/$1.service"
|
||||
else
|
||||
# disable = false: setup
|
||||
systemctl enable "/storage/.xbmc/addons/$1/system.d/$1.service"
|
||||
systemctl start "$1.service"
|
||||
fi
|
||||
fi
|
@ -0,0 +1,67 @@
|
||||
From 59f16d529fdcb4c5db53ce3bd289aa8148a13de4 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Tue, 17 Dec 2013 23:04:31 +0200
|
||||
Subject: [PATCH] [ffmpeg] - backport - avcodec/aacdec: default to non-wide 7.1
|
||||
in non-strict mode
|
||||
|
||||
Upstream commit e10fccf62a36e09b54ad6ea3d5fa6638f298d5ae, for
|
||||
http://trac.xbmc.org/ticket/13758.
|
||||
|
||||
AAC specification has 7.1(wide) as a default layout for 8-channel
|
||||
streams (channel config 7). However, at least Nero AAC encoder encodes
|
||||
non-wide 7.1 streams using the default channel config 7, mapping the
|
||||
side channels of the original audio stream to the second
|
||||
AAC_CHANNEL_FRONT pair in the AAC stream. Similarly, e.g. FAAD decodes
|
||||
the second AAC_CHANNEL_FRONT pair as side channels, therefore decoding
|
||||
the incorrect streams as if they were correct (and as the encoder
|
||||
intended).
|
||||
|
||||
FFmpeg currently decodes such files by-the-spec, i.e. after decoding the
|
||||
original front pair will be in AV_CH_FRONT_x_OF_CENTER and the original
|
||||
side pair will be in AV_CH_FRONT_x.
|
||||
|
||||
As actual intended 7.1(wide) streams are very rare while misencoded 7.1
|
||||
files actually exist in the wild, default to assuming a 7.1 layout was
|
||||
intended unless in strict mode.
|
||||
|
||||
Fixes playback of e.g. 8_Channel_ID.m4a in samples.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
||||
---
|
||||
libavcodec/aacdec.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
|
||||
index 7a871c4..12dbfcf 100644
|
||||
--- a/libavcodec/aacdec.c
|
||||
+++ b/libavcodec/aacdec.c
|
||||
@@ -505,6 +505,25 @@ static int set_default_channel_config(AVCodecContext *avctx,
|
||||
}
|
||||
*tags = tags_per_config[channel_config];
|
||||
memcpy(layout_map, aac_channel_layout_map[channel_config-1], *tags * sizeof(*layout_map));
|
||||
+
|
||||
+ /*
|
||||
+ * AAC specification has 7.1(wide) as a default layout for 8-channel streams.
|
||||
+ * However, at least Nero AAC encoder encodes 7.1 streams using the default
|
||||
+ * channel config 7, mapping the side channels of the original audio stream
|
||||
+ * to the second AAC_CHANNEL_FRONT pair in the AAC stream. Similarly, e.g. FAAD
|
||||
+ * decodes the second AAC_CHANNEL_FRONT pair as side channels, therefore decoding
|
||||
+ * the incorrect streams as if they were correct (and as the encoder intended).
|
||||
+ *
|
||||
+ * As actual intended 7.1(wide) streams are very rare, default to assuming a
|
||||
+ * 7.1 layout was intended.
|
||||
+ */
|
||||
+ if (channel_config == 7 && avctx->strict_std_compliance < FF_COMPLIANCE_STRICT) {
|
||||
+ av_log(avctx, AV_LOG_INFO, "Assuming an incorrectly encoded 7.1 channel layout"
|
||||
+ " instead of a spec-compliant 7.1(wide) layout, use -strict %d to decode"
|
||||
+ " according to the specification instead.\n", FF_COMPLIANCE_STRICT);
|
||||
+ layout_map[2][2] = AAC_CHANNEL_SIDE;
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.5
|
||||
|
@ -1,30 +0,0 @@
|
||||
#!/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
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/create_addon tvheadend
|
||||
|
||||
OEM_ADDON_DIR="$INSTALL/usr/lib/xbmc/addons/"
|
||||
|
||||
mkdir -p $OEM_ADDON_DIR
|
||||
cp -PR $BUILD/addons/tvheadend/service.multimedia.tvheadend $OEM_ADDON_DIR
|
@ -26,7 +26,7 @@ PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.busybox.net"
|
||||
PKG_URL="http://busybox.net/downloads/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_HOST=""
|
||||
PKG_DEPENDS_TARGET="hdparm dosfstools e2fsprogs speedcontrol zip pciutils usbutils parted"
|
||||
PKG_DEPENDS_TARGET="hdparm dosfstools e2fsprogs speedcontrol zip unzip pciutils usbutils parted"
|
||||
PKG_DEPENDS_INIT=""
|
||||
PKG_BUILD_DEPENDS_HOST="toolchain"
|
||||
PKG_BUILD_DEPENDS_TARGET="toolchain busybox:host"
|
||||
@ -200,7 +200,6 @@ makeinstall_target() {
|
||||
|
||||
post_install() {
|
||||
ROOT_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $ROOT_PASSWORD`"
|
||||
USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`"
|
||||
|
||||
echo "chmod 4755 $INSTALL/bin/busybox" >> $FAKEROOT_SCRIPT
|
||||
echo "chmod 000 $INSTALL/etc/shadow" >> $FAKEROOT_SCRIPT
|
||||
@ -209,9 +208,6 @@ post_install() {
|
||||
add_group root 0
|
||||
add_group users 100
|
||||
|
||||
add_user $USER_NAME "$USER_PWD" 1000 1000 "User" "/storage" "/bin/sh"
|
||||
add_group $USER_GROUP 1000
|
||||
|
||||
enable_service debug-shell.service
|
||||
enable_service shell.service
|
||||
enable_service show-version.service
|
||||
|
@ -189,8 +189,6 @@ post_makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/config
|
||||
cp -PR $PKG_DIR/config/* $INSTALL/usr/config
|
||||
|
||||
rm -rf $INSTALL/etc/systemd/system
|
||||
ln -sf /storage/.config/system.d $INSTALL/etc/systemd/system
|
||||
rm -rf $INSTALL/etc/modules-load.d
|
||||
ln -sf /storage/.config/modules-load.d $INSTALL/etc/modules-load.d
|
||||
rm -rf $INSTALL/etc/sysctl.d
|
||||
|
@ -0,0 +1,57 @@
|
||||
From 3bda4f376063971ad068f9c26edbec9029cfa7e6 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Thu, 19 Dec 2013 11:21:13 +0200
|
||||
Subject: [PATCH] move /etc/systemd/system to /storage/.config/system.d
|
||||
|
||||
---
|
||||
Makefile.am | 4 ++--
|
||||
Makefile.in | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 8d9c587..93e9c6d 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -144,7 +144,7 @@ udevlibexec_PROGRAMS =
|
||||
AM_CPPFLAGS = \
|
||||
-include $(top_builddir)/config.h \
|
||||
-DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \
|
||||
- -DSYSTEM_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/system\" \
|
||||
+ -DSYSTEM_CONFIG_UNIT_PATH=\"/storage/.config/system.d\" \
|
||||
-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
|
||||
-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
|
||||
-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
|
||||
@@ -4209,7 +4209,7 @@ substitutions = \
|
||||
'|SYSTEMCTL=$(rootbindir)/systemctl|' \
|
||||
'|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
|
||||
'|pkgsysconfdir=$(pkgsysconfdir)|' \
|
||||
- '|SYSTEM_CONFIG_UNIT_PATH=$(pkgsysconfdir)/system|' \
|
||||
+ '|SYSTEM_CONFIG_UNIT_PATH=/storage/.config/system.d|' \
|
||||
'|USER_CONFIG_UNIT_PATH=$(pkgsysconfdir)/user|' \
|
||||
'|pkgdatadir=$(pkgdatadir)|' \
|
||||
'|systemunitdir=$(systemunitdir)|' \
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 6f3d475..66c4c22 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -3744,7 +3744,7 @@ manual_tests = test-engine test-ns test-loopback test-hostname \
|
||||
AM_CPPFLAGS = \
|
||||
-include $(top_builddir)/config.h \
|
||||
-DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \
|
||||
- -DSYSTEM_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/system\" \
|
||||
+ -DSYSTEM_CONFIG_UNIT_PATH=\"/storage/.config/system.d\" \
|
||||
-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
|
||||
-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
|
||||
-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
|
||||
@@ -6269,7 +6269,7 @@ substitutions = \
|
||||
'|SYSTEMCTL=$(rootbindir)/systemctl|' \
|
||||
'|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
|
||||
'|pkgsysconfdir=$(pkgsysconfdir)|' \
|
||||
- '|SYSTEM_CONFIG_UNIT_PATH=$(pkgsysconfdir)/system|' \
|
||||
+ '|SYSTEM_CONFIG_UNIT_PATH=/storage/.config/system.d|' \
|
||||
'|USER_CONFIG_UNIT_PATH=$(pkgsysconfdir)/user|' \
|
||||
'|pkgdatadir=$(pkgdatadir)|' \
|
||||
'|systemunitdir=$(systemunitdir)|' \
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -20,15 +20,6 @@
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# User to integrate in the target system
|
||||
USER_NAME="openelec"
|
||||
|
||||
# User group to integrate in the target system
|
||||
USER_GROUP="openelec"
|
||||
|
||||
# User password to integrate in the target system
|
||||
USER_PASSWORD="openelec"
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case $TARGET_ARCH in
|
||||
@ -330,7 +321,7 @@
|
||||
TESTING="no"
|
||||
|
||||
# OEM packages for OEM's (yes / no)
|
||||
OEM_SUPPORT="yes"
|
||||
OEM_SUPPORT="no"
|
||||
|
||||
# build and install nano text editor (yes / no)
|
||||
NANO_EDITOR="yes"
|
||||
|
@ -20,15 +20,6 @@
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# User to integrate in the target system
|
||||
USER_NAME="openelec"
|
||||
|
||||
# User group to integrate in the target system
|
||||
USER_GROUP="openelec"
|
||||
|
||||
# User password to integrate in the target system
|
||||
USER_PASSWORD="openelec"
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case $TARGET_ARCH in
|
||||
|
@ -20,15 +20,6 @@
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# User to integrate in the target system
|
||||
USER_NAME="openelec"
|
||||
|
||||
# User group to integrate in the target system
|
||||
USER_GROUP="openelec"
|
||||
|
||||
# User password to integrate in the target system
|
||||
USER_PASSWORD="openelec"
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case $TARGET_ARCH in
|
||||
|
@ -20,15 +20,6 @@
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# User to integrate in the target system
|
||||
USER_NAME="openelec"
|
||||
|
||||
# User group to integrate in the target system
|
||||
USER_GROUP="openelec"
|
||||
|
||||
# User password to integrate in the target system
|
||||
USER_PASSWORD="openelec"
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case $TARGET_ARCH in
|
||||
|
@ -20,15 +20,6 @@
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# User to integrate in the target system
|
||||
USER_NAME="openelec"
|
||||
|
||||
# User group to integrate in the target system
|
||||
USER_GROUP="openelec"
|
||||
|
||||
# User password to integrate in the target system
|
||||
USER_PASSWORD="openelec"
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case $TARGET_ARCH in
|
||||
|
Loading…
x
Reference in New Issue
Block a user