diff --git a/packages/addons/service/minisatip/changelog.txt b/packages/addons/service/minisatip/changelog.txt new file mode 100644 index 0000000000..ed5784c55b --- /dev/null +++ b/packages/addons/service/minisatip/changelog.txt @@ -0,0 +1,2 @@ +100 +- Initial Release diff --git a/packages/addons/service/minisatip/icon/icon.png b/packages/addons/service/minisatip/icon/icon.png new file mode 100644 index 0000000000..bd9dfaa6a4 Binary files /dev/null and b/packages/addons/service/minisatip/icon/icon.png differ diff --git a/packages/addons/service/minisatip/package.mk b/packages/addons/service/minisatip/package.mk new file mode 100644 index 0000000000..9446c3ee62 --- /dev/null +++ b/packages/addons/service/minisatip/package.mk @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="minisatip" +PKG_VERSION="110e6e99bc6c823b2a2c30ea02c58c91f59d077e" +PKG_SHA256="8ac997ae70d80bc50603609baf9a86253cf525f179c71fada5320301abaea902" +PKG_VERSION_NUMBER="0.7.16" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/catalinii/minisatip" +PKG_URL="https://github.com/catalinii/minisatip/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain dvb-apps libdvbcsa libxml2" +PKG_SECTION="service" +PKG_SHORTDESC="minisatip: a Sat>IP streaming server for Linux" +PKG_LONGDESC="minisatip($PKG_VERSION_NUMBER): is a Sat>IP streaming server for Linux supporting DVB-C, DVB-S/S2, DVB-T/T2, ATSC and ISDB-T" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="Minisatip" +PKG_ADDON_TYPE="xbmc.service" + +PKG_CONFIGURE_OPTS_TARGET="--enable-static \ + --disable-netcv \ + --enable-dvbca \ + --enable-dvbaes \ + --enable-dvbcsa \ + --with-xml2=$(get_build_dir libxml2)" + +pre_configure_target() { + cd $PKG_BUILD + rm -rf .$TARGET_NAME + + # enables Common Interface (DVBEN50221) + CFLAGS="$CFLAGS -I$(get_build_dir dvb-apps)/lib" + LDFLAGS="$LDFLAGS -L$(get_build_dir dvb-apps)/lib/libdvbapi -L$(get_build_dir dvb-apps)/lib/libdvben50221 -L$(get_build_dir dvb-apps)/lib/libucsi" +} + +makeinstall_target() { + : +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_BUILD/minisatip $ADDON_BUILD/$PKG_ADDON_ID/bin + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/webif + cp -PR $PKG_BUILD/html/* $ADDON_BUILD/$PKG_ADDON_ID/webif +} diff --git a/packages/addons/service/minisatip/source/bin/minisatip.start b/packages/addons/service/minisatip/source/bin/minisatip.start new file mode 100644 index 0000000000..0c6987a3f9 --- /dev/null +++ b/packages/addons/service/minisatip/source/bin/minisatip.start @@ -0,0 +1,64 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +. /etc/profile + +oe_setup_addon service.minisatip + +chmod a+x $ADDON_DIR/bin/* + +# wait for dvb card +if [ "$WAIT_FOR_FEINIT" = "true" ]; then + while [ true ] ; do + if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ]; then + break + fi + sleep 1 + done +fi + +# sleep for x seconds +if [ "$WORKAROUND_SLEEP" = "true" ]; then + sleep $WORKAROUND_SLEEP_TIME +fi + +## options +# simulate x adapters +if [ "$MINISATIP_TESTMODE" = "true" ]; then + MINISATIP_ARG_TEST="-a 2:2:2" +fi + +# debug log +if [ "$MINISATIP_DEBUG" = "true" ]; then + MINISATIP_ARG="-l -l -l" +fi + +# RTSP over TCP instead UDP +if [ "$MINISATIP_SATIP_TCP" = "true" ]; then + MINISATIP_ARG="$MINISATIP_ARG -O" +fi + +# clean the PSI from all CA information +if [ "$MINISATIP_CLEANPSI" = "true" ]; then + MINISATIP_ARG="$MINISATIP_ARG -t" +fi + +# port for listening for rtsp requests +if [ "$MINISATIP_RTSP_PORT" != "554" ]; then + MINISATIP_ARG="$MINISATIP_ARG -y $MINISATIP_RTSP_PORT" +fi + +# specify the hostname and port for the dvbapi server (oscam) +if [ "$MINISATIP_CLEANPSI" = "true" ]; then + MINISATIP_ARG="$MINISATIP_ARG -o ${MINISATIP_DVBAPI_IP}:${MINISATIP_DVBAPI_PORT}" +fi + +if [ "$MINISATIP_STARTUP" = "true" ]; then + echo "Minisatip was started with this settings: ${MINISATIP_STARTUP_ARGS}" > $ADDON_LOG_FILE + exec $ADDON_DIR/bin/minisatip -f ${MINISATIP_ARG_TEST} -x ${MINISATIP_WEBPORT} -R /storage/.kodi/addons/service.minisatip/webif ${MINISATIP_STARTUP_ARGS} >> $ADDON_LOG_FILE +else + echo "Minisatip was started with this settings: ${MINISATIP_ARG}" > $ADDON_LOG_FILE + $ADDON_DIR/bin/minisatip -f ${MINISATIP_ARG_TEST} -x ${MINISATIP_WEBPORT} -R /storage/.kodi/addons/service.minisatip/webif ${MINISATIP_ARG} >> $ADDON_LOG_FILE +fi diff --git a/packages/addons/service/minisatip/source/default.py b/packages/addons/service/minisatip/source/default.py new file mode 100644 index 0000000000..706475996f --- /dev/null +++ b/packages/addons/service/minisatip/source/default.py @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +import subprocess +import xbmc +import xbmcaddon + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + +if __name__ == "__main__": + Monitor().waitForAbort() diff --git a/packages/addons/service/minisatip/source/resources/language/English/strings.po b/packages/addons/service/minisatip/source/resources/language/English/strings.po new file mode 100644 index 0000000000..02a8346856 --- /dev/null +++ b/packages/addons/service/minisatip/source/resources/language/English/strings.po @@ -0,0 +1,82 @@ +# Kodi Media Center language file +# Addon Name: minisatip +# Addon id: service.minisatip +# Addon Provider: Team LibreELEC +msgid "" +msgstr "" + +msgctxt "#30000" +msgid "Hardware" +msgstr "" + +msgctxt "#30001" +msgid "Wait for frontend initialization" +msgstr "" + +msgctxt "#30002" +msgid "Number of adapters to wait for" +msgstr "" + +msgctxt "#30003" +msgid "Unload DVB modules before suspend" +msgstr "" + +msgctxt "#30004" +msgid "Delay the start of Minisatip" +msgstr "" + +msgctxt "#30005" +msgid "time (s)" +msgstr "" + +msgctxt "#30006" +msgid "Minisatip" +msgstr "" + +msgctxt "#30007" +msgid "Use RTSP over TCP for data transport" +msgstr "" + +msgctxt "#30008" +msgid "Clean the PSI from all CA information" +msgstr "" + +msgctxt "#30009" +msgid "Specify the hostname for the dvbapi server (OScam)" +msgstr "" + +msgctxt "#30010" +msgid "Specify the port for the dvbapi server (OScam)" +msgstr "" + +msgctxt "#30011" +msgid "Port for listening for RTSP requests" +msgstr "" + +msgctxt "#30012" +msgid "Webui Port" +msgstr "" + +msgctxt "#30013" +msgid "Debugging" +msgstr "" + +msgctxt "#30014" +msgid "Debug Log" +msgstr "" + +msgctxt "#30015" +msgid "Simulate DVB adapters" +msgstr "" + +msgctxt "#30016" +msgid "Advanced Options" +msgstr "" + +msgctxt "#30017" +msgid "Manually enter startup command-line" +msgstr "" + +msgctxt "#30018" +msgid "Command-line" +msgstr "" diff --git a/packages/addons/service/minisatip/source/resources/settings.xml b/packages/addons/service/minisatip/source/resources/settings.xml new file mode 100644 index 0000000000..318fc9e0af --- /dev/null +++ b/packages/addons/service/minisatip/source/resources/settings.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/addons/service/minisatip/source/settings-default.xml b/packages/addons/service/minisatip/source/settings-default.xml new file mode 100644 index 0000000000..30a46dcd2b --- /dev/null +++ b/packages/addons/service/minisatip/source/settings-default.xml @@ -0,0 +1,17 @@ + + false + false + 127.0.0.1 + 9000 + 554 + false + false + + false + 9999 + 1 + + false + false + 1 + diff --git a/packages/addons/service/minisatip/source/sleep.d/minisatip.power b/packages/addons/service/minisatip/source/sleep.d/minisatip.power new file mode 100644 index 0000000000..153eb73a7a --- /dev/null +++ b/packages/addons/service/minisatip/source/sleep.d/minisatip.power @@ -0,0 +1,25 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +. /etc/profile + +oe_setup_addon service.minisatip + +SERVICE="service.minisatip" + +if [ "$RESTART_ON_RESUME" == "true" ] ; then + case "$1" in + pre) + if systemctl is-active "$SERVICE" &>/dev/null ; then + systemctl stop "$SERVICE" + fi + ;; + post) + if systemctl is-enabled "$SERVICE" &>/dev/null ; then + systemctl start "$SERVICE" + fi + ;; + esac +fi diff --git a/packages/addons/service/minisatip/source/system.d/service.minisatip.service b/packages/addons/service/minisatip/source/system.d/service.minisatip.service new file mode 100644 index 0000000000..a962f4a2bc --- /dev/null +++ b/packages/addons/service/minisatip/source/system.d/service.minisatip.service @@ -0,0 +1,13 @@ +[Unit] +Description=minisatip +After=network-online.service + +[Service] +ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.minisatip/bin/minisatip.start" +TimeoutStopSec=2 +Restart=always +RestartSec=2 +StartLimitInterval=0 + +[Install] +WantedBy=kodi.target