mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 14:37:59 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv
This commit is contained in:
commit
2205f208f8
@ -25,6 +25,7 @@
|
||||
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
|
||||
cp -PR $PKG_DIR/config/dvr-config $ADDON_BUILD/$PKG_ADDON_ID/dvr-config
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $PKG_BUILD/build.Linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
@ -1,3 +1,8 @@
|
||||
2.0.8
|
||||
- define default recordings folder to /storage/recordings
|
||||
- update to hts-tvheadend-a76f365
|
||||
- add patch for support IPTV radio streams
|
||||
|
||||
2.0.7
|
||||
- enable unloading/loading dvb modules on suspend/resume
|
||||
- add while loop for restarting tvheadend if it crashes
|
||||
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"storage": "/storage/recordings",
|
||||
"retention-days": 31,
|
||||
"pre-extra-time": 0,
|
||||
"post-extra-time": 0,
|
||||
"day-dir": 0,
|
||||
"channel-dir": 0,
|
||||
"channel-in-title": 0,
|
||||
"date-in-title": 0,
|
||||
"time-in-title": 0,
|
||||
"whitespace-in-title": 0,
|
||||
"title-dir": 0,
|
||||
"episode-in-title": 0,
|
||||
"tag-files": 1
|
||||
}
|
@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="hts-tvheadend"
|
||||
PKG_VERSION="b877800"
|
||||
PKG_REV="7"
|
||||
PKG_VERSION="a76f365"
|
||||
PKG_REV="8"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||
|
@ -1,7 +1,8 @@
|
||||
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)
|
||||
Subject: [PATCH 1/2] Deliver raw teletext to clients that are able to display
|
||||
it (e.g. XBMC)
|
||||
|
||||
---
|
||||
src/parsers.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
@ -22,7 +23,7 @@ index 9b7337d..68c7996 100644
|
||||
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,
|
||||
@@ -158,6 +161,10 @@ static int parse_pes_header(service_t *t, elementary_stream_t *st,
|
||||
parse_aac(t, st, data, len, start);
|
||||
break;
|
||||
|
||||
@ -33,7 +34,7 @@ index 9b7337d..68c7996 100644
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1232,6 +1239,54 @@ parse_subtitles(service_t *t, elementary_stream_t *st, const uint8_t *data,
|
||||
@@ -1232,6 +1239,54 @@ static int parse_pes_header(service_t *t, elementary_stream_t *st,
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,7 +93,7 @@ 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)
|
||||
@@ -110,11 +110,10 @@
|
||||
got_section, st);
|
||||
break;
|
||||
|
||||
@ -108,5 +109,38 @@ index 897fe1d..5fdaf8b 100644
|
||||
break;
|
||||
|
||||
--
|
||||
1.7.3.1
|
||||
1.7.5.4
|
||||
|
||||
|
||||
From a8026cd5b412c5096b0904f060ad5ffccdb883cf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jernej=20Fija=C4=8Dko?= <jernej@jernej-ThinkCentre-M91p.(none)>
|
||||
Date: Thu, 17 Nov 2011 08:25:31 +0100
|
||||
Subject: [PATCH 2/2] Disable teletext recording to prevent issues with other
|
||||
elementary streams. Temporary until a better solution
|
||||
is found.
|
||||
|
||||
---
|
||||
src/plumbing/globalheaders.c | 6 ++++++
|
||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/plumbing/globalheaders.c b/src/plumbing/globalheaders.c
|
||||
index 703591b..7f183d4 100644
|
||||
--- a/src/plumbing/globalheaders.c
|
||||
+++ b/src/plumbing/globalheaders.c
|
||||
@@ -202,6 +202,12 @@
|
||||
pkt->pkt_componentindex);
|
||||
assert(ssc != NULL);
|
||||
|
||||
+ if(ssc->ssc_type == SCT_TELETEXT) {
|
||||
+ free(sm);
|
||||
+ ssc->ssc_disabled = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
pkt = convertpkt(ssc, pkt);
|
||||
|
||||
apply_header(ssc, pkt);
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
|
@ -0,0 +1,257 @@
|
||||
From bb048589ab4e09e69b2fba3f639e8287ea9cc7c3 Mon Sep 17 00:00:00 2001
|
||||
From: Tadej Novak <tadej@tano.si>
|
||||
Date: Thu, 26 Jan 2012 18:39:09 +0100
|
||||
Subject: [PATCH 1/2] IPTV Radio support
|
||||
|
||||
Added service type for IPTV and IPTV radio for easier access in
|
||||
some software (like XBMC).
|
||||
---
|
||||
src/iptv_input.c | 6 ++++++
|
||||
src/service.c | 9 +++++++--
|
||||
src/service.h | 2 ++
|
||||
src/webui/extjs.c | 10 +++++++++-
|
||||
src/webui/static/app/iptv.js | 11 +++++++++--
|
||||
5 files changed, 33 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/iptv_input.c b/src/iptv_input.c
|
||||
index 0bfc311..361a151 100644
|
||||
--- a/src/iptv_input.c
|
||||
+++ b/src/iptv_input.c
|
||||
@@ -428,6 +428,7 @@
|
||||
inet_ntop(AF_INET6, &t->s_iptv_group6, abuf6, sizeof(abuf6));
|
||||
htsmsg_add_str(m, "group", abuf6);
|
||||
}
|
||||
+ htsmsg_add_u32(m, "radio", t->s_servicetype == ST_IPTV_RADIO);
|
||||
if(t->s_ch != NULL) {
|
||||
htsmsg_add_str(m, "channelname", t->s_ch->ch_name);
|
||||
htsmsg_add_u32(m, "mapped", 1);
|
||||
@@ -591,6 +592,11 @@
|
||||
if(!htsmsg_get_u32(c, "port", &u32))
|
||||
t->s_iptv_port = u32;
|
||||
|
||||
+ if(!htsmsg_get_u32(c, "radio", &u32) && u32)
|
||||
+ t->s_servicetype = ST_IPTV_RADIO;
|
||||
+ else
|
||||
+ t->s_servicetype = ST_IPTV;
|
||||
+
|
||||
pthread_mutex_lock(&t->s_stream_mutex);
|
||||
service_make_nicename(t);
|
||||
psi_load_service_settings(c, t);
|
||||
diff --git a/src/service.c b/src/service.c
|
||||
index 1a405d1..6899e2e 100644
|
||||
--- a/src/service.c
|
||||
+++ b/src/service.c
|
||||
@@ -732,6 +732,8 @@
|
||||
{ "HDTV", ST_HDTV },
|
||||
{ "SDTV-AC", ST_AC_SDTV },
|
||||
{ "HDTV-AC", ST_AC_HDTV },
|
||||
+ { "IPTV", ST_IPTV },
|
||||
+ { "IPTV Radio", ST_IPTV_RADIO },
|
||||
};
|
||||
|
||||
const char *
|
||||
@@ -750,7 +752,8 @@
|
||||
t->s_servicetype == ST_SDTV ||
|
||||
t->s_servicetype == ST_HDTV ||
|
||||
t->s_servicetype == ST_AC_SDTV ||
|
||||
- t->s_servicetype == ST_AC_HDTV;
|
||||
+ t->s_servicetype == ST_AC_HDTV ||
|
||||
+ t->s_servicetype == ST_IPTV;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -759,7 +762,9 @@
|
||||
int
|
||||
service_is_radio(service_t *t)
|
||||
{
|
||||
- return t->s_servicetype == ST_RADIO;
|
||||
+ return
|
||||
+ t->s_servicetype == ST_RADIO ||
|
||||
+ t->s_servicetype == ST_IPTV_RADIO;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/src/service.h b/src/service.h
|
||||
index 2185e42..186278d 100644
|
||||
--- a/src/service.h
|
||||
+++ b/src/service.h
|
||||
@@ -318,6 +318,8 @@ typedef void (pid_section_callback_t)(struct service *t,
|
||||
ST_HDTV = 0x11, /* HDTV (MPEG2) */
|
||||
ST_AC_SDTV = 0x16, /* Advanced codec SDTV */
|
||||
ST_AC_HDTV = 0x19, /* Advanced codec HDTV */
|
||||
+ ST_IPTV = 0x30, /* IPTV */
|
||||
+ ST_IPTV_RADIO = 0x31, /* Radio over IPTV */
|
||||
} s_servicetype;
|
||||
|
||||
|
||||
diff --git a/src/webui/extjs.c b/src/webui/extjs.c
|
||||
index 3ed9f8b..4596005 100644
|
||||
--- a/src/webui/extjs.c
|
||||
+++ b/src/webui/extjs.c
|
||||
@@ -1313,7 +1313,14 @@
|
||||
}
|
||||
save = 1;
|
||||
}
|
||||
-
|
||||
+ if(!htsmsg_get_u32(c, "radio", &u32)) {
|
||||
+ if(u32)
|
||||
+ t->s_servicetype = ST_IPTV_RADIO;
|
||||
+ else
|
||||
+ t->s_servicetype = ST_IPTV;
|
||||
+ save = 1;
|
||||
+ }
|
||||
+
|
||||
|
||||
save |= tvh_str_update(&t->s_iptv_iface, htsmsg_get_str(c, "interface"));
|
||||
if(save)
|
||||
@@ -1347,6 +1354,7 @@
|
||||
}
|
||||
|
||||
htsmsg_add_u32(r, "port", t->s_iptv_port);
|
||||
+ htsmsg_add_u32(r, "radio", t->s_servicetype == ST_IPTV_RADIO);
|
||||
htsmsg_add_u32(r, "enabled", t->s_enabled);
|
||||
return r;
|
||||
}
|
||||
diff --git a/src/webui/static/app/iptv.js b/src/webui/static/app/iptv.js
|
||||
index acdbfc0..b29e0b9 100644
|
||||
--- a/src/webui/static/app/iptv.js
|
||||
+++ b/src/webui/static/app/iptv.js
|
||||
@@ -11,6 +11,12 @@ tvheadend.iptv = function(adapterId) {
|
||||
width: 45
|
||||
});
|
||||
|
||||
+ var radioColumn = new Ext.grid.CheckColumn({
|
||||
+ header: "Radio",
|
||||
+ dataIndex: 'radio',
|
||||
+ width: 45
|
||||
+ });
|
||||
+
|
||||
var actions = new Ext.ux.grid.RowActions({
|
||||
header:'',
|
||||
dataIndex: 'actions',
|
||||
@@ -82,6 +88,7 @@ tvheadend.iptv = function(adapterId) {
|
||||
maxValue: 65535
|
||||
})
|
||||
},
|
||||
+ radioColumn,
|
||||
{
|
||||
header: "Service ID",
|
||||
dataIndex: 'sid',
|
||||
@@ -105,7 +112,7 @@ tvheadend.iptv = function(adapterId) {
|
||||
cm.defaultSortable = true;
|
||||
|
||||
var rec = Ext.data.Record.create([
|
||||
- 'id', 'enabled', 'channelname', 'interface', 'group', 'port',
|
||||
+ 'id', 'enabled', 'channelname', 'interface', 'group', 'port', 'radio',
|
||||
'sid', 'pmt', 'pcr'
|
||||
]);
|
||||
|
||||
@@ -246,7 +253,7 @@ tvheadend.iptv = function(adapterId) {
|
||||
stripeRows: true,
|
||||
title: 'IPTV',
|
||||
iconCls: 'iptv',
|
||||
- plugins: [enabledColumn, actions],
|
||||
+ plugins: [enabledColumn, radioColumn, actions],
|
||||
store: store,
|
||||
clicksToEdit: 2,
|
||||
cm: cm,
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
|
||||
From 18473dd11d983aecb6db6e49b454a5d6bb1a329f Mon Sep 17 00:00:00 2001
|
||||
From: Tadej Novak <tadej@tano.si>
|
||||
Date: Mon, 30 Jan 2012 16:55:25 +0100
|
||||
Subject: [PATCH 2/2] Use the same service type for all radio types
|
||||
|
||||
Tvheadend now uses same radio type ST_RADIO for DVB and IPTV radios.
|
||||
Otherwise IPTV streams have ST_IPTV type.
|
||||
---
|
||||
src/iptv_input.c | 4 ++--
|
||||
src/service.c | 5 +----
|
||||
src/service.h | 1 -
|
||||
src/webui/extjs.c | 4 ++--
|
||||
4 files changed, 5 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/iptv_input.c b/src/iptv_input.c
|
||||
index 361a151..aeb0ab2 100644
|
||||
--- a/src/iptv_input.c
|
||||
+++ b/src/iptv_input.c
|
||||
@@ -428,7 +428,7 @@
|
||||
inet_ntop(AF_INET6, &t->s_iptv_group6, abuf6, sizeof(abuf6));
|
||||
htsmsg_add_str(m, "group", abuf6);
|
||||
}
|
||||
- htsmsg_add_u32(m, "radio", t->s_servicetype == ST_IPTV_RADIO);
|
||||
+ htsmsg_add_u32(m, "radio", t->s_servicetype == ST_RADIO);
|
||||
if(t->s_ch != NULL) {
|
||||
htsmsg_add_str(m, "channelname", t->s_ch->ch_name);
|
||||
htsmsg_add_u32(m, "mapped", 1);
|
||||
@@ -593,7 +593,7 @@
|
||||
t->s_iptv_port = u32;
|
||||
|
||||
if(!htsmsg_get_u32(c, "radio", &u32) && u32)
|
||||
- t->s_servicetype = ST_IPTV_RADIO;
|
||||
+ t->s_servicetype = ST_RADIO;
|
||||
else
|
||||
t->s_servicetype = ST_IPTV;
|
||||
|
||||
diff --git a/src/service.c b/src/service.c
|
||||
index 6899e2e..015cd46 100644
|
||||
--- a/src/service.c
|
||||
+++ b/src/service.c
|
||||
@@ -733,7 +733,6 @@
|
||||
{ "SDTV-AC", ST_AC_SDTV },
|
||||
{ "HDTV-AC", ST_AC_HDTV },
|
||||
{ "IPTV", ST_IPTV },
|
||||
- { "IPTV Radio", ST_IPTV_RADIO },
|
||||
};
|
||||
|
||||
const char *
|
||||
@@ -762,9 +761,7 @@
|
||||
int
|
||||
service_is_radio(service_t *t)
|
||||
{
|
||||
- return
|
||||
- t->s_servicetype == ST_RADIO ||
|
||||
- t->s_servicetype == ST_IPTV_RADIO;
|
||||
+ return t->s_servicetype == ST_RADIO;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/src/service.h b/src/service.h
|
||||
index 186278d..40d1174 100644
|
||||
--- a/src/service.h
|
||||
+++ b/src/service.h
|
||||
@@ -319,7 +319,6 @@ typedef void (pid_section_callback_t)(struct service *t,
|
||||
ST_AC_SDTV = 0x16, /* Advanced codec SDTV */
|
||||
ST_AC_HDTV = 0x19, /* Advanced codec HDTV */
|
||||
ST_IPTV = 0x30, /* IPTV */
|
||||
- ST_IPTV_RADIO = 0x31, /* Radio over IPTV */
|
||||
} s_servicetype;
|
||||
|
||||
|
||||
diff --git a/src/webui/extjs.c b/src/webui/extjs.c
|
||||
index 4596005..4487deb 100644
|
||||
--- a/src/webui/extjs.c
|
||||
+++ b/src/webui/extjs.c
|
||||
@@ -1315,7 +1315,7 @@
|
||||
}
|
||||
if(!htsmsg_get_u32(c, "radio", &u32)) {
|
||||
if(u32)
|
||||
- t->s_servicetype = ST_IPTV_RADIO;
|
||||
+ t->s_servicetype = ST_RADIO;
|
||||
else
|
||||
t->s_servicetype = ST_IPTV;
|
||||
save = 1;
|
||||
@@ -1354,7 +1354,7 @@
|
||||
}
|
||||
|
||||
htsmsg_add_u32(r, "port", t->s_iptv_port);
|
||||
- htsmsg_add_u32(r, "radio", t->s_servicetype == ST_IPTV_RADIO);
|
||||
+ htsmsg_add_u32(r, "radio", t->s_servicetype == ST_RADIO);
|
||||
htsmsg_add_u32(r, "enabled", t->s_enabled);
|
||||
return r;
|
||||
}
|
||||
--
|
||||
1.7.5.4
|
||||
|
@ -1,26 +0,0 @@
|
||||
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
|
||||
|
@ -33,6 +33,9 @@ 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"
|
||||
DVR_SETTINGS_DIR="$ADDON_HOME/dvr"
|
||||
DVR_SETTINGS_FILE="$DVR_SETTINGS_DIR/config"
|
||||
DVR_DIR="$HOME/recordings"
|
||||
|
||||
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||
@ -43,6 +46,12 @@ if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then
|
||||
cp $ADDON_DIR/xmltv-config $XMLTV_SETTINGS_FILE
|
||||
fi
|
||||
|
||||
if [ ! -f "$DVR_SETTINGS_FILE" ]; then
|
||||
mkdir -p $DVR_DIR
|
||||
mkdir -p $DVR_SETTINGS_DIR
|
||||
cp $ADDON_DIR/dvr-config $DVR_SETTINGS_FILE
|
||||
fi
|
||||
|
||||
TVHEADEND_ARG="-C -s -u root -g video -c $ADDON_HOME"
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 87f59ed6f5a8874b484a3af614a94a62c928c1e4 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Tue, 13 Mar 2012 15:03:13 +0100
|
||||
Subject: [PATCH] tvheadend add-on: don't destroy messages in the Parse...()
|
||||
methods. fixes crash when an invalid EPG result was
|
||||
received from the server. closes #452
|
||||
|
||||
---
|
||||
xbmc/pvrclients/tvheadend/HTSPData.cpp | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/xbmc/pvrclients/tvheadend/HTSPData.cpp b/xbmc/pvrclients/tvheadend/HTSPData.cpp
|
||||
index 9add621..19943ba 100644
|
||||
--- a/xbmc/pvrclients/tvheadend/HTSPData.cpp
|
||||
+++ b/xbmc/pvrclients/tvheadend/HTSPData.cpp
|
||||
@@ -999,7 +999,6 @@ bool CHTSPData::ParseEvent(htsmsg_t* msg, uint32_t id, SEvent &event)
|
||||
{
|
||||
XBMC->Log(LOG_DEBUG, "%s - malformed event", __FUNCTION__);
|
||||
htsmsg_print(msg);
|
||||
- htsmsg_destroy(msg);
|
||||
return false;
|
||||
}
|
||||
event.Clear();
|
||||
--
|
||||
1.7.5.4
|
||||
|
@ -80,6 +80,14 @@
|
||||
writable = yes
|
||||
root preexec = mkdir -p /storage/tvshows
|
||||
|
||||
[Recordings]
|
||||
path = /storage/recordings
|
||||
available = yes
|
||||
browsable = yes
|
||||
public = yes
|
||||
writable = yes
|
||||
root preexec = mkdir -p /storage/recordings
|
||||
|
||||
[Downloads]
|
||||
path = /storage/downloads
|
||||
available = yes
|
||||
|
Loading…
x
Reference in New Issue
Block a user