]> git.ipfire.org Git - thirdparty/tvheadend.git/log
thirdparty/tvheadend.git
18 months agosatipcli: Rename flag to include client reference 1528/head
Olliver Schinagl [Mon, 7 Aug 2023 09:48:41 +0000 (11:48 +0200)] 
satipcli: Rename flag to include client reference

We have both a satip client and server. However the nosatip flag, is for
the client. Make this more clear by renaming it to the internal variable
nosatipcli. Since we do not want to break the user facing API, we keep
the commandline argument nosatip, but add an alias for the future.

We can do better in the future with the rest of the satip reference, but
lets keep this to a minimum for now.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
18 months agoRemove sweep-ai again as it is not useful at all
Flole998 [Sat, 3 Feb 2024 20:56:39 +0000 (21:56 +0100)] 
Remove sweep-ai again as it is not useful at all

18 months agoMark PRs needing squashing as stale after a while
Flole998 [Sat, 3 Feb 2024 20:55:17 +0000 (21:55 +0100)] 
Mark PRs needing squashing as stale after a while

18 months agoAutomatically comment on PRs needing squash
Flole998 [Sat, 3 Feb 2024 20:39:35 +0000 (21:39 +0100)] 
Automatically comment on PRs needing squash

18 months agoFix audio-only timeshift memory usage
Flole998 [Fri, 2 Feb 2024 22:40:42 +0000 (22:40 +0000)] 
Fix audio-only timeshift memory usage

18 months agoSanitize filename in content-disposition header
Flole998 [Fri, 2 Feb 2024 22:44:48 +0000 (22:44 +0000)] 
Sanitize filename in content-disposition header

18 months agoClean up Debian postinst and postrm scripts
Michael Marley [Fri, 2 Feb 2024 16:42:16 +0000 (11:42 -0500)] 
Clean up Debian postinst and postrm scripts

- Fix indentation
- Remove unnecessary {} around variables
- Double-quote all variables when assigned or used as arguments
- Simplify quotes and escaping in creation of the superuser file
- Remove needless variable assignments
- Use $() for command substitution instead of ``

18 months agoFix handling of legacy configuration directories in debian/postinst
Michael Marley [Fri, 2 Feb 2024 16:38:07 +0000 (11:38 -0500)] 
Fix handling of legacy configuration directories in debian/postinst

Detect if the HTS user's home directory starts with "/home/", which
indicates the legacy configuration directory is in use, and use the
correct paths for the "recordings" directory and "superuser" file.
This prevents a useless files/directories from being created and
ensures that "dpkg-reconfigure tvheadend" still updates the
superuser credentials correctly.

18 months agoConfigure Sweep (#1612)
sweep-ai[bot] [Fri, 2 Feb 2024 00:49:47 +0000 (01:49 +0100)] 
Configure Sweep (#1612)

Co-authored-by: sweep-ai[bot] <128439645+sweep-ai[bot]@users.noreply.github.com>
18 months agoAdd stale-bot for issues/PRs needing more info
Flole998 [Fri, 2 Feb 2024 00:18:44 +0000 (01:18 +0100)] 
Add stale-bot for issues/PRs needing more info

18 months agomain: Warn about unexpected configuration location
Olliver Schinagl [Sun, 13 Aug 2023 08:45:56 +0000 (10:45 +0200)] 
main: Warn about unexpected configuration location

When using the `--fork` flag, and no user or config arguments are
supplied, the configuration folder will end up with whatever the default
`daemon` user has set, which is often `/sbin` set as the homedir.

This is weird, but not 'wrong' per say. Lets warn the user that forking
can have an unexpected side effect.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
18 months agoUse sigaction() instead of signal()
Michael Marley [Wed, 31 Jan 2024 02:51:53 +0000 (21:51 -0500)] 
Use sigaction() instead of signal()

The behavior of signal() is not consistent or defined when using it
to set signal handlers (see "Portability" in
https://man7.org/linux/man-pages/man2/signal.2.html).  Previously
we got away with this, but starting with GCC 14, using signal()
apparently causes certain syscalls to be restarted after the signal
is caught.  One of these is the read() currently on line 63 of
fsmonitor.c.  The result is that read() doesn't return when the
fsmonitor thread receives a signal, resulting in the thread never
shutting down, resulting in TVHeadend hanging on any attempt to
terminate it.

Instead, use sigaction(), which has defined behavior when setting
signal handlers.  Since invoking sigaction() requires several
lines, a helper was added to tvh_thread.c to avoid code
duplication.

18 months agoAdd timeshift support for audio-only channels
Flole998 [Wed, 31 Jan 2024 12:41:24 +0000 (12:41 +0000)] 
Add timeshift support for audio-only channels

18 months agotemplates: add log section to bug_report.yml
Christian Hewitt [Wed, 31 Jan 2024 05:53:20 +0000 (05:53 +0000)] 
templates: add log section to bug_report.yml

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
18 months agoAdd missing Lithuanian string template (#1608)
Ian [Tue, 30 Jan 2024 13:01:20 +0000 (13:01 +0000)] 
Add missing Lithuanian string template (#1608)

18 months agoci: fix cloudsmith.sh & add to CI workflow
wywywywy [Sun, 28 Jan 2024 11:06:30 +0000 (11:06 +0000)] 
ci: fix cloudsmith.sh & add to CI workflow

18 months agosrc: filesystem permission fixes
Christian Hewitt [Tue, 23 Jan 2024 12:21:36 +0000 (12:21 +0000)] 
src: filesystem permission fixes

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
18 months agotemplates: add feature_proposal.yml
Christian Hewitt [Tue, 23 Jan 2024 08:13:41 +0000 (08:13 +0000)] 
templates: add feature_proposal.yml

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
18 months agotemplates: add bug_report.yml
Christian Hewitt [Sun, 10 Dec 2023 08:52:52 +0000 (08:52 +0000)] 
templates: add bug_report.yml

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
18 months agotemplates: add config.yml
Christian Hewitt [Sun, 10 Dec 2023 07:55:31 +0000 (07:55 +0000)] 
templates: add config.yml

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
18 months agoci: fix broken cloudsmith python
wywywywy [Mon, 22 Jan 2024 21:55:41 +0000 (21:55 +0000)] 
ci: fix broken cloudsmith python

18 months agoci: fix cloudsmith for python3.5
wywywywy [Mon, 25 Dec 2023 22:35:42 +0000 (22:35 +0000)] 
ci: fix cloudsmith for python3.5

18 months agoupdate to ffmpeg 6.1.1
uknunknown [Sun, 21 Jan 2024 04:25:00 +0000 (20:25 -0800)] 
update to ffmpeg 6.1.1

update to ffmpeg 6.1.1

18 months agodescrambler: apply ICAM update from Chris230291
Pim Zandbergen [Wed, 10 Jan 2024 12:34:53 +0000 (13:34 +0100)] 
descrambler: apply ICAM update from Chris230291

18 months agodescrambler: avoid dlopen()
Pim Zandbergen [Wed, 10 Jan 2024 11:15:29 +0000 (12:15 +0100)] 
descrambler: avoid dlopen()

18 months agolinuxdvb: add DVB-S2X parameters
smp79 [Thu, 21 Dec 2023 21:33:53 +0000 (00:33 +0300)] 
linuxdvb: add DVB-S2X parameters

18 months agodescrambler: support ICAM if detected in libdvbcsa
Pim Zandbergen [Mon, 1 Jan 2024 19:36:04 +0000 (20:36 +0100)] 
descrambler: support ICAM if detected in libdvbcsa

19 months agoci: fix raspios detection in cloudsmith.sh
Christian Hewitt [Wed, 6 Dec 2023 08:51:11 +0000 (08:51 +0000)] 
ci: fix raspios detection in cloudsmith.sh

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: rename build.yml to reduce confusion
Christian Hewitt [Thu, 21 Dec 2023 10:52:56 +0000 (10:52 +0000)] 
ci: rename build.yml to reduce confusion

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoMakefile.ffmpeg nvenc update
Saentist [Sat, 9 Dec 2023 12:56:47 +0000 (14:56 +0200)] 
Makefile.ffmpeg nvenc update

FFNVCODEC_VER  = 11.1.5.0 -> 12.1.14.0

19 months agoTransifex updates for project Tvheadend (#1587)
transifex-integration[bot] [Wed, 13 Dec 2023 18:42:47 +0000 (19:42 +0100)] 
Transifex updates for project Tvheadend (#1587)

* transifex: Translate tvheadend.js.pot in es

100% translated source file: 'tvheadend.js.pot'
on 'es'.

* transifex: Translate tvheadend.js.pot in en_GB

100% translated source file: 'tvheadend.js.pot'
on 'en_GB'.

* transifex: Translate tvheadend.js.pot in de

100% translated source file: 'tvheadend.js.pot'
on 'de'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate intl/tvheadend.pot in pl

100% translated source file: 'intl/tvheadend.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

* transifex: Translate tvheadend.js.pot in pl

100% translated source file: 'tvheadend.js.pot'
on 'pl'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
19 months agoRemove references to Tvheadend Foundation.
dave-p [Tue, 12 Dec 2023 19:06:15 +0000 (19:06 +0000)] 
Remove references to Tvheadend Foundation.

19 months agotfx: fix URLs in tvheadend/js files
Christian Hewitt [Mon, 11 Dec 2023 05:14:57 +0000 (05:14 +0000)] 
tfx: fix URLs in tvheadend/js files

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agotfx: fix URLs in tvheadend/docs files
Christian Hewitt [Mon, 11 Dec 2023 05:12:47 +0000 (05:12 +0000)] 
tfx: fix URLs in tvheadend/docs files

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agotfx: fix URLs in tvheadend/c files
Christian Hewitt [Mon, 11 Dec 2023 02:32:36 +0000 (02:32 +0000)] 
tfx: fix URLs in tvheadend/c files

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agohdhomerun: Add HDHomeRun server support for LiveTV only (#4461)
E.Smith [Wed, 10 Jun 2020 17:45:04 +0000 (18:45 +0100)] 
hdhomerun: Add HDHomeRun server support for LiveTV only (#4461)

Co-authored-by: "E.Smith" <31170571+azlm8t@users.noreply.github.com>
Co-authored-by: Christian Kündig <christian@kuendig.info>
19 months agoUpdate copyright year and correct current surname
ProfYaffle [Fri, 1 Dec 2023 10:47:56 +0000 (10:47 +0000)] 
Update copyright year and correct current surname

19 months agogithub: add FUNDING.yml with OpenCollective link
Christian Hewitt [Tue, 28 Nov 2023 04:55:35 +0000 (04:55 +0000)] 
github: add FUNDING.yml with OpenCollective link

19 months agowebui: remove old doc references to paypal
Christian Hewitt [Tue, 21 Nov 2023 11:18:09 +0000 (11:18 +0000)] 
webui: remove old doc references to paypal

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agowebui: change donation button to opencollective
Christian Hewitt [Tue, 21 Nov 2023 11:17:08 +0000 (11:17 +0000)] 
webui: change donation button to opencollective

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoWebUI: Update donation string as a test to Transifex feed
ProfYaffle [Fri, 1 Dec 2023 10:55:08 +0000 (10:55 +0000)] 
WebUI: Update donation string as a test to Transifex feed

19 months agoci: remove the test-compile workflow
Christian Hewitt [Wed, 6 Dec 2023 05:57:25 +0000 (05:57 +0000)] 
ci: remove the test-compile workflow

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: schedule weekly coverity scans
Christian Hewitt [Wed, 6 Dec 2023 04:29:22 +0000 (04:29 +0000)] 
ci: schedule weekly coverity scans

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: add concurrency to the main CI workflows
Christian Hewitt [Wed, 6 Dec 2023 05:46:11 +0000 (05:46 +0000)] 
ci: add concurrency to the main CI workflows

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: remove references to doozer
Christian Hewitt [Tue, 21 Nov 2023 14:12:00 +0000 (14:12 +0000)] 
ci: remove references to doozer

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: remove references to travis
Christian Hewitt [Tue, 21 Nov 2023 11:53:24 +0000 (11:53 +0000)] 
ci: remove references to travis

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoci: don't trigger cloudsmith on .github changes
Christian Hewitt [Wed, 6 Dec 2023 04:54:10 +0000 (04:54 +0000)] 
ci: don't trigger cloudsmith on .github changes

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
19 months agoAdd Parental Rating Labels
DeltaMikeCharlie [Tue, 28 Nov 2023 02:38:39 +0000 (13:38 +1100)] 
Add Parental Rating Labels

20 months agogitignore: add debian/.debhelper folder
CvH [Wed, 29 Nov 2023 17:26:22 +0000 (18:26 +0100)] 
gitignore: add debian/.debhelper folder

20 months agoci update build config
CvH [Wed, 29 Nov 2023 19:26:57 +0000 (20:26 +0100)] 
ci update build config

20 months agoupdate libvpx to 1.13.1
CvH [Mon, 27 Nov 2023 15:34:33 +0000 (16:34 +0100)] 
update libvpx to 1.13.1

20 months agoupdate x264 to c196240
CvH [Mon, 27 Nov 2023 15:29:40 +0000 (16:29 +0100)] 
update x264 to c196240

20 months agoupdate ffmpeg to 6.0.1
CvH [Mon, 27 Nov 2023 15:25:20 +0000 (16:25 +0100)] 
update ffmpeg to 6.0.1

20 months agoFix builds on stretch
Flole998 [Tue, 28 Nov 2023 20:36:14 +0000 (20:36 +0000)] 
Fix builds on stretch

20 months agoAdd rpi-bookworm to targets
Flole998 [Tue, 21 Nov 2023 13:48:27 +0000 (13:48 +0000)] 
Add rpi-bookworm to targets

20 months agoUpdate ffmpeg to 5.1.4
Flole998 [Mon, 20 Nov 2023 13:39:36 +0000 (14:39 +0100)] 
Update ffmpeg to 5.1.4

21 months agoCorrect handling of Remove and Ignore settings
dave-p [Fri, 13 Oct 2023 10:18:16 +0000 (11:18 +0100)] 
Correct handling of Remove and Ignore settings

Like strtok(), http_tokenize() modifies its input string. Since those strings are needed later to populate the UI, we should use copies.

Also free ignore_args to avoid a memory leak.

21 months ago6310 Set 'okay' default to True
James Bevan [Sat, 14 Oct 2023 11:15:36 +0000 (12:15 +0100)] 
6310 Set 'okay' default to True

21 months agoRemoved nested function 'appendPidRange' from within function 'tvhdhomerun_frontend_u...
Norm Raden [Thu, 14 Sep 2023 14:52:40 +0000 (10:52 -0400)] 
Removed nested function 'appendPidRange' from within function 'tvhdhomerun_frontend_update_pids'
and converted it to a normal function 'tvhdhomerun_frontend_update_pids_appendPidRange'.

Nested functions are a non-standard extension to C that may only be supported by the gcc compiler.

22 months agoFix non-admin users not receiving any updates in web UI
Michael Marley [Sun, 24 Sep 2023 19:35:33 +0000 (15:35 -0400)] 
Fix non-admin users not receiving any updates in web UI

All the way back in 54e63e3f9af8fdc0d23f61f3cda7fa7b246c1732, there
was a fix to stop non-admin users from receiving log messages with
potentially-sensitive data.  However, this stopped non-admin webui
users from receiving almost any updates over the websocket
interface, which causes a bug where such users don't see newly-
created DVR entries, etc. until refreshing the page.  This patch
allows for more granular control over what non-admin users
receive.  Specifically, messages originating from subscriptions.c,
mpegts_input.c, and api_service.c, along with all log messages, are
still only sent to admins because they may contain sensitive data
and/or they are only relevant to administrative parts of the UI.
Other messages, such as idnode, DVR, and EPG-related messages, are
once again sent to all webui users to keep the UI up-to-date.

22 months agoFix htsstr_argsplit (treat quotes inside an argument correctly)
Ben K [Thu, 24 Aug 2023 08:54:38 +0000 (10:54 +0200)] 
Fix htsstr_argsplit (treat quotes inside an argument correctly)

There seemed to be a flaw in the splitting logic when it comes to quotes, e.g.:
--output="filename" should be one argument, but htsstr_argsplit treated it as
['--output=', '"filename"] which I think is wrong.

I fixed this and added two tests for this scenario.

23 months agosupport/mkbundle: switch from distutils to setuptools
Bernd Kuhls [Sat, 5 Aug 2023 10:21:05 +0000 (12:21 +0200)] 
support/mkbundle: switch from distutils to setuptools

Fixes build error with python-3.12:

Traceback (most recent call last):
  File "support/mkbundle", line 48, in <module>
    import distutils.spawn
ModuleNotFoundError: No module named 'distutils'

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
23 months agowebui/dvr: Add age_rating in recording details dialogs
David Kalnischkies [Fri, 11 Aug 2023 05:45:14 +0000 (05:45 +0000)] 
webui/dvr: Add age_rating in recording details dialogs

The details dialogs in the various recording tabs do not open anymore
with the error `Uncaught TypeError: params[25] is undefined` in the JS
console as the age_rating wasn't requested for those, only for the
overview columns.

While we are at it lets also display the value in the same way the
similar looking (but completely different implemented…) EPG dialog does.

Regession-of: d501059995
Fixes: https://tvheadend.org/issues/6297
23 months agowebui/dvr: Remove unused & duplicated functions
David Kalnischkies [Fri, 11 Aug 2023 05:28:37 +0000 (05:28 +0000)] 
webui/dvr: Remove unused & duplicated functions

While implementing the alternative/similar broadcast buttons it seems
like previous attempts remained in the final code but were either
unused (like `dvrAlternativeShowings` as the buttons are calling
 `epgAlternativeShowingsDialog` instead) or duplicate functions which
already existed like `load`, `previousEvent` & `nextEvent`.

References: 04cd487bb8

23 months agoFix bug #6293 – Missing EIT EPG Content Type
DeltaMikeCharlie [Wed, 9 Aug 2023 06:19:47 +0000 (16:19 +1000)] 
Fix bug #6293 â€“ Missing EIT EPG Content Type

23 months agoFix some build and add more targets
Flole998 [Sun, 6 Aug 2023 07:43:32 +0000 (09:43 +0200)] 
Fix some build and add more targets

23 months agootamux: Make sure we use PRItime_t
Olliver Schinagl [Fri, 16 Jun 2023 21:54:24 +0000 (23:54 +0200)] 
otamux: Make sure we use PRItime_t

As %li isn't supported equally, we must ensure we always use PRItime_t.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
23 months agoUse explicitly on format warnings for Time test
Olliver Schinagl [Sat, 5 Aug 2023 07:40:44 +0000 (09:40 +0200)] 
Use explicitly on format warnings for Time test

It looks like the compile check doesn't work properly on some
architectures, which appears to eat or ignore the -Werror flag.

Instead, be more specific in that we state that printf formatting errors
are to be triggered on, and treated as an error explicitly, which in the
end is exactly what we are after.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoCI: Build (without cloudsmith) all targets on every merge request
Olliver Schinagl [Sat, 5 Aug 2023 15:08:37 +0000 (17:08 +0200)] 
CI: Build (without cloudsmith) all targets on every merge request

We want to build everything on merge requests, tags etc.

However we want to skip cloudsmith integration/upload, so lets copy the
yaml file and modify to suit better our needs.

In the future, we can move the cloudsmith stuff back in with
conditionals, but that requires some more time to figure out how to best
do it.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoCI: Run the full build with cloudsmith only on master
Olliver Schinagl [Sat, 5 Aug 2023 15:06:21 +0000 (17:06 +0200)] 
CI: Run the full build with cloudsmith only on master

Cloudsmith deployal should only be done on master, but we want to run
every other thing normally on each merge request. So lets rename this
script to indicate that this is about cloudsmith specifically.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoFix time for old 32bit systems
Olliver Schinagl [Fri, 4 Aug 2023 12:26:20 +0000 (14:26 +0200)] 
Fix time for old 32bit systems

The fix introduced in fe47ecb5504a ("Fix time for 32bit systems again")
made the incorrect assumption, that the macro _TIME_BITS=64 was always
available. It seems like that this is not the case for old systems,
causing 32bit builds to break there.

Lets completely rework 32bit time support, by actually detecting the
hosts size for the time.

This will break cross-compilation, as the configure script is run on the
host, but since we do not seem to support cross-builds anyway (all archs
are build on emulated or native targets), this should be acceptable.

Fixes fe47ecb5504a ("Fix time for 32bit systems again")

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoAdd 'age rating' field to recording metadata
DeltaMikeCharlie [Wed, 2 Aug 2023 00:13:00 +0000 (10:13 +1000)] 
Add 'age rating' field to recording metadata

2 years agoFix time for 32bit systems again
Olliver Schinagl [Fri, 16 Jun 2023 21:55:26 +0000 (23:55 +0200)] 
Fix time for 32bit systems again

In issue #6257 an issue mentioning that time_t isn't properly supported
when printing on 32-bit systems, specifically on FreeBSD. However, intel
32-bit systems suffer from a similar fate:

src/rtsp.c:333:30: error: format '%ld' expects argument of type 'long int',
but argument 4 has type 'time_t' {aka 'long long int'} [-Werror=format=]
  333 |   snprintf(buf, sizeof(buf), "npt=%" PRItime_t "-", position);
      |                              ^~~~~~~                ~~~~~~~~
      |                                                     |
      |                                                     time_t {aka long long int}

In commit 76a6263f1be4 ("fix for 64bit time_t on 32bit systems") was
attempted to be fixed by turning it into a PRId64, which was reverted
again in commit 9e1eb89be731 ("Revert "fix for 64bit time_t on 32bit
systems""), sadly without a reason as to why in the commit message.

We should however, migrate to 64bit timestamps on all platforms anyway,
due to the Y2038 problem. Debian is heavily working on this issue too.

This commit is just the first step, in that we ensure our time_t is
always 64bits.

The next steps would be to use difftime where possible instead of
subtractions, and ensure all stored timestamps have room for 64bit
time_t (htsmsg_get_u32_or_default for example breaks this presumption
already).

To keep this issue small, and tackle one problem at a time, lets just
fix time_t first. We do still have 15 years to fix the other issues.

Note, that this patch leaves out FreeBSD specifics, as it is unclear
what is specific about 32bit FreeBSD. It should be using the same glibc
headers after all. If not, we can always add if needed, but adding
usless code doesn't help anyone generally.

```
diff --git a/src/tvheadend.h b/src/tvheadend.h
index c2fcee716..751d10d70 100644
--- a/src/tvheadend.h
+++ b/src/tvheadend.h
@@ -334,7 +334,9 @@ void tvh_qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void
 # endif /* ULONG_MAX */
 #endif /* __WORDSIZE */

-#if __WORDSIZE == 32
+#if __WORDSIZE == 32 && defined(PLATFORM_FREEBSD)
+# define PRItime_t "d"
+#elif __WORDSIZE == 32
 # define PRItime_t "lld"
 #elif __WORDSIZE == 64
 # define PRItime_t "ld"
 #else
```

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoOTA Genre translation squashed v2
DeltaMikeCharlie [Sat, 22 Jul 2023 22:13:07 +0000 (08:13 +1000)] 
OTA Genre translation squashed v2

2 years agoBug Fix: OTA EIT Parental Rating
DeltaMikeCharlie [Tue, 11 Jul 2023 05:48:56 +0000 (15:48 +1000)] 
Bug Fix: OTA EIT Parental Rating

2 years agoRevert non-portable function to previous code
John Ross Hunt [Fri, 23 Jun 2023 22:29:48 +0000 (17:29 -0500)] 
Revert non-portable function to previous code

2 years agoFix spelling errors encountered during previous work
Michael Marley [Thu, 22 Jun 2023 21:04:01 +0000 (17:04 -0400)] 
Fix spelling errors encountered during previous work

2 years agoUpdate Debian packaging to use the new configuration directories
Michael Marley [Thu, 22 Jun 2023 21:02:40 +0000 (17:02 -0400)] 
Update Debian packaging to use the new configuration directories

This updates the Debian packaging to use the new configuration
directories introduced by
https://github.com/tvheadend/tvheadend/pull/1535 and
https://github.com/tvheadend/tvheadend/pull/1538.  Instead of being
in /home/hts/.hts/tvheadend, the configuration will now be stored in
/var/lib/tvheadend by default, which is consistent with how many
other "server"-style Debian packages handle their home directories
and configuration.

2 years agoFix configuration-loading logic to account for forking operation
Michael Marley [Thu, 22 Jun 2023 20:55:38 +0000 (16:55 -0400)] 
Fix configuration-loading logic to account for forking operation

Since config_get_dir() is executed before forking, the uid will
always be 0 at this point.  Instead, use the uid of the user to
which we will fork if a fork will occur.

2 years agodvr_storage: Also support server configurations for recordings
Olliver Schinagl [Fri, 16 Jun 2023 15:02:19 +0000 (17:02 +0200)] 
dvr_storage: Also support server configurations for recordings

Like in commit e15c1abe9737 ("config: Support server configurations"),
dvr_recordings are probably best stored in a 'server known
configuration', as otherwise they can end up in `/Videos`. While the
user can always configure this nicely, having a server sensible default
is good.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoFix portability: Do not use linux/limits.h
Olliver Schinagl [Sun, 18 Jun 2023 10:51:58 +0000 (12:51 +0200)] 
Fix portability: Do not use linux/limits.h

The header limits.h suffices, lets use that instead.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoconfig: Fix whitespace errors
Olliver Schinagl [Sat, 10 Jun 2023 13:20:25 +0000 (15:20 +0200)] 
config: Fix whitespace errors

The internal print functions already add the newline for us, so adding
one manually is not needed.

Further more, a tab got snook in, where spaces where intended.

This fixes commit dbf973307ae3 ("dvr_storage: Use XDG spec directories")
which accidentally introduced this.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agospawn: Do not close every possible file descriptor
Olliver Schinagl [Fri, 16 Jun 2023 13:25:36 +0000 (15:25 +0200)] 
spawn: Do not close every possible file descriptor

When close is called with a non-existant file descriptor, it will happily
do so. Since we do not even check for the error code, trying to close a
non existant/not-open file descriptor does not even cause an error.

This in itself is not a problem at all, however, we try to close every
open file descriptor beyond stderr, upto whatever _SC_OPEN_MAX returns.

Some systems may have a very large ulimit set for `_SC_OPEN_MAX` and
thus `maxfd` may return something in the millions. This means that the
simple `for() close();` loop now has to iterate a million file
descriptors which may not even be open/exist.

Instead, we can use the power of `/proc/self/fd` to list our open
file descriptors, and only close open ones.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agodvr_storage: Use XDG spec directories
Olliver Schinagl [Sat, 10 Jun 2023 13:42:03 +0000 (15:42 +0200)] 
dvr_storage: Use XDG spec directories

The XDG spec has a way to determine the users preferred Video directory.
This is important, because in different locales, this may be a different
directory, preventing annoyance for users who have a localized home dir.

With the newly added XDG helpers, this becomes a triviality.

This change does mean, that the behavior is slightly changed, as XDG
directories are probed first.

However since this only affects the startup, after which these
directories are stored in the config, the impact should be neglectable.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agosettings: Add XDG support helper functions
Olliver Schinagl [Sat, 10 Jun 2023 13:39:56 +0000 (15:39 +0200)] 
settings: Add XDG support helper functions

The XDG spec goes beyond the '.config' directory structure, but also
helps with other directories, which may be locale dependent.

Sadly, the upstream source that does all the parsing, is not a library,
but only a binary or source code.

Lets store a copy of the source-code under vendor, to avoid duplicating
the exact same code internally.

Expose these functions as hts wrappers for the rest of the codebase to
use.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoconfig: Support server configurations
Olliver Schinagl [Tue, 13 Jun 2023 13:35:25 +0000 (15:35 +0200)] 
config: Support server configurations

On server loads, it is not uncommon to have the config directory live in
`/var/lib/tvheadend`. While `/etc/tvheadend` is also common, it's more
for manually written configuration files, tvheadend is more a 'config
state'. Support both regardless.

This change shouldn't impact desktop users, presuming they do not have
these locations installed.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoconfig: Add support for XDG config
Olliver Schinagl [Sat, 10 Jun 2023 13:35:26 +0000 (15:35 +0200)] 
config: Add support for XDG config

Over the last years, the freedesktop organization has promoted the use
of XDG_HOME_CONFIG for storing configuration data.

Since TVHeadend also wants to help declutter the home directory, lets
follow the spec for our own configuration. While here, reduce the path
from `hts/tvheaded` to just `hts`.

The implementation does not change behavior of existing installations!
If `.hts/tvheadend` exists, it will be used as before.

New installations, will try to use `.config/hts` instead, and
'migrating' is as easy as `mv .hts/tvheadend .config/hts`.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoconfig: Store config directory variable internally
Olliver Schinagl [Sat, 10 Jun 2023 13:20:25 +0000 (15:20 +0200)] 
config: Store config directory variable internally

Currently `config_boot` 'abuses' the path-pointer and stores its own
internal path if needed. While this is _technically_ fine, it prevents
us from a) making `path` a const argument, b) makes things a little
harder to read and maintain and c) makes it harder for future changes to
the configuration path.

Instead, lets store the configuration path internally in our
configuration structure, as is done with most things. This could even
allow us to technically get rid of `hts_settings_init` in the future,
and get this from the config struct instead.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoconfig: Deal with configuration before anything else
Olliver Schinagl [Sat, 10 Jun 2023 13:26:08 +0000 (15:26 +0200)] 
config: Deal with configuration before anything else

We should really be setting up our configuration storage before anything
else. Starting/registering other items before that seems a bit
out-of-order.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoFix Fedora CI build
Ruben De Smet [Mon, 12 Jun 2023 10:08:36 +0000 (12:08 +0200)] 
Fix Fedora CI build

2 years agoDisable broken codeball
Flole998 [Mon, 12 Jun 2023 11:15:07 +0000 (13:15 +0200)] 
Disable broken codeball

2 years agoAdd simple 'ping' endpoint for healthchecks
Olliver Schinagl [Sat, 10 Jun 2023 15:16:06 +0000 (17:16 +0200)] 
Add simple 'ping' endpoint for healthchecks

To determine if the server is online, we want to be able to 'ping' it
with as little configuration and access possibilities as possible. The
only available option for this today, is anonymous access.

Let us thus add a new endpoint, that replies with 'PONG' when queried.

This will need anonymous access enabled, but can be restricted to:
a) localhost
b) without any access permissions

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoAdd Fedora RPM build to Github Actions
Ruben De Smet [Mon, 5 Jun 2023 12:06:38 +0000 (14:06 +0200)] 
Add Fedora RPM build to Github Actions

2 years agoUpdate config for Fedora 37/38
Ruben De Smet [Mon, 5 Jun 2023 08:58:01 +0000 (10:58 +0200)] 
Update config for Fedora 37/38

2 years agodvr_rec: Fix a buffer overflow in filename generation
Ruben De Smet [Mon, 5 Jun 2023 13:18:46 +0000 (15:18 +0200)] 
dvr_rec: Fix a buffer overflow in filename generation

Fixes https://tvheadend.org/issues/6272

Co-authored-by: Dave Pickles
2 years ago - fixed bug with _lang3_to_lang2() 1527/head
Gene C [Mon, 17 Apr 2023 12:55:50 +0000 (08:55 -0400)] 
 - fixed bug with _lang3_to_lang2()
    Typo made using lang instead of lang3 in lookup map
 - clean by running through autopep8
 - Add more exception handling to prevent it crashing
   Still needs some improvements with exception types
 - tidy up for pylint
 - python 2 is deprecated - simplify for python 3

2 years agoupdate pict_type from AVPacket to AVFrame
uknunknown [Fri, 14 Apr 2023 17:25:41 +0000 (10:25 -0700)] 
update pict_type from AVPacket to AVFrame

- remove deprecated FF_API_CODED_FRAME
- remove pict_type from AVPacket_SideData
- use AVFrame->pict_type (same like ffmpeg 5.1.2 - ffprobe.c line 2595)
- remove patch for vaapi_encode

2 years agoupdate to ffmpeg 5.1.3
uknunknown [Fri, 14 Apr 2023 22:26:58 +0000 (15:26 -0700)] 
update to ffmpeg 5.1.3

update to ffmpeg 5.1.3

2 years agoupdate to ffmpeg 5.1.2
alingherghescu [Sun, 2 Apr 2023 18:38:35 +0000 (11:38 -0700)] 
update to ffmpeg 5.1.2

- ffmpeg_static will always compile with ffmpeg 5.1.2
- Makefile.ffmpeg added to 5.1.2
- src/muxer/muxer_libav.c: update 'AVOutputFrmat' to 'const AVOutputFrmat'
- src/transcoding/transcode/hwaccels/vaapi.c --> incorporated the struct from libavcodec/vaapi.h
- src/transcoding/transcode/video.c: update type for qdata_size

2 years agotv_meta_tvdb.py: Fix 'languague' typo.
James Bevan [Sat, 8 Apr 2023 11:38:00 +0000 (12:38 +0100)] 
tv_meta_tvdb.py: Fix 'languague' typo.

Typo 'languague' prevents the script from fetching poster art.

Fixes #6262.