mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 06:06:43 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-next
This commit is contained in:
commit
6f4449ea66
@ -22,5 +22,9 @@
|
|||||||
|
|
||||||
. config/options $1
|
. config/options $1
|
||||||
|
|
||||||
|
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID
|
||||||
|
cp -PR $PKG_DIR/config/settings.xml* $ADDON_BUILD/$PKG_ADDON_ID/settings-default.xml
|
||||||
|
cp -PR $PKG_DIR/config/xmltv-config* $ADDON_BUILD/$PKG_ADDON_ID/xmltv-config
|
||||||
|
|
||||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||||
cp -P $PKG_BUILD/build.Linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin
|
cp -P $PKG_BUILD/build.Linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
1.0.1
|
||||||
|
- add XMLTV tv_file_grab support
|
||||||
|
- add XMLTV configuration support
|
||||||
|
- add teletext support patch
|
||||||
|
- add fix memory leak patch
|
||||||
|
|
||||||
1.0.0
|
1.0.0
|
||||||
- prepare for OpenELEC-1.0 release
|
- prepare for OpenELEC-1.0 release
|
||||||
|
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
<settings>
|
||||||
|
<setting id="XMLTV_LOCATION" value="" />
|
||||||
|
<setting id="XMLTV_TYPE" value="NONE" />
|
||||||
|
</settings>
|
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"grabbers": [
|
||||||
|
{
|
||||||
|
"path": "/storage/.xbmc/addons/service.multimedia.hts-tvheadend/bin/tv_grab_file",
|
||||||
|
"description": "tv_grag_file is a simple grabber that just read the ~/.xmltv/tv_grab_file.xmltv file",
|
||||||
|
"version": "0.1\n",
|
||||||
|
"mtime": 1318774706,
|
||||||
|
"capabilities": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grab-interval": 12,
|
||||||
|
"grab-enabled": 1,
|
||||||
|
"current-grabber": "/storage/.xbmc/addons/service.multimedia.hts-tvheadend/bin/tv_grab_file"
|
||||||
|
}
|
@ -0,0 +1,112 @@
|
|||||||
|
From 3b407aa2053b1db3316873acd05c64319676eb34 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jernej=20Fija=C4=8Dko?= <jernej@jernej-ThinkCentre-M91p.(none)>
|
||||||
|
Date: Fri, 30 Sep 2011 12:56:01 +0200
|
||||||
|
Subject: [PATCH] Deliver raw teletext to clients that are able to display it (e.g. XBMC)
|
||||||
|
|
||||||
|
---
|
||||||
|
src/parsers.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
src/tsdemux.c | 7 +++----
|
||||||
|
2 files changed, 58 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/parsers.c b/src/parsers.c
|
||||||
|
index 9b7337d..68c7996 100644
|
||||||
|
--- a/src/parsers.c
|
||||||
|
+++ b/src/parsers.c
|
||||||
|
@@ -102,6 +102,9 @@ static void parse_aac(service_t *t, elementary_stream_t *st, const uint8_t *data
|
||||||
|
static void parse_subtitles(service_t *t, elementary_stream_t *st,
|
||||||
|
const uint8_t *data, int len, int start);
|
||||||
|
|
||||||
|
+static void parse_teletext(service_t *t, elementary_stream_t *st,
|
||||||
|
+ const uint8_t *data, int len, int start);
|
||||||
|
+
|
||||||
|
static int parse_mpa(service_t *t, elementary_stream_t *st, size_t len,
|
||||||
|
uint32_t next_startcode, int sc_offset);
|
||||||
|
|
||||||
|
@@ -158,6 +161,10 @@ parse_mpeg_ts(service_t *t, elementary_stream_t *st, const uint8_t *data,
|
||||||
|
parse_aac(t, st, data, len, start);
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case SCT_TELETEXT:
|
||||||
|
+ parse_teletext(t, st, data, len, start);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -1232,6 +1239,54 @@ parse_subtitles(service_t *t, elementary_stream_t *st, const uint8_t *data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Teletext parser
|
||||||
|
+ */
|
||||||
|
+static void
|
||||||
|
+parse_teletext(service_t *t, elementary_stream_t *st, const uint8_t *data,
|
||||||
|
+ int len, int start)
|
||||||
|
+{
|
||||||
|
+ th_pkt_t *pkt;
|
||||||
|
+ int psize, hlen;
|
||||||
|
+ const uint8_t *buf;
|
||||||
|
+ const uint8_t *d;
|
||||||
|
+ if(start) {
|
||||||
|
+ st->es_parser_state = 1;
|
||||||
|
+ st->es_buf.sb_err = 0;
|
||||||
|
+ st->es_parser_ptr = 0;
|
||||||
|
+ sbuf_reset(&st->es_buf);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if(st->es_parser_state == 0)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ sbuf_append(&st->es_buf, data, len);
|
||||||
|
+
|
||||||
|
+ if(st->es_buf.sb_ptr < 6)
|
||||||
|
+ return;
|
||||||
|
+ d = st->es_buf.sb_data;
|
||||||
|
+
|
||||||
|
+ psize = d[4] << 8 | d[5];
|
||||||
|
+
|
||||||
|
+ if(st->es_buf.sb_ptr != psize + 6)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ st->es_parser_state = 0;
|
||||||
|
+
|
||||||
|
+ hlen = parse_pes_header(t, st, d + 6, st->es_buf.sb_ptr - 6);
|
||||||
|
+ if(hlen < 0)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ psize -= hlen;
|
||||||
|
+ buf = d + 6 + hlen;
|
||||||
|
+
|
||||||
|
+ if(psize >= 46) {
|
||||||
|
+
|
||||||
|
+ pkt = pkt_alloc(buf, psize, st->es_curpts, st->es_curdts);
|
||||||
|
+ pkt->pkt_commercial = t->s_tt_commercial_advice;
|
||||||
|
+ parser_deliver(t, st, pkt);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
diff --git a/src/tsdemux.c b/src/tsdemux.c
|
||||||
|
index 897fe1d..5fdaf8b 100644
|
||||||
|
--- a/src/tsdemux.c
|
||||||
|
+++ b/src/tsdemux.c
|
||||||
|
@@ -110,11 +110,10 @@ ts_recv_packet0(service_t *t, elementary_stream_t *st, const uint8_t *tsb)
|
||||||
|
got_section, st);
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case SCT_TELETEXT:
|
||||||
|
- teletext_input(t, st, tsb);
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
default:
|
||||||
|
+ if(st->es_type == SCT_TELETEXT)
|
||||||
|
+ teletext_input(t, st, tsb);
|
||||||
|
+
|
||||||
|
if(off > 188)
|
||||||
|
break;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.3.1
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
From 60e5a1014c52e926fb7dbb12392f60a473e44d2c Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jernej=20Fija=C4=8Dko?= <jernej@jernej-ThinkCentre-M91p.(none)>
|
||||||
|
Date: Fri, 30 Sep 2011 13:23:46 +0200
|
||||||
|
Subject: [PATCH] Fix memory leak in queue size protection
|
||||||
|
|
||||||
|
---
|
||||||
|
src/htsp.c | 3 +++
|
||||||
|
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/htsp.c b/src/htsp.c
|
||||||
|
index 8bb803b..f786a88 100644
|
||||||
|
--- a/src/htsp.c
|
||||||
|
+++ b/src/htsp.c
|
||||||
|
@@ -1508,6 +1508,9 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt)
|
||||||
|
|
||||||
|
hs->hs_dropstats[pkt->pkt_frametype]++;
|
||||||
|
|
||||||
|
+ // destroy the already created htsmsg to avoid memory leaks
|
||||||
|
+ htsmsg_destroy(m);
|
||||||
|
+
|
||||||
|
/* Queue size protection */
|
||||||
|
pkt_ref_dec(pkt);
|
||||||
|
return;
|
||||||
|
--
|
||||||
|
1.7.3.1
|
||||||
|
|
58
packages/addons/service/multimedia/hts-tvheadend/source/bin/tv_grab_file
Executable file
58
packages/addons/service/multimedia/hts-tvheadend/source/bin/tv_grab_file
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend"
|
||||||
|
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||||
|
XMLTV_TYPE=`grep XMLTV_TYPE $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||||
|
XMLTV_LOCATION=`grep XMLTV_LOCATION $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||||
|
|
||||||
|
dflag=
|
||||||
|
vflag=
|
||||||
|
cflag=
|
||||||
|
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
||||||
|
cat "$XMLTV_LOCATION"
|
||||||
|
exit 0
|
||||||
|
elif [ "$XMLTV_TYPE" = "WEB" ]; then
|
||||||
|
wget -qO - "$XMLTV_LOCATION"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
for arg; do
|
||||||
|
delim=""
|
||||||
|
case "$arg" in
|
||||||
|
#translate --gnu-long-options to -g (short options)
|
||||||
|
--description) args="${args}-d ";;
|
||||||
|
--version) args="${args}-v ";;
|
||||||
|
--capabilities) args="${args}-c ";;
|
||||||
|
#pass through anything else
|
||||||
|
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||||
|
args="${args}${delim}${arg}${delim} ";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#Reset the positional parameters to the short options
|
||||||
|
eval set -- $args
|
||||||
|
|
||||||
|
while getopts "dvc" option; do
|
||||||
|
case $option in
|
||||||
|
d) dflag=1;;
|
||||||
|
v) vflag=1;;
|
||||||
|
c) cflag=1;;
|
||||||
|
\?) printf "unknown option: -%s\n" $OPTARG
|
||||||
|
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac >&2
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$dflag" ]; then
|
||||||
|
printf "tv_grab_file is a simple grabber that just read the local or web XMLTV formated file\n"
|
||||||
|
fi
|
||||||
|
if [ "$vflag" ]; then
|
||||||
|
printf "0.1\n"
|
||||||
|
fi
|
||||||
|
if [ "$cflag" ]; then
|
||||||
|
printf "baseline\n"
|
||||||
|
fi
|
@ -23,10 +23,27 @@
|
|||||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.hts-tvheadend"
|
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.hts-tvheadend"
|
||||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend"
|
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend"
|
||||||
LOG_FILE="$ADDON_HOME/service.log"
|
LOG_FILE="$ADDON_HOME/service.log"
|
||||||
|
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||||
|
XMLTV_FILE="$ADDON_DIR/bin/tv_grab_file"
|
||||||
|
XMLTV_SETTINGS_DIR="$ADDON_HOME/xmltv"
|
||||||
|
XMLTV_SETTINGS_FILE="$XMLTV_SETTINGS_DIR/config"
|
||||||
|
|
||||||
|
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||||
|
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then
|
||||||
|
mkdir -p $XMLTV_SETTINGS_DIR
|
||||||
|
cp $ADDON_DIR/xmltv-config $XMLTV_SETTINGS_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$XMLTV_FILE" ]; then
|
||||||
|
chmod +x $XMLTV_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
TVHEADEND_ARG="-f -C -s -u root -g root -c $ADDON_HOME"
|
TVHEADEND_ARG="-f -C -s -u root -g root -c $ADDON_HOME"
|
||||||
|
|
||||||
mkdir -p $ADDON_HOME
|
mkdir -p $ADDON_HOME
|
||||||
if [ ! $(pidof tvheadend) ];then
|
if [ ! $(pidof tvheadend) ];then
|
||||||
tvheadend $TVHEADEND_ARG &>$LOG_FILE
|
tvheadend $TVHEADEND_ARG &>$LOG_FILE
|
||||||
fi
|
fi
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<strings>
|
||||||
|
|
||||||
|
<!-- SABnzbd-Suite -->
|
||||||
|
<string id="1000">XMLTV</string>
|
||||||
|
<string id="1011">XMLTV configuration</string>
|
||||||
|
<string id="1011">XMLTV source type</string>
|
||||||
|
<string id="1012">XMLTV location</string>
|
||||||
|
|
||||||
|
</strings>
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<settings>
|
||||||
|
|
||||||
|
<!-- HTS TVHEADEND -->
|
||||||
|
<category label="1000">
|
||||||
|
<setting label="1010" type="lsep"/>
|
||||||
|
<setting type="sep" />
|
||||||
|
<setting id="XMLTV_TYPE" type="labelenum" label="1011" values="NONE|FILE|WEB" sort="yes" default="NONE"/>
|
||||||
|
<setting id="XMLTV_LOCATION" type="text" label="1012" default="" enable="!eq(-1,1)"/>
|
||||||
|
</category>
|
||||||
|
</settings>
|
@ -0,0 +1,15 @@
|
|||||||
|
diff -Naur xbmc-10.1-Dharma/xbmc/FileSystem/FileCurl.cpp xbmc-10.1-Dharma.patch/xbmc/FileSystem/FileCurl.cpp
|
||||||
|
--- xbmc-10.1-Dharma/xbmc/FileSystem/FileCurl.cpp 2011-03-08 02:49:14.000000000 +0100
|
||||||
|
+++ xbmc-10.1-Dharma.patch/xbmc/FileSystem/FileCurl.cpp 2011-10-17 19:21:04.180783870 +0200
|
||||||
|
@@ -803,9 +803,9 @@
|
||||||
|
// Detect whether we are "online" or not! Very simple and dirty!
|
||||||
|
bool CFileCurl::IsInternet(bool checkDNS /* = true */)
|
||||||
|
{
|
||||||
|
- CStdString strURL = "http://www.google.com";
|
||||||
|
+ CStdString strURL = "http://www.openelec.tv";
|
||||||
|
if (!checkDNS)
|
||||||
|
- strURL = "http://74.125.19.103"; // www.google.com ip
|
||||||
|
+ strURL = "http://212.101.13.10"; // www.openelec.tv ip
|
||||||
|
|
||||||
|
bool found = Exists(strURL);
|
||||||
|
Close();
|
Loading…
x
Reference in New Issue
Block a user