mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 14:37:59 +00:00
commit
9e059c4e5f
@ -0,0 +1,50 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-ddci2"
|
||||
PKG_VERSION="05dd988"
|
||||
PKG_SHA256="b8ed2787e9140eb00a68397eaeb14862ba88a6e73480dc3220a098faffb14833"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/jasmin-j/vdr-plugin-ddci2"
|
||||
PKG_URL="https://github.com/jasmin-j/vdr-plugin-ddci2/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="Support for stand alone CI by Digital Devices."
|
||||
PKG_LONGDESC="Support for stand alone CI by Digital Devices."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
export PKG_CONFIG_PATH=$VDR_DIR:$PKG_CONFIG_PATH
|
||||
export CPLUS_INCLUDE_PATH=$VDR_DIR/include
|
||||
|
||||
make \
|
||||
LIBDIR="." \
|
||||
LOCDIR="./locale" \
|
||||
all
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
VDR_APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' $VDR_DIR/config.h`
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
@ -1,19 +1,20 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dummydevice"
|
||||
@ -26,8 +27,9 @@ PKG_URL="http://phivdr.dyndns.org/vdr/vdr-dummydevice/${PKG_NAME/-plugin/}-$PKG_
|
||||
PKG_SOURCE_DIR="dummydevice-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr dummydevice plugin"
|
||||
PKG_LONGDESC="vdr dummydevice plugin"
|
||||
PKG_SHORTDESC="This plugin can be used to run vdr as recording server without any output devices."
|
||||
PKG_LONGDESC="This plugin can be used to run vdr as recording server without any output devices."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -46,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination ${LIB_NAME}.so ${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,37 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="d7c7587"
|
||||
PKG_SHA256="2b85a086aedf55246c5e8ee7d41648318cbb77b49d00e638d20b0737e33d9451"
|
||||
PKG_VERSION="7d51cc4"
|
||||
PKG_SHA256="b16840574802581950343942559797aeccbc4a8fc216901ad0cea42f420bfd7c"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/manio/vdr-plugin-dvbapi"
|
||||
PKG_URL="https://github.com/manio/vdr-plugin-dvbapi/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr libdvbcsa"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
PKG_SHORTDESC="VDR dvbapi plugin for use with OSCam"
|
||||
PKG_LONGDESC="VDR dvbapi plugin for use with OSCam"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -51,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d18b016..278af2b 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -156,7 +156,7 @@ libdvbapi-dvbufs9xx.so: device-ufs9xx.o
|
||||
|
@ -1,27 +0,0 @@
|
||||
From 7d51cc457823156d446d06c6ae40f850958fa735 Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
||||
Date: Sat, 25 Nov 2017 18:57:08 +0100
|
||||
Subject: [PATCH] Fix compilation for kernels >= 4.14
|
||||
|
||||
Closes #122
|
||||
---
|
||||
CA.h | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/CA.h b/CA.h
|
||||
index 7130be6..019cd1c 100644
|
||||
--- a/CA.h
|
||||
+++ b/CA.h
|
||||
@@ -9,4 +9,12 @@ typedef struct ca_descr_aes {
|
||||
unsigned char cw[16];
|
||||
} ca_descr_aes_t;
|
||||
|
||||
+#ifndef CA_SET_PID /* removed in kernel 4.14 */
|
||||
+typedef struct ca_pid {
|
||||
+ unsigned int pid;
|
||||
+ int index; /* -1 == disable */
|
||||
+} ca_pid_t;
|
||||
+#define CA_SET_PID _IOW('o', 135, struct ca_pid)
|
||||
#endif
|
||||
+
|
||||
+#endif // __CA_H
|
@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-eepg"
|
||||
PKG_VERSION="9cd9a75"
|
||||
PKG_SHA256="b5c21e083a0d78251028de55dfb59b47df9db88cbbb811f39e913c2fb4e63ba6"
|
||||
PKG_VERSION="584d766"
|
||||
PKG_SHA256="0ad19af6bcfb5f7de05814dfcb4ab18bb4f705fdbe60b11ab7dbf72cf0d85231"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-eepg"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-eepg.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-eepg/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-plugin-eepg"
|
||||
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels. This EEPG data is transmitted in a non-standard format on a non-standard PID."
|
||||
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-epgfixer"
|
||||
PKG_VERSION="1ad4aaf"
|
||||
PKG_SHA256="032f0a0c238208e87c295d5fec04cdcf0fffe041e2245bc678811e1072a95b62"
|
||||
PKG_SHA256="b109c1040e54a2499c1d4c650d7f02cdc7b647af2133839af227a8496c58281e"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-epgfixer"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-epgfixer.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-epgfixer/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr pcre"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-plugin-epgfixer"
|
||||
PKG_SHORTDESC="Plugin for modifying EPG data using regular expressions."
|
||||
PKG_LONGDESC="Plugin for modifying EPG data using regular expressions."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
diff -Naur vdr-plugin-epgfixer-1ad4aaf/Makefile vdr-plugin-epgfixer-1ad4aaf.patch/Makefile
|
||||
--- vdr-plugin-epgfixer-1ad4aaf/Makefile 2015-01-01 11:15:50.000000000 +0100
|
||||
+++ vdr-plugin-epgfixer-1ad4aaf.patch/Makefile 2016-01-07 04:40:37.742655989 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -70,8 +70,8 @@
|
||||
OBJS = $(PLUGIN).o blacklist.o charset.o config.o epgclone.o epghandler.o regexp.o setup_menu.o tools.o
|
||||
|
@ -0,0 +1,132 @@
|
||||
patches taken from https://projects.vdr-developer.org/projects/plg-epgfixer/issues
|
||||
|
||||
From: glenvt18 <glenvt18@gmail.com>
|
||||
Date: Tue, 24 May 2016 02:36:55 +0300
|
||||
Subject: [PATCH 1/2] Fix compiling against VDR >= 2.3.1
|
||||
|
||||
--- a/epgclone.c
|
||||
+++ b/epgclone.c
|
||||
@@ -49,9 +49,16 @@ void cEpgClone::CloneEvent(cEvent *Source, cEvent *Dest) {
|
||||
Dest->SetSeen();
|
||||
tChannelID channelID;
|
||||
if (dest_num) {
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+ const cChannel *dest_chan = Channels->GetByNumber(dest_num);
|
||||
+ if (dest_chan)
|
||||
+ channelID = Channels->GetByNumber(dest_num)->GetChannelID();
|
||||
+#else
|
||||
cChannel *dest_chan = Channels.GetByNumber(dest_num);
|
||||
if (dest_chan)
|
||||
channelID = Channels.GetByNumber(dest_num)->GetChannelID();
|
||||
+#endif
|
||||
else
|
||||
channelID = tChannelID::InvalidID;
|
||||
}
|
||||
diff --git a/setup_menu.c b/setup_menu.c
|
||||
index 8b60870..fcba6b1 100644
|
||||
--- a/setup_menu.c
|
||||
+++ b/setup_menu.c
|
||||
@@ -264,9 +264,21 @@ eOSState cMenuSetupEpgfixer::ProcessKey(eKeys Key)
|
||||
break;
|
||||
case kBlue:
|
||||
Skins.Message(mtInfo, tr("Clearing EPG data..."));
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ {
|
||||
+ LOCK_TIMERS_WRITE;
|
||||
+ LOCK_SCHEDULES_WRITE;
|
||||
+ for (cTimer *Timer = Timers->First(); Timer; Timer = Timers->Next(Timer))
|
||||
+ Timer->SetEvent(NULL);
|
||||
+ for (cSchedule *Schedule = Schedules->First(); Schedule; Schedule = Schedules->Next(Schedule))
|
||||
+ Schedule->Cleanup(INT_MAX);
|
||||
+ }
|
||||
+ cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
+#else
|
||||
cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
if (cSchedules::ClearAll())
|
||||
cEitFilter::SetDisableUntil(time(NULL) + 10);
|
||||
+#endif
|
||||
Skins.Message(mtInfo, NULL);
|
||||
state = osContinue;
|
||||
break;
|
||||
diff --git a/tools.c b/tools.c
|
||||
index 9c9133d..35c4b53 100644
|
||||
--- a/tools.c
|
||||
+++ b/tools.c
|
||||
@@ -463,14 +463,26 @@ cAddEventThread::~cAddEventThread(void)
|
||||
void cAddEventThread::Action(void)
|
||||
{
|
||||
SetPriority(19);
|
||||
- while (Running() && !LastHandleEvent.TimedOut()) {
|
||||
+ for (; Running() && !LastHandleEvent.TimedOut(); cCondWait::SleepMs(10)) {
|
||||
+ if (list->First() == NULL)
|
||||
+ continue;
|
||||
cAddEventListItem *e = NULL;
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ cStateKey StateKey;
|
||||
+ cSchedules *schedules = cSchedules::GetSchedulesWrite(StateKey, 10);
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+#else
|
||||
cSchedulesLock SchedulesLock(true, 10);
|
||||
cSchedules *schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
|
||||
+#endif
|
||||
Lock();
|
||||
while (schedules && (e = list->First()) != NULL) {
|
||||
tChannelID chanid = e->GetChannelID();
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ const cChannel *chan = Channels->GetByChannelID(chanid);
|
||||
+#else
|
||||
cChannel *chan = Channels.GetByChannelID(chanid);
|
||||
+#endif
|
||||
if (!chan) {
|
||||
error("Destination channel %s not found for cloning!", *chanid.ToString());
|
||||
}
|
||||
@@ -485,7 +497,10 @@ void cAddEventThread::Action(void)
|
||||
list->Del(e);
|
||||
}
|
||||
Unlock();
|
||||
- cCondWait::SleepMs(10);
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ if (schedules)
|
||||
+ StateKey.Remove();
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -553,7 +568,12 @@ bool cListItem::IsActive(tChannelID ChannelID)
|
||||
bool active = false;
|
||||
if (numchannels > 0) {
|
||||
int i = 0;
|
||||
+#if VDRVERSNUM >= 20301
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+ int channel_number = Channels->GetByChannelID(ChannelID)->Number();
|
||||
+#else
|
||||
int channel_number = Channels.GetByChannelID(ChannelID)->Number();
|
||||
+#endif
|
||||
while (i < numchannels) {
|
||||
if ((channel_number == GetChannelNum(i)) ||
|
||||
(GetChannelID(i) && (ChannelID == *GetChannelID(i)))) {
|
||||
|
||||
From 12db9aadf7a05cae21bd7d75882b8883ac36205d Mon Sep 17 00:00:00 2001
|
||||
From: glenvt18 <glenvt18@gmail.com>
|
||||
Date: Thu, 18 May 2017 06:03:32 +0300
|
||||
Subject: [PATCH 2/2] Make compatible with VDR 2.3.4
|
||||
|
||||
---
|
||||
epghandler.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/epghandler.h b/epghandler.h
|
||||
index de090af..bf65760 100644
|
||||
--- a/epghandler.h
|
||||
+++ b/epghandler.h
|
||||
@@ -15,6 +15,9 @@ class cEpgfixerEpgHandler : public cEpgHandler
|
||||
{
|
||||
public:
|
||||
cEpgfixerEpgHandler(void) {};
|
||||
+#if VDRVERSNUM >= 20304
|
||||
+ virtual bool BeginSegmentTransfer(const cChannel *Channel, bool Dummy) { return true; }
|
||||
+#endif
|
||||
virtual bool HandleEvent(cEvent *Event);
|
||||
virtual bool IgnoreChannel(const cChannel *Channel);
|
||||
virtual bool FixEpgBugs(cEvent *Event);
|
@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-epgsearch"
|
||||
PKG_VERSION="0b09f90"
|
||||
PKG_SHA256="2f50a784a01ef4c7c868b92b63a82b96296247eb148d757b31514a7887ebb534"
|
||||
PKG_VERSION="c7c02e2"
|
||||
PKG_SHA256="d8096c261cf94653f7487e7f89c9d38d8c2a5c27a766816b77fe0c49b4a82208"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://winni.vdr-developer.org/epgsearch/"
|
||||
PKG_URL="https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-epgsearch/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-epgsearch"
|
||||
PKG_LONGDESC="vdr-epgsearch"
|
||||
PKG_SHORTDESC="EPGSearch is a plugin for the Video-Disc-Recorder (VDR)."
|
||||
PKG_LONGDESC="EPGSearch is a plugin for the Video-Disc-Recorder (VDR)."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
diff -Naur vdr-epgsearch-29c174a/Makefile vdr-epgsearch-29c174a.patch/Makefile
|
||||
--- vdr-epgsearch-29c174a/Makefile 2014-01-18 16:53:11.000000000 +0100
|
||||
+++ vdr-epgsearch-29c174a.patch/Makefile 2016-01-07 04:47:33.004326981 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -130,9 +130,8 @@
|
||||
OBJS = afuzzy.o blacklist.o changrp.o confdloader.o conflictcheck.o conflictcheck_thread.o distance.o $(PLUGIN).o epgsearchcats.o epgsearchcfg.o epgsearchext.o epgsearchsetup.o epgsearchsvdrp.o epgsearchtools.o mail.o md5.o menu_announcelist.o menu_blacklistedit.o menu_blacklists.o menu_commands.o menu_conflictcheck.o menu_deftimercheckmethod.o menu_dirselect.o menu_event.o menu_favorites.o menu_main.o menu_myedittimer.o menu_quicksearch.o menu_recsdone.o menu_search.o menu_searchactions.o menu_searchedit.o menu_searchresults.o menu_searchtemplate.o menu_switchtimers.o menu_templateedit.o menu_timersdone.o menu_whatson.o noannounce.o pending_notifications.o rcfile.o recdone.o recstatus.o searchtimer_thread.o services.o switchtimer.o switchtimer_thread.o templatefile.o timer_thread.o timerdone.o timerstatus.o uservars.o varparser.o
|
||||
|
||||
|
@ -1,14 +1,6 @@
|
||||
From 61c795e71df00f4d3c22d2be405ceb0eb0e0e49c Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 22 Nov 2013 21:45:56 +0200
|
||||
Subject: [PATCH] don't build unused plugins
|
||||
|
||||
---
|
||||
Makefile | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 118e379..5f15ebe 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -16,9 +16,9 @@
|
||||
@ -24,6 +16,4 @@ index 118e379..5f15ebe 100644
|
||||
|
||||
### edit this to '0' if you don't want epgsearch to auto config itself
|
||||
AUTOCONFIG=1
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
|
@ -1,24 +1,25 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-iptv"
|
||||
PKG_VERSION="2226be2"
|
||||
PKG_SHA256="8c8297a6834cc7104901b256a4b31dfb25f3956ce3c4837c7ffb8ddf0507d09b"
|
||||
PKG_VERSION="0fe1cb7"
|
||||
PKG_SHA256="34e5c950d6150bbf98ca733a216f67ff56e078dd1db511aee0edc026e431ee6f"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/iptv/"
|
||||
@ -27,6 +28,7 @@ PKG_DEPENDS_TARGET="toolchain vdr curl"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-iptv: an IPTV plugin for the Video Disk Recorder (VDR)"
|
||||
PKG_LONGDESC="vdr-iptv is an IPTV plugin for the Video Disk Recorder (VDR)"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
diff -Naur iptv-2.2.1/Makefile iptv-2.2.1.patch/Makefile
|
||||
--- iptv-2.2.1/Makefile 2015-04-04 03:20:00.000000000 +0200
|
||||
+++ iptv-2.2.1.patch/Makefile 2016-01-07 07:37:31.037078104 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
### Libraries
|
||||
|
@ -1,33 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-live"
|
||||
PKG_VERSION="0.3.0"
|
||||
PKG_SHA256="c200042e51393c247be97e7f4667a1f3f06319d5c8e538adca32fdfac8d178da"
|
||||
PKG_VERSION="e582514"
|
||||
PKG_SHA256="74deb2ca43ffb5779b3f9ff6f34c8b53898a226fcf92605d7ede0401cb62601c"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://live.vdr-developer.org/en/index.php"
|
||||
PKG_URL="http://live.vdr-developer.org/downloads/${PKG_NAME/-plugin/}-${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_DIR="live-${PKG_VERSION}"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-live/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-${PKG_VERSION}*"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr tntnet pcre:host pcre"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-live: the LIVE Interactive VDR Environment/"
|
||||
PKG_LONGDESC="vdr-live allows a comfortable operation of VDR and some of its plugins trough a web interface"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
@ -35,18 +37,15 @@ pre_configure_target() {
|
||||
export LDFLAGS="$LDFLAGS -fPIC -L$SYSROOT_PREFIX/usr/lib/iconv"
|
||||
}
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
export CPLUS_INCLUDE_PATH=$VDR_DIR/include
|
||||
VDR_APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' $VDR_DIR/config.h`
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
make VDRDIR=$VDR_DIR \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
}
|
||||
|
@ -1,290 +0,0 @@
|
||||
commit 042724e30d5690ab67a6c04aea48a16b9a3b085b
|
||||
Author: Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>
|
||||
Date: Fri May 3 01:37:41 2013 +0200
|
||||
|
||||
Make LIVE compile and work with Tntnet and cxxtools version 2.2.
|
||||
Thanks to Tommi Mäkitalo for his help on resolving the issues.
|
||||
This problem was reported by Martin Gansser and by the user 'varas' in
|
||||
the bugtracker as bug #1351. This commit fixes that bug.
|
||||
|
||||
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
|
||||
index 51018bb..80f145b 100644
|
||||
--- a/pages/recordings.ecpp
|
||||
+++ b/pages/recordings.ecpp
|
||||
@@ -205,7 +205,11 @@ for (recIter = recItems.begin(); recIter != recItems.end(); ++recIter) {
|
||||
<& rec_item_dir name=(recItem->Name()) level=(level) &>
|
||||
<%cpp>
|
||||
#if TNT_HAS_QUERYPARAMS
|
||||
+#if TNT_QUERYPARAMS_NO_BOOL
|
||||
+ tnt::QueryParams recItemParams(qparam);
|
||||
+#else
|
||||
tnt::QueryParams recItemParams(qparam, false);
|
||||
+#endif
|
||||
#else
|
||||
cxxtools::QueryParams recItemParams(qparam, false);
|
||||
#endif
|
||||
diff --git a/tntconfig.cpp b/tntconfig.cpp
|
||||
index 3a1fd14..3325776 100644
|
||||
--- a/tntconfig.cpp
|
||||
+++ b/tntconfig.cpp
|
||||
@@ -3,7 +3,13 @@
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <stdexcept>
|
||||
+#include "tntfeatures.h"
|
||||
+#if TNT_LOG_SERINFO
|
||||
+#include <cxxtools/log.h>
|
||||
+#include <cxxtools/xml/xmldeserializer.h>
|
||||
+#else
|
||||
#include <cxxtools/loginit.h>
|
||||
+#endif
|
||||
#include <tnt/sessionscope.h>
|
||||
#include <tnt/httpreply.h>
|
||||
#include <vdr/config.h>
|
||||
@@ -181,19 +187,67 @@ namespace vdrlive {
|
||||
#endif
|
||||
|
||||
#if TNT_CONFIG_INTERNAL
|
||||
+ namespace {
|
||||
+ std::string GetResourcePath()
|
||||
+ {
|
||||
+#if APIVERSNUM > 10729
|
||||
+ string resourceDir(Plugin::GetResourceDirectory());
|
||||
+ return resourceDir;
|
||||
+#else
|
||||
+ string configDir(Plugin::GetConfigDirectory());
|
||||
+ return configDir;
|
||||
+#endif
|
||||
+ }
|
||||
+
|
||||
+ void MapUrl(tnt::Tntnet & app, const char *rule, const char * component, std::string const & instPath, const char * pathInfo, const char * mime_type)
|
||||
+ {
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ tnt::Mapping::args_type argMap;
|
||||
+ argMap.insert(std::make_pair("mime-type", mime_type));
|
||||
+#endif
|
||||
+ app.mapUrl(rule, component)
|
||||
+ .setPathInfo(instPath + pathInfo)
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ .setArgs(argMap);
|
||||
+#else
|
||||
+ .pushArg(mime_type);
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
void TntConfig::Configure(tnt::Tntnet& app) const
|
||||
{
|
||||
string const configDir(Plugin::GetConfigDirectory());
|
||||
-#if APIVERSNUM > 10729
|
||||
- string const resourceDir(Plugin::GetResourceDirectory());
|
||||
-#endif
|
||||
|
||||
+#if TNT_LOG_SERINFO
|
||||
+ cxxtools::SerializationInfo si;
|
||||
+ std::istringstream logXmlConf(
|
||||
+ "<logging>\n"
|
||||
+ " <rootlogger>" + LiveSetup().GetTntnetLogLevel() + "</rootlogger>\n"
|
||||
+ " <loggers>\n"
|
||||
+ " <logger>\n"
|
||||
+ " <category>cxxtools</category>\n"
|
||||
+ " <level>" + LiveSetup().GetTntnetLogLevel() + "</level>\n"
|
||||
+ " </logger>\n"
|
||||
+ " <logger>\n"
|
||||
+ " <category>tntnet</category>\n"
|
||||
+ " <level>" + LiveSetup().GetTntnetLogLevel() + "</level>\n"
|
||||
+ " </logger>\n"
|
||||
+ " </loggers>\n"
|
||||
+ "</logging>\n"
|
||||
+ );
|
||||
+ cxxtools::xml::XmlDeserializer d(logXmlConf);
|
||||
+ d.deserialize(si);
|
||||
+ log_init(si);
|
||||
+#else
|
||||
std::istringstream logConf(
|
||||
"rootLogger=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
"logger.tntnet=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
"logger.cxxtools=" + LiveSetup().GetTntnetLogLevel() + "\n"
|
||||
);
|
||||
+
|
||||
log_init(logConf);
|
||||
+#endif
|
||||
|
||||
// +++ CAUTION +++ CAUTION +++ CAUTION +++ CAUTION +++ CAUTION +++
|
||||
// ------------------------------------------------------------------------
|
||||
@@ -229,13 +283,12 @@ namespace vdrlive {
|
||||
|
||||
// the following selects the theme specific 'theme.css' file
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/themes/([^/]*)/css.*/(.+\\.css)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/themes/$1/css/$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/themes/$1/css/$2")
|
||||
-#endif
|
||||
- .pushArg("text/css");
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/css.*/(.+\\.css)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/themes/$1/css/$2",
|
||||
+ "text/css");
|
||||
|
||||
// the following rules provide a search scheme for images. The first
|
||||
// rule where a image is found, terminates the search.
|
||||
@@ -243,79 +296,82 @@ namespace vdrlive {
|
||||
// 2. /img/<imgname>.<ext>
|
||||
// deprecated: 3. <imgname>.<ext> (builtin images)
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/themes/([^/]*)/img.*/(.+)\\.(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/themes/$1/img/$2.$3")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/themes/$1/img/$2.$3")
|
||||
-#endif
|
||||
- .pushArg("image/$3");
|
||||
- app.mapUrl("^/themes/([^/]*)/img.*/(.+)\\.(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/$2.$3")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/$2.$3")
|
||||
-#endif
|
||||
- .pushArg("image/$3");
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/img.*/(.+)\\.(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/themes/$1/img/$2.$3",
|
||||
+ "image/$3");
|
||||
+
|
||||
+ MapUrl(app,
|
||||
+ "^/themes/([^/]*)/img.*/(.+)\\.(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/$2.$3",
|
||||
+ "image/$3");
|
||||
// deprecated: file << "MapUrl ^/themes/([^/]*)/img.*/(.+)\\.(.+) $2@" << endl;
|
||||
|
||||
// Epg images
|
||||
string const epgImgPath(LiveSetup().GetEpgImageDir());
|
||||
if (!epgImgPath.empty()) {
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/epgimages/([^/]*)\\.([^./]+)", "content")
|
||||
- .setPathInfo(epgImgPath + "/$1.$2")
|
||||
- .pushArg("image/$2");
|
||||
+ MapUrl(app,
|
||||
+ "^/epgimages/([^/]*)\\.([^./]+)",
|
||||
+ "content",
|
||||
+ epgImgPath,
|
||||
+ "/$1.$2",
|
||||
+ "image/$2");
|
||||
}
|
||||
|
||||
// select additional (not build in) javascript.
|
||||
// WARNING: no path components with '.' in the name are allowed. Only
|
||||
// the basename may contain dots and must end with '.js'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/js(/[^.]*)([^/]*\\.js)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/js$1$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/js$1$2")
|
||||
-#endif
|
||||
- .pushArg("text/javascript");
|
||||
+ MapUrl(app,
|
||||
+ "^/js(/[^.]*)([^/]*\\.js)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/js$1$2",
|
||||
+ "text/javascript");
|
||||
|
||||
// map to 'css/basename(uri)'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/css.*/(.+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/css/$1")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/css/$1")
|
||||
-#endif
|
||||
- .pushArg("text/css");
|
||||
+ MapUrl(app,
|
||||
+ "^/css.*/(.+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/css/$1",
|
||||
+ "text/css");
|
||||
|
||||
// map to 'img/basename(uri)'
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
- app.mapUrl("^/img.*/(.+)\\.([^.]+)", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/$1.$2")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/$1.$2")
|
||||
-#endif
|
||||
- .pushArg("image/$2");
|
||||
+ MapUrl(app,
|
||||
+ "^/img.*/(.+)\\.([^.]+)",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/$1.$2",
|
||||
+ "image/$2");
|
||||
|
||||
// Map favicon.ico into img directory
|
||||
- app.mapUrl("^/favicon.ico$", "content")
|
||||
-#if APIVERSNUM > 10729
|
||||
- .setPathInfo(resourceDir + "/img/favicon.ico")
|
||||
-#else
|
||||
- .setPathInfo(configDir + "/img/favicon.ico")
|
||||
-#endif
|
||||
- .pushArg("image/x-icon");
|
||||
+ MapUrl(app,
|
||||
+ "^/favicon.ico$",
|
||||
+ "content",
|
||||
+ GetResourcePath(),
|
||||
+ "/img/favicon.ico",
|
||||
+ "image/x-icon");
|
||||
|
||||
// takes first path components without 'extension' when it does not
|
||||
// contain '.'
|
||||
// modified by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
app.mapUrl("^/([^./]+)(.*)?", "$1");
|
||||
|
||||
+#if TNT_GLOBAL_TNTCONFIG
|
||||
+ tnt::TntConfig::it().sessionTimeout = 86400;
|
||||
+ tnt::TntConfig::it().defaultContentType = string("text/html; charset=") + LiveI18n().CharacterEncoding();
|
||||
+#else
|
||||
tnt::Sessionscope::setDefaultTimeout(86400);
|
||||
tnt::HttpReply::setDefaultContentType(string("text/html; charset=") + LiveI18n().CharacterEncoding());
|
||||
+#endif
|
||||
|
||||
Setup::IpList const& ips = LiveSetup().GetServerIps();
|
||||
int port = LiveSetup().GetServerPort();
|
||||
diff --git a/tntfeatures.h b/tntfeatures.h
|
||||
index 6de1f88..76d3757 100644
|
||||
--- a/tntfeatures.h
|
||||
+++ b/tntfeatures.h
|
||||
@@ -17,6 +17,9 @@
|
||||
// Query params are now in tntnet and not in cxxtools
|
||||
#define TNT_HAS_QUERYPARAMS (TNTVERSION >= 16060)
|
||||
|
||||
+// Query params without boolean parameter
|
||||
+#define TNT_QUERYPARAMS_NO_BOOL (TNTVERSION >= 22000)
|
||||
+
|
||||
// One can request the host part of the request url
|
||||
#define TNT_HAS_GETHOST (TNTVERSION >= 16060)
|
||||
|
||||
@@ -26,4 +29,13 @@
|
||||
// version of TNTNET that binds ipv6 addresses with IPV6_V6ONLY flag set to true
|
||||
#define TNT_IPV6_V6ONLY (CXXTOOLVER >= 21000)
|
||||
|
||||
+// version of TNTNET with properties deserializer for logger configuration args.
|
||||
+#define TNT_LOG_SERINFO (CXXTOOLVER >= 22000)
|
||||
+
|
||||
+// version of TNTNET wich expects name, value mappings for Url-Mapper arguments.
|
||||
+#define TNT_MAPURL_NAMED_ARGS (TNTVERSION >= 22000)
|
||||
+
|
||||
+// version of TNTNET where configuration is global
|
||||
+#define TNT_GLOBAL_TNTCONFIG (TNTVERSION >= 22000)
|
||||
+
|
||||
#endif // VDR_LIVE_TNTFEATURES_H
|
@ -1,25 +0,0 @@
|
||||
commit 69f84f95fa875c6f562294b1a6a1ea6f584d3f6c
|
||||
Author: Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>
|
||||
Date: Sat May 4 22:27:09 2013 +0200
|
||||
|
||||
With tntnet v2.2 use also the request.getArg(<name>) function.
|
||||
In the previous commit support for tntnet 2.2 was added. The URL
|
||||
mapping changed in that version and allows now named arguments. This
|
||||
change makes uses of this feature now.
|
||||
|
||||
diff --git a/pages/content.ecpp b/pages/content.ecpp
|
||||
index 27d827c..cde092f 100644
|
||||
--- a/pages/content.ecpp
|
||||
+++ b/pages/content.ecpp
|
||||
@@ -17,7 +17,11 @@ bool logged_in(false);
|
||||
|
||||
string mime("image/png");
|
||||
if (request.getArgsCount() > 0) {
|
||||
+#if TNT_MAPURL_NAMED_ARGS
|
||||
+ mime = request.getArg("mime-type");
|
||||
+#else
|
||||
mime = request.getArg(0);
|
||||
+#endif
|
||||
// dsyslog("vdrlive::content found mime arg (%s)", mime.c_str());
|
||||
}
|
||||
reply.setContentType(mime);
|
@ -1,76 +0,0 @@
|
||||
commit 0f8a281027f852ed5968361bcb7420ed242d0476
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat Oct 19 22:15:14 2013 +0300
|
||||
|
||||
vdr 2.1.2 buildfix
|
||||
|
||||
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
|
||||
index 80f145b..6da5285 100644
|
||||
--- a/pages/recordings.ecpp
|
||||
+++ b/pages/recordings.ecpp
|
||||
@@ -79,7 +79,7 @@ for (deletions_type::const_iterator it = deletions.begin(); it != deletions.end(
|
||||
deletions.clear();
|
||||
|
||||
int FreeMB, UsedMB;
|
||||
-int Percent = VideoDiskSpace(&FreeMB, &UsedMB);
|
||||
+int Percent = cVideoDirectory::VideoDiskSpace(&FreeMB, &UsedMB);
|
||||
int Minutes = int(double(FreeMB) / MB_PER_MINUTE);
|
||||
int Hours = Minutes / 60;
|
||||
Minutes %= 60;
|
||||
diff --git a/recman.cpp b/recman.cpp
|
||||
index 6a2fc00..9ed88f0 100644
|
||||
--- a/recman.cpp
|
||||
+++ b/recman.cpp
|
||||
@@ -112,7 +112,7 @@ namespace vdrlive {
|
||||
if (found == string::npos)
|
||||
return false;
|
||||
|
||||
- string newname = string(VideoDirectory) + "/" + name + oldname.substr(found);
|
||||
+ string newname = string(cVideoDirectory::Name()) + "/" + name + oldname.substr(found);
|
||||
|
||||
if (!MoveDirectory(oldname.c_str(), newname.c_str(), copy)) {
|
||||
esyslog("[LIVE]: renaming failed from '%s' to '%s'", oldname.c_str(), newname.c_str());
|
||||
diff --git a/tntconfig.cpp b/tntconfig.cpp
|
||||
index 3325776..161fdc4 100644
|
||||
--- a/tntconfig.cpp
|
||||
+++ b/tntconfig.cpp
|
||||
@@ -279,7 +279,7 @@ namespace vdrlive {
|
||||
// inserted by 'tadi' -- not verified, not counterchecked yet!
|
||||
//app.mapUrl("^/vlc/(.+)", "static@tntnet")
|
||||
// .setPathInfo("/$1")
|
||||
- // .pushArg(string("DocumentRoot=") + VideoDirectory);
|
||||
+ // .pushArg(string("DocumentRoot=") + cVideoDirectory::Name());
|
||||
|
||||
// the following selects the theme specific 'theme.css' file
|
||||
// inserted by 'tadi' -- verified with above, but not counterchecked yet!
|
||||
diff --git a/tools.cpp b/tools.cpp
|
||||
index c744d06..cb3529e 100644
|
||||
--- a/tools.cpp
|
||||
+++ b/tools.cpp
|
||||
@@ -365,7 +365,7 @@ namespace vdrlive {
|
||||
stat(source.c_str(), &st1);
|
||||
stat(target.c_str(),&st2);
|
||||
if (!copy && (st1.st_dev == st2.st_dev)) {
|
||||
- if (!RenameVideoFile(source.c_str(), target.c_str())) {
|
||||
+ if (!cVideoDirectory::RenameVideoFile(source.c_str(), target.c_str())) {
|
||||
esyslog("[LIVE]: rename failed from %s to %s", source.c_str(), target.c_str());
|
||||
return false;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ namespace vdrlive {
|
||||
size_t found = source.find_last_of(delim);
|
||||
if (found != std::string::npos) {
|
||||
source = source.substr(0, found);
|
||||
- while (source != VideoDirectory) {
|
||||
+ while (source != cVideoDirectory::Name()) {
|
||||
found = source.find_last_of(delim);
|
||||
if (found == std::string::npos)
|
||||
break;
|
||||
@@ -478,7 +478,7 @@ namespace vdrlive {
|
||||
size_t found = target.find_last_of(delim);
|
||||
if (found != std::string::npos) {
|
||||
target = target.substr(0, found);
|
||||
- while (target != VideoDirectory) {
|
||||
+ while (target != cVideoDirectory::Name()) {
|
||||
found = target.find_last_of(delim);
|
||||
if (found == std::string::npos)
|
||||
break;
|
@ -1,25 +0,0 @@
|
||||
From d95f6d719298b4586fc4b889612423be67b52e88 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 16 Jun 2014 12:06:29 +0300
|
||||
Subject: [PATCH] dont build i18n
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index ab2f2b5..923d184 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -94,7 +94,7 @@ WEBLIBS = pages/libpages.a css/libcss.a javascript/libjavascript.a
|
||||
|
||||
### Default rules:
|
||||
|
||||
-all: libvdr-$(PLUGIN).so $(I18NTARG)
|
||||
+all: libvdr-$(PLUGIN).so
|
||||
|
||||
.PHONY: all dist clean subdirs $(SUBDIRS) PAGES
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -0,0 +1,36 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -11,7 +11,7 @@ PLUGIN := live
|
||||
VERSION := $(shell grep '\#define LIVEVERSION ' setup.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
|
||||
|
||||
### Check for libpcre c++ wrapper
|
||||
-HAVE_LIBPCRECPP := $(shell pcre-config --libs-cpp)
|
||||
+HAVE_LIBPCRECPP := $(shell pkg-config --libs libpcrecpp libpcre)
|
||||
|
||||
### The directory environment:
|
||||
# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||
@@ -37,18 +37,18 @@ APIVERSION := $(call PKGCFG,apiversion)
|
||||
include global.mk
|
||||
|
||||
### Determine tntnet and cxxtools versions:
|
||||
-TNTVERSION = $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
-CXXTOOLVER = $(shell cxxtools-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION = $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+CXXTOOLVER = $(shell pkg-config --modversion cxxtools | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
|
||||
-CXXFLAGS += $(shell tntnet-config --cxxflags)
|
||||
-LIBS += $(shell tntnet-config --libs)
|
||||
+CXXFLAGS += $(shell pkg-config --cflags tntnet)
|
||||
+LIBS += $(shell pkg-config --libs tntnet)
|
||||
|
||||
### Optional configuration features
|
||||
PLUGINFEATURES :=
|
||||
ifneq ($(HAVE_LIBPCRECPP),)
|
||||
PLUGINFEATURES += -DHAVE_LIBPCRECPP
|
||||
- CXXFLAGS += $(shell pcre-config --cflags)
|
||||
- LIBS += $(HAVE_LIBPCRECPP)
|
||||
+ CXXFLAGS += $(shell pkg-config --cflags libpcreposix libpcre)
|
||||
+ LIBS += -Wl,-Bstatic $(HAVE_LIBPCRECPP) -Wl,-Bdynamic
|
||||
endif
|
||||
|
||||
# -Wno-deprecated-declarations .. get rid of warning: ‘template<class> class std::auto_ptr’ is deprecated
|
@ -0,0 +1,11 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -98,7 +98,7 @@ SUBDIRS := $(WEB_DIR_PAGES) $(WEB_DIR_CSS) $(WEB_DIR_JAVA)
|
||||
|
||||
### The main target:
|
||||
.PHONY: all
|
||||
-all: lib i18n
|
||||
+all: lib
|
||||
@true
|
||||
|
||||
### Implicit rules:
|
@ -1,43 +0,0 @@
|
||||
--- a/stdext.h.orig 2016-02-07 12:55:05.958100061 +0100
|
||||
+++ b/stdext.h 2016-02-07 12:56:49.583375455 +0100
|
||||
@@ -3,8 +3,38 @@
|
||||
|
||||
#if __GNUC__ >= 4
|
||||
|
||||
-# include <tr1/functional>
|
||||
-# include <tr1/memory>
|
||||
+#if __GNUC__ >= 6
|
||||
+
|
||||
+#include <memory>
|
||||
+#include <functional>
|
||||
+
|
||||
+namespace std {
|
||||
+namespace tr1 {
|
||||
+
|
||||
+ using std::bind;
|
||||
+ using std::shared_ptr;
|
||||
+ using std::weak_ptr;
|
||||
+
|
||||
+ namespace placeholders {
|
||||
+ using std::placeholders::_1;
|
||||
+ using std::placeholders::_2;
|
||||
+ using std::placeholders::_3;
|
||||
+ using std::placeholders::_4;
|
||||
+ using std::placeholders::_5;
|
||||
+ using std::placeholders::_6;
|
||||
+ using std::placeholders::_7;
|
||||
+ using std::placeholders::_8;
|
||||
+ using std::placeholders::_9;
|
||||
+ }
|
||||
+} // namespace tr1
|
||||
+} // namespace std
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+ # include <tr1/functional>
|
||||
+ # include <tr1/memory>
|
||||
+
|
||||
+# endif
|
||||
|
||||
#else
|
||||
|
@ -1,14 +0,0 @@
|
||||
part of patch from Jasmin Jessich <jasmin@anw.at>
|
||||
https://github.com/jasmin-j/vdr-plugin-live/commit/b86560030911208be738163ecd0e48790c9317a1
|
||||
|
||||
--- a/pages/multischedule.ecpp 2017-05-11 18:13:21.359696377 +0200
|
||||
+++ b/pages/multischedule.ecpp 2017-05-11 18:15:13.777869558 +0200
|
||||
@@ -295,7 +295,7 @@
|
||||
cChannel* Channel = Channels.GetByNumber( chan );
|
||||
if ( ! Channel )
|
||||
continue;
|
||||
- if ( Channel->GroupSep() || Channel->Name() == '\0' )
|
||||
+ if ( Channel->GroupSep() || !Channel->Name() || !*Channel->Name() )
|
||||
continue;
|
||||
channel_names[ j ] = Channel->Name();
|
||||
channel_IDs[ j ] = Channel->GetChannelID();
|
@ -1,86 +0,0 @@
|
||||
diff -Naur live-0.3.0/css/Makefile live-0.3.0.patch/css/Makefile
|
||||
--- live-0.3.0/css/Makefile 2013-04-04 22:16:40.000000000 +0200
|
||||
+++ live-0.3.0.patch/css/Makefile 2016-01-07 06:49:35.954078949 +0100
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
### Additional options to silence TNTNET warnings
|
||||
TNTFLAGS ?= -Wno-overloaded-virtual -Wno-unused-function
|
||||
-TNTVERSION ?= $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION ?= $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
|
||||
### The C++ compiler and options:
|
||||
|
||||
diff -Naur live-0.3.0/httpd/Makefile live-0.3.0.patch/httpd/Makefile
|
||||
--- live-0.3.0/httpd/Makefile 2013-04-04 22:16:40.000000000 +0200
|
||||
+++ live-0.3.0.patch/httpd/Makefile 2016-01-07 06:51:05.349223371 +0100
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
CXXFLAGS ?= -O2 -Woverloaded-virtual -Wall -fPIC
|
||||
|
||||
-CXXFLAGS += `tntnet-config --cxxflags`
|
||||
+CXXFLAGS += `pkg-config --cflags tntnet`
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
diff -Naur live-0.3.0/javascript/Makefile live-0.3.0.patch/javascript/Makefile
|
||||
--- live-0.3.0/javascript/Makefile 2013-04-04 22:16:40.000000000 +0200
|
||||
+++ live-0.3.0.patch/javascript/Makefile 2016-01-07 06:49:51.561104158 +0100
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
### Additional options to silence TNTNET warnings
|
||||
TNTFLAGS ?= -Wno-overloaded-virtual -Wno-unused-function
|
||||
-TNTVERSION ?= $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION ?= $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
|
||||
### The C++ compiler and options:
|
||||
|
||||
diff -Naur live-0.3.0/Makefile live-0.3.0.patch/Makefile
|
||||
--- live-0.3.0/Makefile 2013-04-04 22:16:40.000000000 +0200
|
||||
+++ live-0.3.0.patch/Makefile 2016-01-07 06:48:29.683971910 +0100
|
||||
@@ -26,7 +26,7 @@
|
||||
LDFLAGS ?= -fPIC -g
|
||||
|
||||
### Check for libpcre c++ wrapper
|
||||
-HAVE_LIBPCRECPP = $(shell pcre-config --libs-cpp)
|
||||
+HAVE_LIBPCRECPP = $(shell pkg-config --libs libpcrecpp libpcre)
|
||||
|
||||
### The directory environment:
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
|
||||
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
||||
I18NTARG = $(shell if [ `echo $(APIVERSION) | tr [.] [0]` -ge "10507" ]; then echo "i18n"; fi)
|
||||
-TNTVERSION = $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
-CXXTOOLVER = $(shell cxxtools-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION = $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+CXXTOOLVER = $(shell pkg-config --modversion cxxtools | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
TNTVERS7 = $(shell ver=$(TNTVERSION); if [ $$ver -ge "1606" ]; then echo "yes"; fi)
|
||||
|
||||
-CXXFLAGS += $(shell tntnet-config --cxxflags)
|
||||
-LIBS += $(shell tntnet-config --libs)
|
||||
+CXXFLAGS += $(shell pkg-config --cflags tntnet)
|
||||
+LIBS += $(shell pkg-config --libs tntnet)
|
||||
|
||||
### Optional configuration features
|
||||
PLUGINFEATURES =
|
||||
ifneq ($(HAVE_LIBPCRECPP),)
|
||||
PLUGINFEATURES += -DHAVE_LIBPCRECPP
|
||||
- CXXFLAGS += $(shell pcre-config --cflags)
|
||||
+ CXXFLAGS += $(shell pkg-config --cflags libpcreposix libpcre)
|
||||
LIBS += $(HAVE_LIBPCRECPP)
|
||||
endif
|
||||
|
||||
diff -Naur live-0.3.0/pages/Makefile live-0.3.0.patch/pages/Makefile
|
||||
--- live-0.3.0/pages/Makefile 2013-04-04 22:16:40.000000000 +0200
|
||||
+++ live-0.3.0.patch/pages/Makefile 2016-01-07 06:50:04.234124627 +0100
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
### Additional options to silence TNTNET warnings
|
||||
TNTFLAGS ?= -Wno-overloaded-virtual -Wno-unused-variable
|
||||
-TNTVERSION ?= $(shell tntnet-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
-CXXTOOLVER ?= $(shell cxxtools-config --version | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+TNTVERSION ?= $(shell pkg-config --modversion tntnet | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
+CXXTOOLVER ?= $(shell pkg-config --modversion cxxtools | sed -e's/\.//g' | sed -e's/pre.*//g' | awk '/^..$$/ { print $$1."000"} /^...$$/ { print $$1."00"} /^....$$/ { print $$1."0" } /^.....$$/ { print $$1 }')
|
||||
|
||||
### The C++ compiler and options:
|
||||
|
@ -1,19 +1,20 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-restfulapi"
|
||||
@ -27,11 +28,7 @@ PKG_DEPENDS_TARGET="toolchain vdr cxxtools vdr-plugin-wirbelscan"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-plugin-restfulapi: the restful API for the VDR/"
|
||||
PKG_LONGDESC="vdr-plugin-restfulapi allows to access many internals of the VDR via a restful API"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -51,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -51,7 +51,7 @@ SOFILE = libvdr-$(PLUGIN).so
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
-LIBS += $(shell cxxtools-config --libs) -lcxxtools-http
|
||||
+LIBS += $(shell pkg-config --libs cxxtools-http cxxtools)
|
||||
CONFDIR = $(call PKGCFG,configdir)
|
||||
PLGCONFDIR = $(CONFDIR)/plugins/$(PLUGIN)
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- a/tools.cpp
|
||||
+++ b/tools.cpp
|
||||
@@ -214,7 +214,7 @@ void Settings::initDefault()
|
||||
SetIp((string)"0.0.0.0");
|
||||
SetEpgImageDirectory((string)"/var/cache/vdr/epgimages");
|
||||
SetChannelLogoDirectory((string)"/usr/share/vdr/channel-logos");
|
||||
- SetWebappDirectory((string)"/var/lib/vdr/plugins/restfulapi/webapp");
|
||||
+ SetWebappDirectory((string)"/storage/.kodi/addons/service.multimedia.vdr-addon/res/plugins/restfulapi");
|
||||
SetHeaders((string)"true");
|
||||
webapp_filetypes_filename = "webapp_file_types.conf";
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
diff -Naur vdr-plugin-restfulapi-0.2.1.4/Makefile vdr-plugin-restfulapi-0.2.1.4.patch/Makefile
|
||||
--- vdr-plugin-restfulapi-0.2.1.4/Makefile 2015-03-18 23:12:01.000000000 +0100
|
||||
+++ vdr-plugin-restfulapi-0.2.1.4.patch/Makefile 2016-01-07 05:24:24.036888492 +0100
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
-LIBS += $(shell cxxtools-config --libs) -lcxxtools-http
|
||||
+LIBS += $(shell pkg-config --libs cxxtools-http cxxtools)
|
||||
CONFDIR = $(call PKGCFG,configdir)
|
||||
PLGCONFDIR = $(CONFDIR)/plugins/$(PLUGIN)
|
||||
|
@ -0,0 +1,45 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-robotv"
|
||||
PKG_VERSION="50d4bdc"
|
||||
PKG_SHA256="062489e55111f0ba2420463cc506865ac59b1c1d080b318cb81d58ec3f4fbd3f"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/pipelka/roboTV"
|
||||
PKG_URL="https://github.com/pipelka/vdr-plugin-robotv/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr avahi"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="VDR server plugin for roboTV"
|
||||
PKG_LONGDESC="RoboTV is a Android TV based frontend for VDR"
|
||||
PKG_TOOLCHAIN="cmake"
|
||||
|
||||
pre_configure_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
export PKG_CONFIG_PATH=$VDR_DIR:$PKG_CONFIG_PATH
|
||||
export CPLUS_INCLUDE_PATH=$VDR_DIR/include
|
||||
export VDRDIR=$VDR_DIR
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
VDR_APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' $VDR_DIR/config.h`
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/.$TARGET_NAME/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
}
|
@ -1,24 +1,25 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-satip"
|
||||
PKG_VERSION="28cc3ca"
|
||||
PKG_SHA256="aa72e457472e81280b20c2e596b1993607254c86d4f8c5611fdd1d524400e32e"
|
||||
PKG_VERSION="82cf548"
|
||||
PKG_SHA256="f8669aa638e5960ea3d9f6e181beeb997078540be8641a2aaf52cc5badc79c23"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/satip/"
|
||||
@ -27,6 +28,7 @@ PKG_DEPENDS_TARGET="toolchain vdr curl tinyxml"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="VDR-satip: SAT>IP plugin for VDR"
|
||||
PKG_LONGDESC="This is an SAT>IP plugin for the Video Disk Recorder (VDR)."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -46,9 +48,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
diff -Naur satip-2.2.2/Makefile satip-2.2.2.patch/Makefile
|
||||
--- satip-2.2.2/Makefile 2015-04-26 03:20:00.000000000 +0200
|
||||
+++ satip-2.2.2.patch/Makefile 2016-01-07 07:33:20.588462880 +0100
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
### Libraries
|
||||
|
@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-streamdev"
|
||||
PKG_VERSION="fc52e92"
|
||||
PKG_SHA256="4c231f0ce9bd2dcf45c330a7c9733e14f02002e4370b3eeff080f614ef227ed3"
|
||||
PKG_VERSION="e2a9b97"
|
||||
PKG_SHA256="adcc08ac19cf98122576bedf63be3396d8b81ee4196c00df0e25c9fb8b7e11b8"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-streamdev"
|
||||
PKG_URL="https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-streamdev/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr openssl"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
PKG_SHORTDESC="This PlugIn is a VDR implementation of Video Transfer and a basic HTTP Streaming Protocol."
|
||||
PKG_LONGDESC="This PlugIn is a VDR implementation of Video Transfer and a basic HTTP Streaming Protocol."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,11 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
cp --remove-destination $PKG_BUILD/server/${LIB_NAME}-server.so $PKG_BUILD/server/${LIB_NAME}-server.so.${VDR_APIVERSION}
|
||||
cp --remove-destination $PKG_BUILD/client/${LIB_NAME}-client.so $PKG_BUILD/client/${LIB_NAME}-client.so.${VDR_APIVERSION}
|
||||
|
||||
$STRIP client/libvdr-*.so*
|
||||
$STRIP server/libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
http://www.vdr-portal.de/board17-developer/board97-vdr-core/p1272182-rfc-h-265-frame-parser/#post1272182
|
||||
|
||||
diff -ur streamdev-160321-1/server/livestreamer.c streamdev-160321/server/livestreamer.c
|
||||
--- streamdev-160321-1/server/livestreamer.c 2016-03-21 11:41:52.000000000 +0100
|
||||
+++ streamdev-160321/server/livestreamer.c 2016-05-03 13:54:07.000000000 +0200
|
||||
--- a/server/livestreamer.c
|
||||
+++ b/server/livestreamer.c
|
||||
@@ -143,6 +143,8 @@
|
||||
"ISO/IEC 14496-3 Audio with LATM transport syntax",
|
||||
"0x12", "0x13", "0x14", "0x15", "0x16", "0x17", "0x18", "0x19", "0x1a",
|
||||
|
@ -1,24 +1,25 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="63d8151"
|
||||
PKG_SHA256="acc297c0cc9cd117c6de0b9f1fe0d9c02cd4e8e1abb66da4de34747460ec51e0"
|
||||
PKG_VERSION="31c8f71"
|
||||
PKG_SHA256="0ee419f6821c2cfb0a605a9afadaf2e1ae2a69f49d651a7aab4ea7008e913f11"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/FernetMenta/vdr-plugin-vnsiserver"
|
||||
@ -27,6 +28,7 @@ PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="VDR plugin to handle Kodi clients."
|
||||
PKG_LONGDESC="VDR plugin to handle Kodi clients."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
@ -45,9 +47,4 @@ post_make_target() {
|
||||
LIB_NAME=lib${PKG_NAME/-plugin/}
|
||||
|
||||
cp --remove-destination $PKG_BUILD/${LIB_NAME}.so $PKG_BUILD/${LIB_NAME}.so.${VDR_APIVERSION}
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,33 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-wirbelscan"
|
||||
PKG_VERSION="0.0.9"
|
||||
PKG_SHA256="731137512de0047e7514f72b04c4e8f938c773ea7873c9281b5937e7413d2dc9"
|
||||
PKG_VERSION="2017.06.04"
|
||||
PKG_SHA256="c7a792c794fb98dd7f665e1be2271f4a1a957a26c017043fcd4dd8d8b7fd582b"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://wirbel.htpc-forum.de/wirbelscan/index2.html"
|
||||
PKG_URL="http://wirbel.htpc-forum.de/wirbelscan/${PKG_NAME/-plugin/}-$PKG_VERSION.tgz"
|
||||
PKG_URL="http://wirbel.htpc-forum.de/wirbelscan/${PKG_NAME/-plugin/}-dev-$PKG_VERSION.tgz"
|
||||
PKG_SOURCE_DIR="wirbelscan-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
PKG_SHORTDESC="Performs a channel scans for DVB-T, DVB-C and DVB-S"
|
||||
PKG_LONGDESC="Performs a channel scans for DVB-T, DVB-C and DVB-S"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
@ -37,11 +39,8 @@ pre_configure_target() {
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
cp backup/Makefile.old Makefile
|
||||
make VDRDIR=$VDR_DIR \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 2b6a0e4b41a082655516c3a276a4d74e7a61cd90 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 2 Feb 2015 13:22:36 +0200
|
||||
Subject: [PATCH] fix dvbs scan
|
||||
|
||||
using first channel freq from satellites.dat is not good.
|
||||
---
|
||||
scanner.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scanner.c b/scanner.c
|
||||
index 0c29ac2..25d6f8a 100644
|
||||
--- a/scanner.c
|
||||
+++ b/scanner.c
|
||||
@@ -738,7 +738,7 @@ void cScanner::Action(void) {
|
||||
break;
|
||||
case SCAN_SATELLITE:
|
||||
aChannel->SetTransponderData(cSource::FromString(sat_list[this_channellist].source_id),
|
||||
- sat_list[this_channellist].items[0].intermediate_frequency,
|
||||
+ sat_list[this_channellist].items[channel].intermediate_frequency,
|
||||
sat_list[this_channellist].items[channel].symbol_rate,
|
||||
*ParamsToString('S',
|
||||
GetVDRPolarizationFromDVB(sat_list[this_channellist].items[0].polarization),
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -1,61 +0,0 @@
|
||||
From 4708fdeab67cae81ee7211a306c6adf0bed24d3c Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Tue, 3 Feb 2015 18:19:17 +0200
|
||||
Subject: [PATCH] fix wirbelscancontrol
|
||||
|
||||
---
|
||||
common.c | 2 +-
|
||||
extended_frontend.h | 7 +++----
|
||||
menusetup.c | 2 +-
|
||||
3 files changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/common.c b/common.c
|
||||
index 04a1e6e..40194d2 100644
|
||||
--- a/common.c
|
||||
+++ b/common.c
|
||||
@@ -54,7 +54,7 @@ void cMySetup::InitSystems(void) {
|
||||
}
|
||||
|
||||
if (DVB_Type >= SCAN_NO_DEVICE || ! systems[DVB_Type]) {
|
||||
- for (DVB_Type = scantype_t(SCAN_UNDEFINED + 1); DVB_Type < SCAN_NO_DEVICE; DVB_Type = scantype_t(DVB_Type + 1)) {
|
||||
+ for (DVB_Type = scantype_t(SCAN_TERRESTRIAL); DVB_Type < SCAN_NO_DEVICE; DVB_Type = scantype_t(DVB_Type + 1)) {
|
||||
if (systems[DVB_Type])
|
||||
break;
|
||||
}
|
||||
diff --git a/extended_frontend.h b/extended_frontend.h
|
||||
index 680594e..bcdb11f 100644
|
||||
--- a/extended_frontend.h
|
||||
+++ b/extended_frontend.h
|
||||
@@ -152,13 +152,12 @@ typedef enum {
|
||||
* 20120107 wirbel
|
||||
*/
|
||||
typedef enum {
|
||||
- SCAN_UNDEFINED,
|
||||
- SCAN_SATELLITE,
|
||||
- SCAN_CABLE,
|
||||
SCAN_TERRESTRIAL,
|
||||
- SCAN_TERRCABLE_ATSC, /* I dislike this mixture of terr and cable. fix later, as it leads to problems now. */
|
||||
+ SCAN_CABLE,
|
||||
+ SCAN_SATELLITE,
|
||||
SCAN_PVRINPUT,
|
||||
SCAN_PVRINPUT_FM,
|
||||
+ SCAN_TERRCABLE_ATSC, /* I dislike this mixture of terr and cable. fix later, as it leads to problems now. */
|
||||
SCAN_NO_DEVICE,
|
||||
SCAN_TRANSPONDER=999
|
||||
} scantype_t;
|
||||
diff --git a/menusetup.c b/menusetup.c
|
||||
index daeccb1..46087be 100644
|
||||
--- a/menusetup.c
|
||||
+++ b/menusetup.c
|
||||
@@ -22,7 +22,7 @@
|
||||
using namespace COUNTRY;
|
||||
|
||||
static const char * ScannerDesc = "wirbelscan scan thread";
|
||||
-static const char * DVB_Types[] = {"NOTHING","DVB-S/S2","DVB-C","DVB-T/T2","ATSC","pvrinput","pvrinput FM", "no device found"};
|
||||
+static const char * DVB_Types[] = {"DVB-T/T2", "DVB-C", "DVB-S/S2", "pvrinput", "pvrinput FM", "ATSC", "no device found"};
|
||||
|
||||
cMenuScanning * MenuScanning = NULL; // pointer to actual menu
|
||||
cScanner * Scanner = NULL;
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -1,19 +1,20 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-wirbelscancontrol"
|
||||
@ -26,8 +27,9 @@ PKG_URL="http://wirbel.htpc-forum.de/wirbelscancontrol/${PKG_NAME/-plugin/}-$PKG
|
||||
PKG_SOURCE_DIR="wirbelscancontrol-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr vdr-plugin-wirbelscan"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
PKG_SHORTDESC="Adds menu entry for wirbelscan at VDR."
|
||||
PKG_LONGDESC="Adds menu entry for wirbelscan at VDR."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
@ -46,7 +48,3 @@ make_target() {
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,14 +1,6 @@
|
||||
From 60bb89fa8f5d29e72e06c68c0b48a374ac95d522 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 9 Jun 2014 22:04:41 +0300
|
||||
Subject: [PATCH] dont build i18n
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index f3ae479..89e2970 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -73,7 +73,7 @@ UNCRUSTIFY_FILES = $(PLUGIN).c scanmenu.c scanmenu.h
|
||||
@ -20,6 +12,4 @@ index f3ae479..89e2970 100644
|
||||
|
||||
### Implicit rules:
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
|
@ -0,0 +1,59 @@
|
||||
--- a/scanmenu.c
|
||||
+++ b/scanmenu.c
|
||||
@@ -255,6 +255,9 @@
|
||||
{
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
int direction = 0;
|
||||
+#if APIVERSNUM >= 20301
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+#endif
|
||||
switch (Key) {
|
||||
case kLeft: direction = -1;
|
||||
break;
|
||||
@@ -268,7 +271,11 @@
|
||||
case SETSCAN:
|
||||
osdstatus = SCANNING;
|
||||
start = time(NULL);
|
||||
+#if APIVERSNUM < 20301
|
||||
channelcount0 = Channels.Count();
|
||||
+#else
|
||||
+ channelcount0 = Channels->Count();
|
||||
+#endif
|
||||
SetHelp(tr("Stop"), NULL, NULL, NULL);
|
||||
TransferSetup();
|
||||
PutCommand(CmdStartScan);
|
||||
@@ -655,7 +662,8 @@
|
||||
sbuf = cString::sprintf("%s (%d%% transponders from scan list + %u queued)", buf, status.progress, status.nextTransponders);
|
||||
ProgressBar->SetText(*sbuf);
|
||||
|
||||
- if (TV1 && TV2 && TV3 && TV4 && TV5)
|
||||
+#if APIVERSNUM < 20301
|
||||
+ if (TV1 && TV2 && TV3 && TV4 && TV5) {
|
||||
switch (Channels.Count() - channelcount0) {
|
||||
default:;
|
||||
case 5: TV5->SetText(Channels.GetByNumber(Channels.Count()-4)->Name());
|
||||
@@ -665,8 +673,23 @@
|
||||
case 1: TV1->SetText(Channels.GetByNumber(Channels.Count()-0)->Name());
|
||||
case 0:;
|
||||
}
|
||||
-
|
||||
+ }
|
||||
sbuf = cString::sprintf("%s%d", tr("New channels: "), Channels.Count() - channelcount0);
|
||||
+#else
|
||||
+ LOCK_CHANNELS_READ;
|
||||
+ if (TV1 && TV2 && TV3 && TV4 && TV5) {
|
||||
+ switch (Channels->Count() - channelcount0) {
|
||||
+ default:;
|
||||
+ case 5: TV5->SetText(Channels->GetByNumber(Channels->Count()-4)->Name());
|
||||
+ case 4: TV4->SetText(Channels->GetByNumber(Channels->Count()-3)->Name());
|
||||
+ case 3: TV3->SetText(Channels->GetByNumber(Channels->Count()-2)->Name());
|
||||
+ case 2: TV2->SetText(Channels->GetByNumber(Channels->Count()-1)->Name());
|
||||
+ case 1: TV1->SetText(Channels->GetByNumber(Channels->Count()-0)->Name());
|
||||
+ case 0:;
|
||||
+ }
|
||||
+ }
|
||||
+ sbuf = cString::sprintf("%s%d", tr("New channels: "), Channels->Count() - channelcount0);
|
||||
+#endif
|
||||
if (CH) CH->SetText(*sbuf);
|
||||
|
||||
Display();
|
@ -1,32 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-xmltv2vdr"
|
||||
PKG_VERSION="b48e0bec"
|
||||
PKG_SHA256="280d6cf45e6727711b43eefffd5f04bac53f456e2e6e6b519990dd7fff03611d"
|
||||
PKG_VERSION="ec7bd92"
|
||||
PKG_SHA256="eacc91062095563d8adc93873b373ddb34b076a8c0a9e5a86f6220d1d5d892e9"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-xmltv2vdr"
|
||||
PKG_URL="http://projects.vdr-developer.org/git/vdr-plugin-xmltv2vdr.git/snapshot/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_URL="https://github.com/vdr-projects/vdr-plugin-xmltv2vdr/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr sqlite curl libzip libxml2 libxslt enca pcre"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-xmltv2vdr"
|
||||
PKG_LONGDESC="vdr-xmltv2vdr"
|
||||
PKG_SHORTDESC="xmltv2vdr imports data in xmltv format"
|
||||
PKG_LONGDESC="xmltv2vdr imports data in xmltv format"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
@ -47,9 +49,4 @@ post_make_target() {
|
||||
make -j1
|
||||
cd -
|
||||
$STRIP dist/epgdata2xmltv/epgdata2xmltv
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,14 +1,6 @@
|
||||
From c2121393b05a756266fe728f83eaddbd3755ce13 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 16 Jun 2014 12:14:33 +0300
|
||||
Subject: [PATCH] dont build i18n
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index aa344a4..819b5b0 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -62,7 +62,7 @@ OBJS = $(PLUGIN).o soundex.o extpipe.o parse.o source.o import.o event.o setup.o
|
||||
@ -20,6 +12,4 @@ index aa344a4..819b5b0 100644
|
||||
|
||||
### Implicit rules:
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff -Naur a/import.cpp b/import.cpp
|
||||
--- a/import.cpp 2016-08-23 15:16:10.362347074 +0100
|
||||
+++ b/import.cpp 2016-08-23 15:16:22.814431356 +0100
|
||||
@@ -250,7 +250,7 @@
|
||||
char *cImport::Add2Description(char *description, const char *Name, int Value)
|
||||
{
|
||||
char *value=NULL;
|
||||
- if (asprintf(&value,"%i",Value)==-1) return false;
|
||||
+ if (asprintf(&value,"%i",Value)==-1) return NULL;
|
||||
description = strcatrealloc(description,Name);
|
||||
description = strcatrealloc(description,": ");
|
||||
description = strcatrealloc(description,value);
|
@ -1,33 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr"
|
||||
PKG_VERSION="2.2.0"
|
||||
PKG_SHA256="7c259e1ed1f39d93d23df1d5d0f85dd2a1fa9ec1dadff79e5833e2ff3ebf6c4e"
|
||||
PKG_VERSION="2.3.8"
|
||||
PKG_SHA256="d871170ee90ef2fc6293eefb44262b82b2e1f00f934681c721da7bd30e45bf22"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.tvdr.de"
|
||||
PKG_URL="ftp://ftp.tvdr.de/vdr/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="ftp://ftp.tvdr.de/vdr/Developer/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain fontconfig freetype libcap libiconv libjpeg-turbo bzip2"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||
PKG_LONGDESC="This project describes how to build your own digital satellite receiver and video disk recorder. It is based mainly on the DVB-S digital satellite receiver card, which used to be available from Fujitsu Siemens and the driver software developed by the LinuxTV project."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
post_unpack() {
|
||||
rm -rf $PKG_BUILD/PLUGINS/src/skincurses
|
||||
@ -54,7 +56,3 @@ make_target() {
|
||||
make vdr vdr.pc
|
||||
make include-dir
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
|
@ -1,14 +1,6 @@
|
||||
From 973c66c3d4e7418e53932c719b4cb3345b38da9e Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 12 Oct 2013 21:40:12 +0300
|
||||
Subject: [PATCH] decrease channels.conf autosave delay
|
||||
|
||||
---
|
||||
vdr.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/vdr.c b/vdr.c
|
||||
index c63eeca..1fb0c57 100644
|
||||
--- a/vdr.c
|
||||
+++ b/vdr.c
|
||||
@@ -74,7 +74,7 @@
|
||||
@ -20,6 +12,4 @@ index c63eeca..1fb0c57 100644
|
||||
#define DEVICEREADYTIMEOUT 30 // seconds to wait until all devices are ready
|
||||
#define MENUTIMEOUT 120 // seconds of user inactivity after which an OSD display is closed
|
||||
#define TIMERCHECKDELTA 10 // seconds between checks for timers that need to see their channel
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -1,11 +0,0 @@
|
||||
diff -Nru vdr-1.7.15-vanilla/pat.c vdr-1.7.15-disable_ca_updates/pat.c
|
||||
--- vdr-1.7.15-vanilla/pat.c 2010-06-06 19:11:15.000000000 +0300
|
||||
+++ vdr-1.7.15-disable_ca_updates/pat.c 2010-06-06 20:42:47.000000000 +0300
|
||||
@@ -490,6 +490,7 @@
|
||||
}
|
||||
if (Setup.UpdateChannels >= 2) {
|
||||
Channel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid);
|
||||
+ if (!cSource::IsType(Channel->Source(), 'I'))
|
||||
Channel->SetCaIds(CaDescriptors->CaIds());
|
||||
Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds);
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
remove logspam
|
||||
ERROR: no OSD provider available - using dummy OSD!
|
||||
|
||||
--- a/osd.c
|
||||
+++ b/osd.c
|
||||
@@ -2027,8 +2027,6 @@ cOsd *cOsdProvider::NewOsd(int Left, int Top, uint Level)
|
||||
}
|
||||
return Osd;
|
||||
}
|
||||
- else
|
||||
- esyslog("ERROR: no OSD provider available - using dummy OSD!");
|
||||
return new cOsd(Left, Top, 999); // create a dummy cOsd, so that access won't result in a segfault
|
||||
}
|
||||
|
||||
--- a/vdr.c
|
||||
+++ b/vdr.c
|
||||
@@ -765,12 +765,6 @@ int main(int argc, char *argv[])
|
||||
Folders.Load(AddDirectory(ConfigDirectory, "folders.conf"));
|
||||
CamResponsesLoad(AddDirectory(ConfigDirectory, "camresponses.conf"), true);
|
||||
|
||||
- if (!*cFont::GetFontFileName(Setup.FontOsd)) {
|
||||
- const char *msg = "no fonts available - OSD will not show any text!";
|
||||
- fprintf(stderr, "vdr: %s\n", msg);
|
||||
- esyslog("ERROR: %s", msg);
|
||||
- }
|
||||
-
|
||||
// Recordings:
|
||||
|
||||
cRecordings::Update();
|
@ -1,148 +0,0 @@
|
||||
From ce4d2a08e6448b7bfab68b89a12a156ed3294a63 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Reufer <thomas@reufer.ch>
|
||||
Date: Mon, 28 Mar 2016 19:47:14 +0200
|
||||
Subject: [PATCH] Implement H.265 frame parser
|
||||
|
||||
---
|
||||
pat.c | 1 +
|
||||
remux.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 82 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pat.c b/pat.c
|
||||
index beb5609..bb7e5ae 100644
|
||||
--- a/pat.c
|
||||
+++ b/pat.c
|
||||
@@ -439,6 +439,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
||||
case 1: // STREAMTYPE_11172_VIDEO
|
||||
case 2: // STREAMTYPE_13818_VIDEO
|
||||
case 0x1B: // H.264
|
||||
+ case 0x24: // H.265
|
||||
Vpid = esPid;
|
||||
Ppid = pmt.getPCRPid();
|
||||
Vtype = stream.getStreamType();
|
||||
diff --git a/remux.c b/remux.c
|
||||
index 6c07efc..fe87160 100644
|
||||
--- a/remux.c
|
||||
+++ b/remux.c
|
||||
@@ -708,6 +708,7 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
|
||||
case 0x01: // STREAMTYPE_11172_VIDEO
|
||||
case 0x02: // STREAMTYPE_13818_VIDEO
|
||||
case 0x1B: // H.264
|
||||
+ case 0x24: // H.265
|
||||
vpid = stream.getPid();
|
||||
vtype = stream.getStreamType();
|
||||
ppid = Pmt.getPCRPid();
|
||||
@@ -1204,16 +1205,16 @@ private:
|
||||
nutSequenceParameterSet = 7,
|
||||
nutAccessUnitDelimiter = 9,
|
||||
};
|
||||
- cTsPayload tsPayload;
|
||||
uchar byte; // holds the current byte value in case of bitwise access
|
||||
int bit; // the bit index into the current byte (-1 if we're not in bit reading mode)
|
||||
int zeroBytes; // the number of consecutive zero bytes (to detect 0x000003)
|
||||
- uint32_t scanner;
|
||||
// Identifiers written in '_' notation as in "ITU-T H.264":
|
||||
bool separate_colour_plane_flag;
|
||||
int log2_max_frame_num;
|
||||
bool frame_mbs_only_flag;
|
||||
- //
|
||||
+protected:
|
||||
+ cTsPayload tsPayload;
|
||||
+ uint32_t scanner;
|
||||
bool gotAccessUnitDelimiter;
|
||||
bool gotSequenceParameterSet;
|
||||
uchar GetByte(bool Raw = false);
|
||||
@@ -1430,6 +1431,81 @@ void cH264Parser::ParseSliceHeader(void)
|
||||
}
|
||||
}
|
||||
|
||||
+// --- cH265Parser -----------------------------------------------------------
|
||||
+
|
||||
+class cH265Parser : public cH264Parser {
|
||||
+private:
|
||||
+ enum eNalUnitType {
|
||||
+ nutSliceSegmentTrailingN = 0,
|
||||
+ nutSliceSegmentTrailingR = 1,
|
||||
+ nutSliceSegmentTSAN = 2,
|
||||
+ nutSliceSegmentTSAR = 3,
|
||||
+ nutSliceSegmentSTSAN = 4,
|
||||
+ nutSliceSegmentSTSAR = 5,
|
||||
+ nutSliceSegmentRADLN = 6,
|
||||
+ nutSliceSegmentRADLR = 7,
|
||||
+ nutSliceSegmentRASLN = 8,
|
||||
+ nutSliceSegmentRASLR = 9,
|
||||
+ nutSliceSegmentBLAWLP = 16,
|
||||
+ nutSliceSegmentBLAWRADL = 17,
|
||||
+ nutSliceSegmentBLANLP = 18,
|
||||
+ nutSliceSegmentIDRWRADL = 19,
|
||||
+ nutSliceSegmentIDRNLP = 20,
|
||||
+ nutSliceSegmentCRANUT = 21,
|
||||
+ nutVideoParameterSet = 32,
|
||||
+ nutSequenceParameterSet = 33,
|
||||
+ nutPictureParameterSet = 34,
|
||||
+ nutAccessUnitDelimiter = 35,
|
||||
+ nutEndOfSequence = 36,
|
||||
+ nutEndOfBitstream = 37,
|
||||
+ nutFillerData = 38,
|
||||
+ nutPrefixSEI = 39,
|
||||
+ nutSuffixSEI = 40,
|
||||
+ nutNonVCLRes0 = 41,
|
||||
+ nutNonVCLRes3 = 44,
|
||||
+ nutUnspecified0 = 48,
|
||||
+ nutUnspecified7 = 55,
|
||||
+ };
|
||||
+public:
|
||||
+ cH265Parser(void);
|
||||
+ virtual int Parse(const uchar *Data, int Length, int Pid);
|
||||
+ };
|
||||
+
|
||||
+cH265Parser::cH265Parser(void) :
|
||||
+ cH264Parser()
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+int cH265Parser::Parse(const uchar *Data, int Length, int Pid)
|
||||
+{
|
||||
+ newFrame = independentFrame = false;
|
||||
+ tsPayload.Setup(const_cast<uchar *>(Data), Length, Pid);
|
||||
+ if (TsPayloadStart(Data)) {
|
||||
+ tsPayload.SkipPesHeader();
|
||||
+ scanner = EMPTY_SCANNER;
|
||||
+ }
|
||||
+ for (;;) {
|
||||
+ scanner = (scanner << 8) | GetByte(true);
|
||||
+ if ((scanner & 0xFFFFFF00) == 0x00000100) { // NAL unit start
|
||||
+ uchar NalUnitType = (scanner >> 1) & 0x3F;
|
||||
+ GetByte(); // nuh_layer_id + nuh_temporal_id_plus1
|
||||
+ if (NalUnitType <= nutSliceSegmentRASLR || (NalUnitType >= nutSliceSegmentBLAWLP && NalUnitType <= nutSliceSegmentCRANUT)) {
|
||||
+ if (NalUnitType == nutSliceSegmentIDRWRADL || NalUnitType == nutSliceSegmentIDRNLP || NalUnitType == nutSliceSegmentCRANUT)
|
||||
+ independentFrame = true;
|
||||
+ if (GetBit()) { // first_slice_segment_in_pic_flag
|
||||
+ newFrame = true;
|
||||
+ tsPayload.Statistics();
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary
|
||||
+ || tsPayload.Eof()) // or if we're out of data
|
||||
+ break;
|
||||
+ }
|
||||
+ return tsPayload.Used();
|
||||
+}
|
||||
+
|
||||
// --- cFrameDetector --------------------------------------------------------
|
||||
|
||||
cFrameDetector::cFrameDetector(int Pid, int Type)
|
||||
@@ -1463,6 +1539,8 @@ void cFrameDetector::SetPid(int Pid, int Type)
|
||||
parser = new cMpeg2Parser;
|
||||
else if (type == 0x1B)
|
||||
parser = new cH264Parser;
|
||||
+ else if (type == 0x24)
|
||||
+ parser = new cH265Parser;
|
||||
else if (type == 0x04 || type == 0x06) // MPEG audio or AC3 audio
|
||||
parser = new cAudioParser;
|
||||
else if (type != 0)
|
||||
--
|
||||
2.0.5
|
||||
|
@ -1,41 +0,0 @@
|
||||
--- vdr-2.2.0/dvbdevice.c.org 2015-01-14 13:09:19.000000000 +0100
|
||||
+++ vdr-2.2.0/dvbdevice.c 2016-06-25 15:50:40.619609021 +0200
|
||||
@@ -1089,6 +1089,17 @@
|
||||
NULL
|
||||
};
|
||||
|
||||
+#define NUMDELIVERYSYSTEMNAMES (sizeof(DeliverySystemNames)/sizeof(*DeliverySystemNames)-1)
|
||||
+
|
||||
+const char *GetDeliverySystemName(int n)
|
||||
+{
|
||||
+ if (n < 0 || n >= NUMDELIVERYSYSTEMNAMES)
|
||||
+ return DeliverySystemNames[0];
|
||||
+
|
||||
+ return DeliverySystemNames[n];
|
||||
+}
|
||||
+
|
||||
+
|
||||
cDvbDevice::cDvbDevice(int Adapter, int Frontend)
|
||||
{
|
||||
adapter = Adapter;
|
||||
@@ -1185,9 +1196,9 @@
|
||||
{
|
||||
if (dvbTuner) {
|
||||
if (dvbTuner->FrontendType() != SYS_UNDEFINED)
|
||||
- return DeliverySystemNames[dvbTuner->FrontendType()];
|
||||
+ return GetDeliverySystemName(dvbTuner->FrontendType());
|
||||
if (numDeliverySystems)
|
||||
- return DeliverySystemNames[deliverySystems[0]]; // to have some reasonable default
|
||||
+ return GetDeliverySystemName(deliverySystems[0]); // to have some reasonable default
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@@ -1318,7 +1329,7 @@
|
||||
if (numDeliverySystems > 0) {
|
||||
cString ds("");
|
||||
for (int i = 0; i < numDeliverySystems; i++)
|
||||
- ds = cString::sprintf("%s%s%s", *ds, i ? "," : "", DeliverySystemNames[deliverySystems[i]]);
|
||||
+ ds = cString::sprintf("%s%s%s", *ds, i ? "," : "", GetDeliverySystemName(deliverySystems[i]));
|
||||
cString ms("");
|
||||
if (frontendInfo.caps & FE_CAN_QPSK) { numModulations++; ms = cString::sprintf("%s%s%s", *ms, **ms ? "," : "", MapToUserString(QPSK, ModulationValues)); }
|
||||
if (frontendInfo.caps & FE_CAN_QAM_16) { numModulations++; ms = cString::sprintf("%s%s%s", *ms, **ms ? "," : "", MapToUserString(QAM_16, ModulationValues)); }
|
@ -1,153 +0,0 @@
|
||||
Description: dynamically resize buffer for caids
|
||||
Forwarded: yes
|
||||
Author: Lars Hanisch <dvb@flensrocker.de>
|
||||
|
||||
diff --git a/ci.c b/ci.c
|
||||
index ffc7ff7..8bfae23 100644
|
||||
--- a/ci.c
|
||||
+++ b/ci.c
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "skins.h"
|
||||
#include "tools.h"
|
||||
|
||||
+#define CAID_BUFSIZE 1024
|
||||
+
|
||||
// Set these to 'true' for debug output:
|
||||
static bool DumpTPDUDataTransfer = false;
|
||||
static bool DebugProtocol = false;
|
||||
@@ -763,9 +765,12 @@ private:
|
||||
int transponder;
|
||||
int programNumber;
|
||||
int caSystemIds[MAXCASYSTEMIDS + 1]; // list is zero terminated!
|
||||
+ uint8_t *caDescriptors;
|
||||
+ int caBufSize;
|
||||
void AddCaDescriptors(int Length, const uint8_t *Data);
|
||||
public:
|
||||
cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber, const int *CaSystemIds);
|
||||
+ ~cCiCaPmt(void);
|
||||
uint8_t CmdId(void) { return cmdId; }
|
||||
void SetListManagement(uint8_t ListManagement);
|
||||
uint8_t ListManagement(void) { return capmt[0]; }
|
||||
@@ -784,8 +789,15 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber
|
||||
caSystemIds[i] = CaSystemIds[i];
|
||||
}
|
||||
caSystemIds[i] = 0;
|
||||
- uint8_t caDescriptors[512];
|
||||
- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, 0);
|
||||
+ caBufSize = CAID_BUFSIZE;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0);
|
||||
+ if (caDescriptorsLength < 0) {
|
||||
+ delete [] caDescriptors;
|
||||
+ caBufSize = -caDescriptorsLength + 8;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0);
|
||||
+ }
|
||||
length = 0;
|
||||
capmt[length++] = CPLM_ONLY;
|
||||
capmt[length++] = (ProgramNumber >> 8) & 0xFF;
|
||||
@@ -797,6 +809,11 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber
|
||||
AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
}
|
||||
|
||||
+cCiCaPmt::~cCiCaPmt(void)
|
||||
+{
|
||||
+ delete [] caDescriptors;
|
||||
+}
|
||||
+
|
||||
void cCiCaPmt::SetListManagement(uint8_t ListManagement)
|
||||
{
|
||||
capmt[0] = ListManagement;
|
||||
@@ -805,21 +822,34 @@ void cCiCaPmt::SetListManagement(uint8_t ListManagement)
|
||||
void cCiCaPmt::AddPid(int Pid, uint8_t StreamType)
|
||||
{
|
||||
if (Pid) {
|
||||
- uint8_t caDescriptors[512];
|
||||
- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, Pid);
|
||||
- //XXX buffer overflow check???
|
||||
- capmt[length++] = StreamType;
|
||||
- capmt[length++] = (Pid >> 8) & 0xFF;
|
||||
- capmt[length++] = Pid & 0xFF;
|
||||
- esInfoLengthPos = length;
|
||||
- capmt[length++] = 0x00; // ES_info_length H (at ES level)
|
||||
- capmt[length++] = 0x00; // ES_info_length L
|
||||
- AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid);
|
||||
+ if (caDescriptorsLength < 0) {
|
||||
+ delete [] caDescriptors;
|
||||
+ caBufSize = -caDescriptorsLength + 8;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid);
|
||||
+ }
|
||||
+ if (length + 5 < int(sizeof(capmt))) {
|
||||
+ capmt[length++] = StreamType;
|
||||
+ capmt[length++] = (Pid >> 8) & 0xFF;
|
||||
+ capmt[length++] = Pid & 0xFF;
|
||||
+ esInfoLengthPos = length;
|
||||
+ capmt[length++] = 0x00; // ES_info_length H (at ES level)
|
||||
+ capmt[length++] = 0x00; // ES_info_length L
|
||||
+ AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: buffer overflow in CA descriptor");
|
||||
}
|
||||
}
|
||||
|
||||
void cCiCaPmt::AddCaDescriptors(int Length, const uint8_t *Data)
|
||||
{
|
||||
+ if (Length < 0) {
|
||||
+ dsyslog("DEBUG: calling AddCaDescriptors with Length %d", Length);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (esInfoLengthPos) {
|
||||
if (length + Length < int(sizeof(capmt))) {
|
||||
if (Length || cmdId == CPCI_QUERY) {
|
||||
diff --git a/pat.c b/pat.c
|
||||
index 98d306e..9dfbc62 100644
|
||||
--- a/pat.c
|
||||
+++ b/pat.c
|
||||
@@ -165,21 +165,25 @@ int cCaDescriptors::GetCaDescriptors(const int *CaSystemIds, int BufSize, uchar
|
||||
return 0;
|
||||
if (BufSize > 0 && Data) {
|
||||
int length = 0;
|
||||
+ bool tooSmall = false;
|
||||
for (cCaDescriptor *d = caDescriptors.First(); d; d = caDescriptors.Next(d)) {
|
||||
if (EsPid < 0 || d->EsPid() == EsPid) {
|
||||
const int *caids = CaSystemIds;
|
||||
do {
|
||||
if (*caids == 0xFFFF || d->CaSystem() == *caids) {
|
||||
- if (length + d->Length() <= BufSize) {
|
||||
+ if (length + d->Length() <= BufSize)
|
||||
memcpy(Data + length, d->Data(), d->Length());
|
||||
- length += d->Length();
|
||||
- }
|
||||
else
|
||||
- return -1;
|
||||
+ tooSmall = true;
|
||||
+ length += d->Length();
|
||||
}
|
||||
} while (*++caids);
|
||||
}
|
||||
}
|
||||
+ if (tooSmall) {
|
||||
+ dsyslog("DEBUG: buffer for ca-descriptors too small (%d, needed %d)", BufSize, length);
|
||||
+ return -length;
|
||||
+ }
|
||||
return length;
|
||||
}
|
||||
return -1;
|
||||
diff --git a/pat.h b/pat.h
|
||||
index 19e60dc..8bf0738 100644
|
||||
--- a/pat.h
|
||||
+++ b/pat.h
|
||||
@@ -45,7 +45,7 @@ int GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSy
|
||||
///< are copied that match one of the given CA system IDs (or all of them, if CaSystemIds
|
||||
///< is 0xFFFF).
|
||||
///< Returns the number of bytes copied into Data (0 if no CA descriptors are
|
||||
- ///< available), or -1 if BufSize was too small to hold all CA descriptors.
|
||||
+ ///< available), or -(NeededBufSize) if BufSize was too small to hold all CA descriptors.
|
||||
|
||||
int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids);
|
||||
///< Gets all CA pids for a given channel.
|
||||
|
@ -1,108 +0,0 @@
|
||||
Backport from 2.3.3
|
||||
|
||||
diff -Naur vdr-2.2.0/diseqc.c vdr-2.2.0.fixed/diseqc.c
|
||||
--- vdr-2.2.0/diseqc.c 2015-01-26 13:02:14.000000000 +0100
|
||||
+++ vdr-2.2.0.fixed/diseqc.c 2017-05-11 17:47:26.770740387 +0200
|
||||
@@ -253,10 +253,10 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
-uint cDiseqc::SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) const
|
||||
+int cDiseqc::SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t *Codes) const
|
||||
{
|
||||
if ((Codes[0] & 0xF0) == 0x70 ) { // EN50607 aka JESS
|
||||
- uint t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
|
||||
+ int t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
|
||||
if (t < 2048 && Scr->Channel() >= 0 && Scr->Channel() < 32) {
|
||||
Codes[1] = t >> 8 | Scr->Channel() << 3;
|
||||
Codes[2] = t;
|
||||
@@ -266,7 +266,7 @@
|
||||
}
|
||||
}
|
||||
else { // EN50494 aka Unicable
|
||||
- uint t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
|
||||
+ int t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
|
||||
if (t < 1024 && Scr->Channel() >= 0 && Scr->Channel() < 8) {
|
||||
Codes[3] = t >> 8 | (t == 0 ? 0 : scrBank << 2) | Scr->Channel() << 5;
|
||||
Codes[4] = t;
|
||||
@@ -399,7 +399,7 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, uint *Frequency) const
|
||||
+cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, int *Frequency) const
|
||||
{
|
||||
if (!*CurrentAction)
|
||||
*CurrentAction = commands;
|
||||
diff -Naur vdr-2.2.0/diseqc.h vdr-2.2.0.fixed/diseqc.h
|
||||
--- vdr-2.2.0/diseqc.h 2013-06-12 13:52:17.000000000 +0200
|
||||
+++ vdr-2.2.0.fixed/diseqc.h 2017-05-11 17:46:02.381565779 +0200
|
||||
@@ -86,7 +86,7 @@
|
||||
mutable int scrBank;
|
||||
char *commands;
|
||||
bool parsing;
|
||||
- uint SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) const;
|
||||
+ int SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t *Codes) const;
|
||||
int SetScrPin(const cScr *Scr, uint8_t *Codes) const;
|
||||
const char *Wait(const char *s) const;
|
||||
const char *GetPosition(const char *s) const;
|
||||
@@ -96,7 +96,7 @@
|
||||
cDiseqc(void);
|
||||
~cDiseqc();
|
||||
bool Parse(const char *s);
|
||||
- eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, uint *Frequency) const;
|
||||
+ eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, int *Frequency) const;
|
||||
///< Parses the DiSEqC commands and returns the appropriate action code
|
||||
///< with every call. CurrentAction must be the address of a character pointer,
|
||||
///< which is initialized to NULL. This pointer is used internally while parsing
|
||||
diff -Naur vdr-2.2.0/dvbdevice.c vdr-2.2.0.fixed/dvbdevice.c
|
||||
--- vdr-2.2.0/dvbdevice.c 2017-05-11 17:49:21.744005466 +0200
|
||||
+++ vdr-2.2.0.fixed/dvbdevice.c 2017-05-11 17:40:40.052025008 +0200
|
||||
@@ -329,7 +329,7 @@
|
||||
void ClearEventQueue(void) const;
|
||||
bool GetFrontendStatus(fe_status_t &Status) const;
|
||||
cPositioner *GetPositioner(void);
|
||||
- void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency);
|
||||
+ void ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency);
|
||||
void ResetToneAndVoltage(void);
|
||||
bool SetFrontend(void);
|
||||
virtual void Action(void);
|
||||
@@ -696,7 +696,7 @@
|
||||
return positioner;
|
||||
}
|
||||
|
||||
-void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency)
|
||||
+void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency)
|
||||
{
|
||||
if (!lnbPowerTurnedOn) {
|
||||
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power
|
||||
@@ -806,7 +806,7 @@
|
||||
|
||||
SETCMD(DTV_DELIVERY_SYSTEM, frontendType);
|
||||
if (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) {
|
||||
- unsigned int frequency = channel.Frequency();
|
||||
+ int frequency = channel.Frequency();
|
||||
if (Setup.DiSEqC) {
|
||||
if (const cDiseqc *diseqc = Diseqcs.Get(device->CardIndex() + 1, channel.Source(), frequency, dtp.Polarization(), &scr)) {
|
||||
frequency -= diseqc->Lof();
|
||||
@@ -829,7 +829,7 @@
|
||||
}
|
||||
else {
|
||||
int tone = SEC_TONE_OFF;
|
||||
- if (frequency < (unsigned int)Setup.LnbSLOF) {
|
||||
+ if (frequency < Setup.LnbSLOF) {
|
||||
frequency -= Setup.LnbFrequLo;
|
||||
tone = SEC_TONE_OFF;
|
||||
}
|
||||
diff -Naur vdr-2.2.0/remux.c vdr-2.2.0.fixed/remux.c
|
||||
--- vdr-2.2.0/remux.c 2017-05-11 17:49:21.740005437 +0200
|
||||
+++ vdr-2.2.0.fixed/remux.c 2017-05-11 17:38:29.322690063 +0200
|
||||
@@ -1627,7 +1627,7 @@
|
||||
Div += parser->IFrameTemporalReferenceOffset();
|
||||
if (Div <= 0)
|
||||
Div = 1;
|
||||
- uint32_t Delta = ptsValues[0] / Div;
|
||||
+ int Delta = ptsValues[0] / Div;
|
||||
// determine frame info:
|
||||
if (isVideo) {
|
||||
if (abs(Delta - 3600) <= 1)
|
@ -1,3 +1,9 @@
|
||||
107
|
||||
- add robotv plugin
|
||||
- add DDCI2 plugin
|
||||
- update VDR to 2.3.8
|
||||
- update all addons
|
||||
|
||||
106
|
||||
- update Sat>IP plugin to 28cc3ca
|
||||
- update VNSI to 63d8151
|
||||
|
@ -1,33 +1,36 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="2.2"
|
||||
PKG_REV="106"
|
||||
PKG_VERSION="2.3"
|
||||
PKG_REV="107"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://libreelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain vdr vdr-plugin-dummydevice vdr-plugin-dvbapi vdr-plugin-eepg vdr-plugin-epgfixer vdr-plugin-epgsearch vdr-plugin-iptv vdr-plugin-live vdr-plugin-restfulapi vdr-plugin-satip vdr-plugin-streamdev vdr-plugin-vnsiserver vdr-plugin-wirbelscan vdr-plugin-wirbelscancontrol vdr-plugin-xmltv2vdr"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr vdr-plugin-ddci2 vdr-plugin-dummydevice vdr-plugin-dvbapi vdr-plugin-eepg vdr-plugin-epgfixer \
|
||||
vdr-plugin-epgsearch vdr-plugin-iptv vdr-plugin-live vdr-plugin-restfulapi vdr-plugin-robotv vdr-plugin-satip \
|
||||
vdr-plugin-streamdev vdr-plugin-vnsiserver vdr-plugin-wirbelscan vdr-plugin-wirbelscancontrol vdr-plugin-xmltv2vdr"
|
||||
PKG_SECTION="service.multimedia"
|
||||
PKG_SHORTDESC="VDR: a TV streaming server for Linux"
|
||||
PKG_LONGDESC="VDR (2.2.0) is a TV streaming server for Linux supporting DVB-S/S2, DVB-C, DVB-T/T2, IPTV and SAT>IP"
|
||||
PKG_LONGDESC="VDR (2.3.x) is a TV streaming server for Linux supporting DVB-S/S2, DVB-C, DVB-T/T2, IPTV and SAT>IP"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
@ -79,6 +82,8 @@ addon() {
|
||||
cp -PR $(get_build_dir vdr-plugin-satip)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_EPGFIXER_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_RESTFULAPI_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-plugin-robotv)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-plugin-ddci2)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/eepg
|
||||
|
||||
|
32
packages/addons/service/vdr-addon/source/bin/vdr.start
Executable file → Normal file
32
packages/addons/service/vdr-addon/source/bin/vdr.start
Executable file → Normal file
@ -1,21 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
@ -48,7 +49,7 @@ ADDON_CACHE_DIR="$ADDON_HOME/cache"
|
||||
mkdir -p $ADDON_CACHE_DIR
|
||||
|
||||
VDR_ARG="-g /tmp --no-kbd"
|
||||
if [ "$DEBUG" = "yes" ]; then
|
||||
if [ "$DEBUG" = "yes" -o "$ENABLE_VDR_DEBUG" == "true" ]; then
|
||||
VDR_ARG="$VDR_ARG --log=3"
|
||||
else
|
||||
VDR_ARG="$VDR_ARG --log=1"
|
||||
@ -108,8 +109,13 @@ fi
|
||||
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P epgsearch"
|
||||
fi
|
||||
if [ "$ENABLE_DUMMYDEVICE" == "true" ] ; then
|
||||
if [ "$ENABLE_DUMMYDEVICE" == "true" \
|
||||
-o ! \( -d /dev/dvb/adapter0 -o "$WAIT_FOR_FEINIT" == "true" \
|
||||
-o "$ENABLE_SATIP" == "true" \
|
||||
-o "$ENABLE_STREAMDEV_CLIENT" == "true" \) ] ; then
|
||||
VDR_ARG="$VDR_ARG -P dummydevice"
|
||||
else
|
||||
VNSI_ARG=" -d"
|
||||
fi
|
||||
if [ "$ENABLE_SATIP" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P 'satip -d $SATIP_NUM_DEVICES'"
|
||||
@ -130,6 +136,12 @@ if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then
|
||||
cp $source /var/lib/epgsources
|
||||
done
|
||||
fi
|
||||
if [ "$ENABLE_ROBOTV" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P robotv"
|
||||
fi
|
||||
if [ "$ENABLE_DDCI2" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P ddci2"
|
||||
fi
|
||||
|
||||
if [ ! -d "$ADDON_HOME/epgimages" ]; then
|
||||
mkdir -p "$ADDON_HOME/epgimages"
|
||||
@ -144,7 +156,7 @@ RESTFULAPI_ARGS="$RESTFULAPI_ARGS --channellogos=\"$ADDON_HOME/channellogos\""
|
||||
VDR_ARG="$VDR_ARG -P 'restfulapi $RESTFULAPI_ARGS'"
|
||||
|
||||
# vnsi last
|
||||
VDR_ARG="$VDR_ARG -P vnsiserver"
|
||||
VDR_ARG="$VDR_ARG -P 'vnsiserver$VNSI_ARG'"
|
||||
|
||||
cd $ADDON_DIR/config
|
||||
mkdir -p $ADDON_CONFIG_DIR
|
||||
@ -178,4 +190,10 @@ if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||
fi
|
||||
|
||||
fix_config
|
||||
|
||||
if [ "$ENABLE_VDR_DEBUG" == "true" ] ; then
|
||||
/usr/bin/journalctl -b -0 -f -u service.multimedia.vdr-addon > $ADDON_LOG_FILE &
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
eval LANG=en_US.UTF-8 VDR_CHARSET_OVERRIDE="$VDR_CHARSET_OVERRIDE" exec vdr.bin $VDR_ARG
|
||||
|
@ -1,17 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2018-present Team LibreELEC
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
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()
|
||||
|
@ -0,0 +1,150 @@
|
||||
# Kodi Media Center language file
|
||||
# Addon Name: vdr-addon
|
||||
# Addon id: service.multimedia.vdr-addon
|
||||
# Addon Provider: Team LibreELEC
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "DVB"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "PLUGINS"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30002"
|
||||
msgid "VDR"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30003"
|
||||
msgid "DVB Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30004"
|
||||
msgid "Unload DVB modules before suspend"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30005"
|
||||
msgid "Wait for frontend initialization"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30006"
|
||||
msgid "Number of adapters to wait for"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30007"
|
||||
msgid "Enable charset override"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30008"
|
||||
msgid "- charset"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30009"
|
||||
msgid "Plugin Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30010"
|
||||
msgid "Enable plugin: iptv"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30011"
|
||||
msgid "Enable plugin: streamdev-client"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30012"
|
||||
msgid "Enable plugin: streamdev-server"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30013"
|
||||
msgid "Enable plugin: dvbapi (softcam)"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30014"
|
||||
msgid "Enable plugin: live"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30015"
|
||||
msgid "- listen on ip"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30016"
|
||||
msgid "- listen on port"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30017"
|
||||
msgid "Enable plugin: epgsearch"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30018"
|
||||
msgid "Enable plugin: xmltv2vdr"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30019"
|
||||
msgid "Enable plugin: extended EPG"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30020"
|
||||
msgid "Enable plugin: dummydevice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30021"
|
||||
msgid "Enable plugin: satip"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30022"
|
||||
msgid "Enable plugin: epgfixer"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30023"
|
||||
msgid "VDR Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30024"
|
||||
msgid "VDR Video Dir"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30025"
|
||||
msgid "Enable external recdmd"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30026"
|
||||
msgid "External recdmd path"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30027"
|
||||
msgid "- number of devices"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30028"
|
||||
msgid "restfulapi plugin options"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30029"
|
||||
msgid "- listen on ip"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30030"
|
||||
msgid "- listen on port"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30031"
|
||||
msgid "Enable plugin: roboTV"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30032"
|
||||
msgid "Enable plugin: DDCI2"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30033"
|
||||
msgid "DEBUG"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30034"
|
||||
msgid "VDR Debugging"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30035"
|
||||
msgid "Enable Debug Log"
|
||||
msgstr ""
|
@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="1000">DVB</string>
|
||||
<string id="1001">Plugins</string>
|
||||
<string id="1002">VDR</string>
|
||||
<string id="1020">DVB Configuration</string>
|
||||
<string id="1021">Unload DVB modules before suspend</string>
|
||||
<string id="1022">Wait for frontend initialization</string>
|
||||
<string id="1023">Number of adapters to wait for</string>
|
||||
<string id="1024">Enable charset override</string>
|
||||
<string id="1025">- charset</string>
|
||||
<string id="1030">Plugin Configuration</string>
|
||||
<string id="1031">Enable plugin: iptv</string>
|
||||
<string id="1032">Enable plugin: streamdev-client</string>
|
||||
<string id="1033">Enable plugin: streamdev-server</string>
|
||||
<string id="1036">Enable softcam (dvbapi)</string>
|
||||
<string id="1038">Enable plugin: live</string>
|
||||
<string id="1039">- listen on ip</string>
|
||||
<string id="1040">- listen on port</string>
|
||||
<string id="1044">Enable plugin: epgsearch</string>
|
||||
<string id="1045">Enable plugin: xmltv2vdr</string>
|
||||
<string id="1046">Enable plugin: extended EPG</string>
|
||||
<string id="1047">Enable plugin: dummydevice</string>
|
||||
<string id="1048">Enable plugin: satip</string>
|
||||
<string id="1049">Enable plugin: epgfixer</string>
|
||||
<string id="1051">VDR Configuration</string>
|
||||
<string id="1052">VDR Video Dir</string>
|
||||
<string id="1056">Enable external recdmd</string>
|
||||
<string id="1057">External recdmd path</string>
|
||||
<string id="1058">- number of devices</string>
|
||||
<string id="1070">restfulapi plugin options</string>
|
||||
<string id="1071">- listen on ip</string>
|
||||
<string id="1072">- listen on port</string>
|
||||
</strings>
|
@ -1,43 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="1000">
|
||||
<setting label="1020" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="WAIT_FOR_FEINIT" type="bool" label="1022" default="false" />
|
||||
<setting id="NUM_ADAPTERS" type="slider" range="1,16" option="int" label="1023" default="1" enable="eq(-1,true)" />
|
||||
<setting id="REMOVE_MODULES" type="text" label="1021" values="" default=""/>
|
||||
<setting id="ENABLE_CHARSET_OVERRIDE" type="bool" label="1024" default="false" />
|
||||
<setting id="CHARSET_OVERRIDE_STR" type="text" label="1025" visible="!eq(-1,false)" default="" />
|
||||
</category>
|
||||
<category label="1002">
|
||||
<setting label="1051" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="VDR_VIDEO_DIR" type="folder" label="1052" value="" default="/storage/videos" />
|
||||
<category label="30000">
|
||||
<setting label="30003" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" type="bool" label="1056" default="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="1057" visible="!eq(-1,false)" default="" />
|
||||
<setting id="WAIT_FOR_FEINIT" type="bool" label="30005" default="false" />
|
||||
<setting id="NUM_ADAPTERS" type="slider" range="1,16" option="int" label="30006" default="1" enable="eq(-1,true)" />
|
||||
<setting id="REMOVE_MODULES" type="text" label="30004" values="" default="" />
|
||||
<setting id="ENABLE_CHARSET_OVERRIDE" type="bool" label="30007" default="false" />
|
||||
<setting id="CHARSET_OVERRIDE_STR" type="text" label="30008" visible="!eq(-1,false)" default="" />
|
||||
</category>
|
||||
<category label="1001">
|
||||
<setting label="1030" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_IPTV" type="bool" label="1031" default="false" />
|
||||
<setting id="IPTV_NUM_DEVICES" type="slider" option="int" range="1,4" label="1058" visible="!eq(-1,false)" default="1" />
|
||||
<setting id="ENABLE_STREAMDEV_CLIENT" type="bool" label="1032" default="false" />
|
||||
<setting id="ENABLE_STREAMDEV_SERVER" type="bool" label="1033" default="false" />
|
||||
<setting id="ENABLE_LIVE" type="bool" label="1038" default="false" />
|
||||
<setting id="LIVE_IP" type="ipaddress" label="1039" values="" visible="!eq(-1,false)" default="0.0.0.0"/>
|
||||
<setting id="LIVE_PORT" type="number" label="1040" values="" visible="!eq(-2,false)" default="8008"/>
|
||||
<setting id="ENABLE_EEPG" type="bool" label="1046" default="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" type="bool" label="1044" default="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" type="bool" label="1047" default="false" />
|
||||
<setting id="ENABLE_SATIP" type="bool" label="1048" default="false" />
|
||||
<setting id="SATIP_NUM_DEVICES" type="slider" option="int" range="1,10" label="1058" visible="!eq(-1,false)" default="1" />
|
||||
<setting id="ENABLE_EPGFIXER" type="bool" label="1049" default="false" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_SOFTCAM" type="bool" label="1036" default="true" />
|
||||
<setting type="lsep" label="1070" />
|
||||
<setting id="RESTFULAPI_IP" type="ipaddress" label="1071" values="" default="127.0.0.1"/>
|
||||
<setting id="RESTFULAPI_PORT" type="number" label="1072" values="" default="8002"/>
|
||||
<category label="30002">
|
||||
<setting label="30023" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="VDR_VIDEO_DIR" type="folder" label="30024" value="" default="/storage/videos" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" type="bool" label="30025" default="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="30026" visible="!eq(-1,false)" default="" />
|
||||
</category>
|
||||
<category label="30001">
|
||||
<setting label="30009" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_DDCI2" type="bool" label="30032" default="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" type="bool" label="30020" default="false" />
|
||||
<setting id="ENABLE_SOFTCAM" type="bool" label="30013" default="false" />
|
||||
<setting id="ENABLE_EPGFIXER" type="bool" label="30022" default="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" type="bool" label="30017" default="false" />
|
||||
<setting id="ENABLE_EEPG" type="bool" label="30019" default="false" />
|
||||
<setting id="ENABLE_IPTV" type="bool" label="30010" default="false" />
|
||||
<setting id="IPTV_NUM_DEVICES" type="slider" option="int" range="1,4" label="30027" visible="!eq(-1,false)" default="1" />
|
||||
<setting id="ENABLE_LIVE" type="bool" label="30014" default="false" />
|
||||
<setting id="LIVE_IP" type="ipaddress" label="30015" values="" visible="!eq(-1,false)" default="0.0.0.0" />
|
||||
<setting id="LIVE_PORT" type="number" label="30016" values="" visible="!eq(-2,false)" default="8008" />
|
||||
<setting id="ENABLE_ROBOTV" type="bool" label="30031" default="false" />
|
||||
<setting id="ENABLE_SATIP" type="bool" label="30021" default="false" />
|
||||
<setting id="SATIP_NUM_DEVICES" type="slider" option="int" range="1,10" label="30027" visible="!eq(-1,false)" default="1" />
|
||||
<setting id="ENABLE_STREAMDEV_CLIENT" type="bool" label="30011" default="false" />
|
||||
<setting id="ENABLE_STREAMDEV_SERVER" type="bool" label="30012" default="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" type="bool" label="30018" default="false" />
|
||||
<setting type="lsep" label="30028" />
|
||||
<setting id="RESTFULAPI_IP" type="ipaddress" label="30029" values="" default="127.0.0.1" />
|
||||
<setting id="RESTFULAPI_PORT" type="number" label="30030" values="" default="8002" />
|
||||
</category>
|
||||
<category label="30033">
|
||||
<setting label="30034" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_VDR_DEBUG" type="bool" label="30035" default="false" />
|
||||
</category>
|
||||
</settings>
|
||||
|
@ -1,27 +1,30 @@
|
||||
<settings>
|
||||
<setting id="WAIT_FOR_FEINIT" value="false" />
|
||||
<setting id="NUM_ADAPTERS" value="1" />
|
||||
<setting id="REMOVE_MODULES" value="" />
|
||||
<setting id="VDR_VIDEO_DIR" value="/storage/videos" />
|
||||
<setting id="ENABLE_IPTV" value="false" />
|
||||
<setting id="ENABLE_SOFTCAM" value="true" />
|
||||
<setting id="ENABLE_STREAMDEV_CLIENT" value="false" />
|
||||
<setting id="ENABLE_STREAMDEV_SERVER" value="false" />
|
||||
<setting id="ENABLE_LIVE" value="false" />
|
||||
<setting id="LIVE_IP" value="0.0.0.0" />
|
||||
<setting id="LIVE_PORT" value="8008" />
|
||||
<setting id="ENABLE_EEPG" value="false" />
|
||||
<setting id="ENABLE_EPGFIXER" value="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" value="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" value="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" value="false" />
|
||||
<setting id="ENABLE_SATIP" value="false" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" value="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" value="" />
|
||||
<setting id="ENABLE_CHARSET_OVERRIDE" value="false" />
|
||||
<setting id="CHARSET_OVERRIDE_STR" value="" />
|
||||
<setting id="IPTV_NUM_DEVICES" value="1" />
|
||||
<setting id="SATIP_NUM_DEVICES" value="1" />
|
||||
<setting id="RESTFULAPI_IP" value="127.0.0.1" />
|
||||
<setting id="RESTFULAPI_PORT" value="8002" />
|
||||
<settings version="2">
|
||||
<setting id="CHARSET_OVERRIDE_STR" default="true"></setting>
|
||||
<setting id="ENABLE_CHARSET_OVERRIDE" default="true">false</setting>
|
||||
<setting id="ENABLE_DDCI2" default="true">false</setting>
|
||||
<setting id="ENABLE_DUMMYDEVICE" default="true">false</setting>
|
||||
<setting id="ENABLE_EEPG" default="true">false</setting>
|
||||
<setting id="ENABLE_EPGFIXER" default="true">false</setting>
|
||||
<setting id="ENABLE_EPGSEARCH" default="true">false</setting>
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" default="true">false</setting>
|
||||
<setting id="ENABLE_IPTV" default="true">false</setting>
|
||||
<setting id="ENABLE_LIVE" default="true">false</setting>
|
||||
<setting id="ENABLE_ROBOTV" default="true">false</setting>
|
||||
<setting id="ENABLE_SATIP" default="true">false</setting>
|
||||
<setting id="ENABLE_SOFTCAM">true</setting>
|
||||
<setting id="ENABLE_STREAMDEV_CLIENT" default="true">false</setting>
|
||||
<setting id="ENABLE_STREAMDEV_SERVER" default="true">false</setting>
|
||||
<setting id="ENABLE_VDR_DEBUG" default="true">false</setting>
|
||||
<setting id="ENABLE_XMLTV2VDR" default="true">false</setting>
|
||||
<setting id="EXTERNAL_RECCMD_PATH" default="true"></setting>
|
||||
<setting id="IPTV_NUM_DEVICES">1</setting>
|
||||
<setting id="LIVE_IP" default="true">0.0.0.0</setting>
|
||||
<setting id="LIVE_PORT">8008</setting>
|
||||
<setting id="NUM_ADAPTERS">1</setting>
|
||||
<setting id="REMOVE_MODULES" default="true"></setting>
|
||||
<setting id="RESTFULAPI_IP" default="true">127.0.0.1</setting>
|
||||
<setting id="RESTFULAPI_PORT">8002</setting>
|
||||
<setting id="SATIP_NUM_DEVICES">1</setting>
|
||||
<setting id="VDR_VIDEO_DIR" default="true">/storage/videos</setting>
|
||||
<setting id="WAIT_FOR_FEINIT" default="true">false</setting>
|
||||
</settings>
|
||||
|
@ -4,7 +4,7 @@ After=graphical.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.multimedia.vdr-addon/bin/vdr.start"
|
||||
TimeoutStopSec=2
|
||||
TimeoutStopSec=4
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
StartLimitInterval=0
|
||||
|
Loading…
x
Reference in New Issue
Block a user