]>
git.ipfire.org Git - thirdparty/tvheadend.git/log
Jaroslav Kysela [Tue, 2 Oct 2018 16:37:43 +0000 (18:37 +0200)]
Makefile: static libs - improve rules
Jaroslav Kysela [Tue, 2 Oct 2018 13:35:09 +0000 (15:35 +0200)]
bintray.py: remove staticlib from tidy
E.Smith [Mon, 1 Oct 2018 17:05:26 +0000 (18:05 +0100)]
FreeBSD: Add libunwind trap support for FreeBSD only.
Although the existing backtrace works correctly on Linux, on
FreeBSD it frequently generates a backtrace with completely
wrong function names. (FreeBSD 11.2, current latest version).
For example, making htsp_build_dvrentry crash with SEGV, it
would either not generate a stacktrace or would generate a
backtrace of:
-pthread_sigmask
-pthread_getspecific
-service_remove_unseen
-htsp_get_subscription_status
-htsp_init
-tcp_server_done
-tvhthread_create.
...instead of the correct backtrace of:
-<signal>
-htsp_build_dvrentry
-htsp_method_async
-htsp_read_loop
-htsp_serve...
So on FreeBSD only, we use libunwind to generate the
backtrace and function names. We explicitly make
libunwind and libexecinfo mutually exclusive since
FreeBSD has both.
Line are logged similar to:
CRASH: htsp_build_dvrentry+5d (ip=
11f659d sp=
7fffd8bc3930 )
Note that it does not have line numbers since the addr2line
does not appear to work on FreeBSD (even with the original
backtrace code).
An example of the problem with the old backtrace code using
the frame from htsp_method_async from within the tvheadend
traphandler after the retrieval of the stack frames:
(gdb) print frames
$38 = {0x806473954, 0x806472eb2, 0x7ffffffff193, 0x11f1638 <htsp_method_async+1640>, 0x11fe400 <htsp_read_loop+880>, 0x11f58e6 <htsp_serve+502>, 0x11b9b11 <tcp_server_start+401>,
0x11af45e <thread_wrapper+302>, 0x80646dc06, 0x0 <repeats 91 times>}
(gdb) print dladdr(0x11f1638, &dli) <--- addr of htsp_method_async from frame 4.
$39 = 1 <--- success
(gdb) print dli
$40 = {dli_fname = 0x7fffffffef97 ".../build.freebsd/tvheadend", dli_fbase = 0x1021000, dli_sname = 0x1044f91 "service_remove_unseen", <--- but wrong name
dli_saddr = 0x11eff80 <service_remove_unseen>} <--- and this is nearest symbol address
(gdb) print htsp_method_async+1640
$41 = (htsmsg_t *(*)(htsp_connection_t *, htsmsg_t *)) 0x11f1638 <htsp_method_async+1640> <---but gdb knows the original address is htsp_method_async
(gdb) print service_remove_unseen
$42 = {void (const char *, int)} 0x11eff80 <service_remove_unseen> <--- and gdb knows sevice_remove_unseen is at the dli_saddr.
By contrast, with libunwind, we get:
(gdb) print buf
$50 = "htsp_method_async", '\000' <repeats 110 times> <--- libunwind detected correct function name
(gdb) where 10 <--- even though our signal has been delivered on its own stack
#0 traphandler_libunwind () at src/trap.c:162
#1 0x000000000120cf06 in traphandler (sig=11, si=0x7fffdbbdb860, UC=0x7fffdbbdb4f0) at src/trap.c:221
#2 0x0000000806673954 in ?? ()
#3 0x0000000000000000 in ?? ()
(gdb) print ip
$51 =
18814904
(gdb) disass
18814904 <--- and gdb knows that ip address is for the same method as libunwind detected
Dump of assembler code for function htsp_method_async:
0x00000000011f1150 <+0>: push %rbp
E.Smith [Mon, 1 Oct 2018 15:57:36 +0000 (16:57 +0100)]
trap: Allow chdir /tmp even if prctl not supported.
Even though prctl is Linux specific, other platforms allow core
dumps to occur in the cwd, so it's useful to allow the "cd /tmp"
for those platforms if the existing --dump option is specified.
Jaroslav Kysela [Fri, 28 Sep 2018 18:37:11 +0000 (20:37 +0200)]
linuxdvb satconf: fix typo
Jaroslav Kysela [Fri, 28 Sep 2018 08:43:14 +0000 (10:43 +0200)]
makefile disclean: remove debian/.dephelper directory, fixes #5223
Jaroslav Kysela [Thu, 27 Sep 2018 16:39:50 +0000 (18:39 +0200)]
doozer: add python-requests package as requirement
Jaroslav Kysela [Thu, 27 Sep 2018 16:35:51 +0000 (18:35 +0200)]
try to move build caching to pcloud
Pablo [Tue, 2 Oct 2018 18:41:36 +0000 (20:41 +0200)]
Optimize default configuration of SAT>IP Triax TSS 400
https://tvheadend.org/issues/4244
As we discussed a while ago, the configuration should be different.
* The complete mux should not be supported
* Along with it an increase of maximum pids is useful to open more channels.
Jaroslav Kysela [Tue, 2 Oct 2018 13:54:19 +0000 (15:54 +0200)]
configure: libav - check for libswresample or libavresample, fixes #5235
Jaroslav Kysela [Mon, 1 Oct 2018 15:54:24 +0000 (17:54 +0200)]
htspmon: python3 fixes
E.Smith [Tue, 25 Sep 2018 11:50:57 +0000 (12:50 +0100)]
python: Handle incorrect utf-8 decodes.
Some broadcasts can have different charsets (such as iso-8859-1) but
we assume utf-8 unless user has set it correctly. So when decode fails
we get an exception. So we now attempt to decode with error
replacement so user sees incorrect character.
This gives "u'Denise Th\ufffd\ufffd':" as the string returned instead
when the received name contains an é that is in iso-8859-1 instead of
utf-8.
E.Smith [Tue, 25 Sep 2018 00:08:34 +0000 (01:08 +0100)]
python: Make files python2/python3 compatible.
Ensure files are compatible with python2 and python3.
Main differences:
- print requires brackets
- string is bytes in python2 and unicode in python3
- need to use struct to pack/unpack binary data
- need to convert socket data to bytearray to allow data extraction
E.Smith [Sun, 23 Sep 2018 13:59:39 +0000 (14:59 +0100)]
python: Need to utf-8 decode our strings.
Jaroslav Kysela [Mon, 1 Oct 2018 12:29:46 +0000 (14:29 +0200)]
htsp.py: do not send authorization for each request
Jaroslav Kysela [Mon, 1 Oct 2018 09:14:59 +0000 (11:14 +0200)]
subscription: try to iterate through all adapters on tuning failed error, fixes #5230
Jaroslav Kysela [Mon, 1 Oct 2018 08:17:33 +0000 (10:17 +0200)]
service: add error text to the service instance log
Jaroslav Kysela [Mon, 1 Oct 2018 08:11:55 +0000 (10:11 +0200)]
satip: pass specinv by default for DVB-C, fixes #5231
Jaroslav Kysela [Thu, 20 Sep 2018 15:20:20 +0000 (17:20 +0200)]
bintray.py: handle 409 error as warning for upload (fix jessie builds)
Jaroslav Kysela [Wed, 20 Jun 2018 07:41:20 +0000 (09:41 +0200)]
doozer: try to fix centos build
Jaroslav Kysela [Mon, 9 Oct 2017 14:10:01 +0000 (16:10 +0200)]
bintray.py: fix the argument check
Jaroslav Kysela [Thu, 20 Sep 2018 12:46:42 +0000 (14:46 +0200)]
main: set default user/group only when specified for non-root users, fixes #5213
E.Smith [Mon, 17 Sep 2018 12:10:27 +0000 (13:10 +0100)]
FreeBSD: Check for fdatasync system call since it is supported on FreeBSD 11.1 and later.
E.Smith [Wed, 19 Sep 2018 16:16:22 +0000 (17:16 +0100)]
FreeBSD: Requires libinotify for inotify support.
E.Smith [Wed, 19 Sep 2018 15:57:24 +0000 (16:57 +0100)]
FreeBSD: Support different stat format in Makefile.webui.
The stat program on FreeBSD requires different arguments to GNU
stat. In the past, this is done by the ports patching the Makefile
post-extract.
Instead, we'll configure the program's arguments based on platform.
We'll also use %z (filesize) instead of the port's %b (file blocks) so
we generate equivalent output to the Linux version..
E.Smith [Mon, 17 Sep 2018 16:17:24 +0000 (17:17 +0100)]
Fix a few "old-style-declaration" warnings in gcc.
Mainly needing to put "static" first and "__thread" earlier.
Jaroslav Kysela [Thu, 13 Sep 2018 13:10:11 +0000 (15:10 +0200)]
tvhcsa: optimize offset check for incomplete packet in CSA descramble
Jaroslav Kysela [Thu, 13 Sep 2018 06:41:17 +0000 (08:41 +0200)]
tvhcsa: add invalid offset check for CSA descramble
Jaroslav Kysela [Wed, 12 Sep 2018 10:45:29 +0000 (12:45 +0200)]
mkv: set keyframe flag for all audio tracks, fixes #5151
Jaroslav Kysela [Wed, 12 Sep 2018 06:59:29 +0000 (08:59 +0200)]
linuxdvb: add 'Higher LNB voltage' option to the satconf, fixes #5199
mw@hesotech.de [Fri, 7 Sep 2018 07:17:36 +0000 (09:17 +0200)]
BugFix: SATIP_SETUP_SPECINV0 and SATIP_SETUP_SPECINV1 has the same definition
Jaroslav Kysela [Tue, 4 Sep 2018 11:06:59 +0000 (13:06 +0200)]
satip client: fix type for specinv, fixes #5190
Jaroslav Kysela [Mon, 3 Sep 2018 14:02:33 +0000 (16:02 +0200)]
satip client: make specinv parameter tri-state (allows specinv=1)
MartiMcFly [Fri, 3 Aug 2018 02:12:08 +0000 (04:12 +0200)]
sf_pass_weight can't be used with netstream 4c
Martina Pietruschka [Mon, 30 Jul 2018 13:02:50 +0000 (15:02 +0200)]
implement netsream 4c
Conflicts:
src/input/mpegts/satip/satip_private.h
E.Smith [Fri, 17 Aug 2018 22:05:40 +0000 (23:05 +0100)]
FreeBSD: Fix recv problem if no data received.
If using satip then we would frequently fail to read the data and
then disconnect with errno 0.
So, we now make the FreeBSD socket read consistent with the Linux
version and return EIO on non-error.
Jaroslav Kysela [Mon, 3 Sep 2018 13:32:39 +0000 (15:32 +0200)]
dvr inotify: fixes for the previous IN_MOVED_TO change
joeuser [Sun, 2 Sep 2018 20:26:00 +0000 (22:26 +0200)]
dvr inotify: fix case where IN_MOVED_TO comes in subsequent read after read contaning IN_MOVED_FROM
Jaroslav Kysela [Fri, 20 Apr 2018 10:26:21 +0000 (12:26 +0200)]
dvr_inotify: gcc8 fix
Jaroslav Kysela [Wed, 8 Nov 2017 16:59:28 +0000 (17:59 +0100)]
dvr inotify: fix my last change, fixes #4702
Jaroslav Kysela [Wed, 8 Nov 2017 16:54:16 +0000 (17:54 +0100)]
dvr inotify: reuse variables, fixes #4702
E.Smith [Fri, 3 Nov 2017 19:32:21 +0000 (19:32 +0000)]
dvr: Move declarations to top of function. (#4702)
Issue: #4702.
E.Smith [Fri, 13 Oct 2017 00:02:52 +0000 (01:02 +0100)]
dvr: Handle symlinks for inotify. (#4702)
The filenames stored in the dvr/log are not realpath but can
be based on symlinks.
So, we might record in to /media/Videos/user1/show1 but
user1 could be a symlink to /media/Videos-drive2 (rather than
a bind mount).
Since inotify returns realpaths, if means that when we attempt
to update the dvr/log the filenames do not match.
So we now monitor the realpath for the directories and convert
filenames to realpath when doing the compare.
We do not store realpath in the dvr/log since users do not
want symlinks replaced with real paths.
Issue: #4702.
E.Smith [Thu, 12 Oct 2017 13:35:54 +0000 (14:35 +0100)]
dvr: Handle inotify moving file to different directory. (#4702)
Previously if we moved a file from one directory we are
monitoring to another directory we are monitoring then the
path would not be updated correctly since we did not lookup
the 'to_fd'.
Issue: #4702.
mpmc [Wed, 25 Jul 2018 21:59:56 +0000 (22:59 +0100)]
debian: always use gzip compression for deb files (bintray issue) - fixes #5091
Bernd Kuhls [Sat, 23 Jun 2018 18:47:26 +0000 (20:47 +0200)]
configure: check for strlcat & strlcpy
Building tvheadend with uclibc and musl fails:
src/tvh_string.h:50:22: error: static declaration of 'strlcpy' follows non-static declaration
static inline size_t strlcpy(char *dst, const char *src, size_t size)
src/tvh_string.h:61:22: error: static declaration of 'strlcat' follows non-static declaration
static inline size_t strlcat(char *dst, const char *src, size_t count)
because they provide strlcat & strlcpy:
https://sourceware.org/glibc/wiki/strlcpy
This patch adds configure checks and makes the implementation in
tvh_string.h optional, the configure log looks like this:
glibc
checking for cc strlcat ... fail
checking for cc strlcpy ... fail
musl
checking for cc strlcat ... ok
checking for cc strlcpy ... ok
uclibc
checking for cc strlcat ... ok
checking for cc strlcpy ... ok
Jaroslav Kysela [Wed, 20 Jun 2018 13:08:03 +0000 (15:08 +0200)]
mpegts input: do not join non-existent threads
Jaroslav Kysela [Wed, 20 Jun 2018 13:11:23 +0000 (15:11 +0200)]
add missing tvh_string.h header file
Jaroslav Kysela [Wed, 20 Jun 2018 12:23:43 +0000 (14:23 +0200)]
introduce strlcpy() and strlcat() functions and use them
irgendsontyp [Sat, 16 Jun 2018 15:57:37 +0000 (17:57 +0200)]
Fix cloning an entry in UIs where you select a type and save the clone manually
Jaroslav Kysela [Fri, 19 Jan 2018 09:20:17 +0000 (10:20 +0100)]
Makefile: Add CFLAGS for timestamp and bundle objects, fixes #4870
Jaroslav Kysela [Fri, 22 Jun 2018 08:26:22 +0000 (10:26 +0200)]
htsmsg xml parser: fix NULL oops, fixes #5135
mpmc [Thu, 24 May 2018 17:54:06 +0000 (18:54 +0100)]
doozer: workaround for makedev issues on bionic and add bionic i386
Jaroslav Kysela [Fri, 20 Apr 2018 13:26:19 +0000 (15:26 +0200)]
add bionic-amd64.sh to Autobuild
Jaroslav Kysela [Fri, 20 Apr 2018 13:12:10 +0000 (15:12 +0200)]
doozer: use docker, add bionic-amd64, fedora27, fedora28 targets, remove fedora24 target
Jaroslav Kysela [Fri, 20 Apr 2018 13:08:07 +0000 (15:08 +0200)]
rpm: spec cleanups
Jaroslav Kysela [Fri, 20 Apr 2018 12:28:13 +0000 (14:28 +0200)]
ffmpeg 3.5 fixes
Jaroslav Kysela [Fri, 20 Apr 2018 10:20:32 +0000 (12:20 +0200)]
gcc8 fixes
Jongsung Kim [Mon, 16 Apr 2018 04:01:41 +0000 (13:01 +0900)]
tcp: fix tcp_socket_dead() for FreeBSD
The FreeBSD port of tvheadend couldn't stream Live TV, and debug
log shows webui judged the peer socket closed immediately after
starting streaming:
2018-04-15 06:30:04.996 [ DEBUG]:webui: Start streaming /stream/mux/
c4bc67bdaa13457e33740ca883cc4d75 ?ticket=
7D1B56AD0E434C5F7EBFA4677A7FBE4C94097974
2018-04-15 06:30:04.996 [ DEBUG]:webui: Stop streaming /stream/mux/
c4bc67bdaa13457e33740ca883cc4d75 ?ticket=
7D1B56AD0E434C5F7EBFA4677A7FBE4C94097974 , client hung up
It looks because tcp_socket_dead() misunderstood the zero-return
from recv(). For the FreeBSD, recv() might return zero for alive
sockets which have nothing to read.
Patch tested with the latest FreeBSD port of tvheadend-4.2.6.
Jaroslav Kysela [Thu, 1 Feb 2018 16:01:36 +0000 (17:01 +0100)]
webui: epg - add duration to store/dataIndex - fix sorting, fixes #4909
Jaroslav Kysela [Sun, 25 Mar 2018 17:37:05 +0000 (19:37 +0200)]
DVR: fix for the previous commit
pablozg [Sun, 25 Mar 2018 16:14:04 +0000 (18:14 +0200)]
Cosmetic fix for dvr entry info (webui)
Alex Mekkering [Wed, 21 Mar 2018 12:08:35 +0000 (13:08 +0100)]
Upgrade to libhdhomerun_20171221
Jaroslav Kysela [Sun, 25 Mar 2018 16:30:49 +0000 (18:30 +0200)]
SAT>IP server: don't serve XML description when not enabled, fixes #5029
Jaroslav Kysela [Wed, 21 Mar 2018 18:40:08 +0000 (19:40 +0100)]
hts_strtab: make all functions inline
Jaroslav Kysela [Wed, 21 Mar 2018 09:45:26 +0000 (10:45 +0100)]
imagecache: id is 'int' type, correct the overflow, fixes #5016
Jaroslav Kysela [Tue, 20 Mar 2018 10:24:56 +0000 (11:24 +0100)]
dvb psi: fix the 'improve section parser' commit, fixes #5005
root [Wed, 7 Mar 2018 17:37:23 +0000 (18:37 +0100)]
epggrab: giveup epg grabbing on SM_CODE_TUNING_FAILED (fixes loop)
Jaroslav Kysela [Wed, 7 Mar 2018 09:27:42 +0000 (10:27 +0100)]
DVR: return back dvr_entry_create_by_event() - wrong merge
Jaroslav Kysela [Wed, 7 Mar 2018 09:07:34 +0000 (10:07 +0100)]
DVR: improve the segmented event logic for EITp/f, issue #4989
Jaroslav Kysela [Tue, 6 Mar 2018 09:21:36 +0000 (10:21 +0100)]
dvb psi: improve section parser, fixes #4987
Jaroslav Kysela [Mon, 5 Mar 2018 13:47:37 +0000 (14:47 +0100)]
FIX inverted condition: DVR: do not merge multi-segmented files when EITp/f is enabled, fixes #4926, fixes #4988
Jaroslav Kysela [Tue, 27 Feb 2018 09:11:51 +0000 (10:11 +0100)]
parsers: remove debug printf
Jaroslav Kysela [Tue, 27 Feb 2018 09:05:20 +0000 (10:05 +0100)]
parsers: merge AC3/EAC3 code, add autodetect the real stream even if the PMT hints is false, fixes #4910, fixes #4971
Jaroslav Kysela [Mon, 26 Feb 2018 13:50:10 +0000 (14:50 +0100)]
parsers: change ac3/eac3 parsers to new parse_mpga123 scheme
Jaroslav Kysela [Sat, 24 Feb 2018 18:35:40 +0000 (19:35 +0100)]
DVR: compilation fix
Jaroslav Kysela [Sat, 24 Feb 2018 18:25:51 +0000 (19:25 +0100)]
DVR: try to fix the late running flag update, issue #4958
Jaroslav Kysela [Thu, 15 Feb 2018 18:45:32 +0000 (19:45 +0100)]
dvr: fix NULL pointer dereference in dvr_entry_get_epg_running, fixes #4943, fixes #4967
Jaroslav Kysela [Fri, 23 Feb 2018 19:40:43 +0000 (20:40 +0100)]
dvb psi lib: don't reset table when stuffing section is received
Jaroslav Kysela [Fri, 23 Feb 2018 07:00:54 +0000 (08:00 +0100)]
httpc: fix compilation error
Jaroslav Kysela [Thu, 22 Feb 2018 22:04:12 +0000 (23:04 +0100)]
httpc: fix the improper http_client_finish() call for RTP data state, fixes #4964
mpmc [Thu, 22 Feb 2018 15:54:15 +0000 (15:54 +0000)]
doozer: use git to pull in dvb-scan-tables
Jaroslav Kysela [Thu, 22 Feb 2018 14:20:14 +0000 (15:20 +0100)]
mpegts pid: fix mpegts_pid_weighted() for duplicate PIDs with different weight
Jaroslav Kysela [Tue, 20 Feb 2018 08:43:23 +0000 (09:43 +0100)]
dvr: add source reconfigured trace
Jaroslav Kysela [Thu, 14 Dec 2017 10:51:45 +0000 (11:51 +0100)]
DVR: rec - add more logging (running and muxing state)
Jaroslav Kysela [Tue, 13 Feb 2018 10:32:56 +0000 (11:32 +0100)]
DVR: do not merge multi-segmented files when EITp/f is enabled, fixes #4926
Jaroslav Kysela [Tue, 13 Feb 2018 10:00:30 +0000 (11:00 +0100)]
Makefile: fix --disable-dvbscan
Jaroslav Kysela [Sun, 11 Feb 2018 16:45:48 +0000 (17:45 +0100)]
dvb psi: parse first table bugfix2
Jaroslav Kysela [Sun, 11 Feb 2018 16:34:56 +0000 (17:34 +0100)]
dvb psi: parse first table bugfix
Jaroslav Kysela [Sat, 10 Feb 2018 07:19:03 +0000 (08:19 +0100)]
parser: parse_mpa - fix the end segment check, fixes #4882
Jaroslav Kysela [Mon, 19 Jun 2017 07:29:19 +0000 (09:29 +0200)]
linuxdvb: use MPEGTS_FULLMUX_PID (8192) when the PID filter overflows, fixes #4442
Jaroslav Kysela [Fri, 9 Feb 2018 09:57:12 +0000 (10:57 +0100)]
xmltv export: use summary for <desc/> tag when description is empty
Jaroslav Kysela [Fri, 9 Feb 2018 09:53:11 +0000 (10:53 +0100)]
parsers: improve parse_mpa123, fixes #4882
- the Layer III was misdetected
- add more robust code checks
- improve latency for the last frame
Jaroslav Kysela [Thu, 8 Feb 2018 17:13:19 +0000 (18:13 +0100)]
http: fix http_get_header_value() - digest auth
Jaroslav Kysela [Thu, 8 Feb 2018 15:17:36 +0000 (16:17 +0100)]
DVR: increase warm time limit to 600 seconds, fixes #4927
Jaroslav Kysela [Tue, 30 Jan 2018 18:19:36 +0000 (19:19 +0100)]
dvb psi: remove mpegts_psi_table_state_skel (atomicity problem)
Jaroslav Kysela [Mon, 29 Jan 2018 14:50:05 +0000 (15:50 +0100)]
linuxdvb: fix the pid management (full mux to pid filter transition), fixes #4895
Jaroslav Kysela [Thu, 25 Jan 2018 14:39:21 +0000 (15:39 +0100)]
DVR: show a proper error if the DVR directory is not accessible, fixes #4757
Jaroslav Kysela [Sat, 20 Jan 2018 16:29:19 +0000 (17:29 +0100)]
otamux: set the retry time for all muxes from the temporary failed network, issue #4875
Jaroslav Kysela [Wed, 17 Jan 2018 16:41:28 +0000 (17:41 +0100)]
tcp: tvhpoll_wait does forward errno