User Decke [Mon, 3 Jun 2013 09:36:47 +0000 (11:36 +0200)]
tvhpoll: various fixes for tvhpoll on FreeBSD
- kqueue filters are not bitmasks so we need to treat them a bit different
- Properly check timeout because default value is -1
- Use correct variable kevent.filter to detect which event was triggered
- Fix building on FreeBSD i386
Adam Sutton [Fri, 11 Oct 2013 12:41:46 +0000 (13:41 +0100)]
misc: Remove memory leaks and other anomalies
Many of these are somewhat redundant now, as I've suppressed many of the
warnings as they're false positives. However the changes, such as added
a detach flag to tvhthread_create(), have been kept anyway.
Adam Sutton [Thu, 10 Oct 2013 09:59:42 +0000 (10:59 +0100)]
channel: remove direct usage of ch_name
This is because the field can now be NULL and there were places where this
was not properly checked. So now a function call channel_get_name() should
be used instead and is garaunteed to return non-NULL.
In addition to this there is a nice added benefit. You can NOT set the name,
and it will automatically pull the name from the first available service. This
will not be persistent (part of config) unless you change that name and save
from the UI. This means if the service name changes, so will the channel name.
However on that last point there will not be, currently, any message sent to
the clients (HTSP) to inform them of such a change. So there might be some lag
in getting the update.
Adam Sutton [Fri, 27 Sep 2013 19:34:18 +0000 (20:34 +0100)]
subscription: fix full mux sub hook
I'd added this so that ALL mux subs tried to use fullmux reception. This was
clearly not what was intended as the only time this is needed (at present)
is when subscribing for muxdump from the webui.
Adam Sutton [Thu, 26 Sep 2013 22:12:04 +0000 (23:12 +0100)]
service: service listing was broken
I think it was quite possible for two services on the same multiplex not
to share the same tuner. Also I wasn't convinced about how it kicked running
services.
Adam Sutton [Wed, 25 Sep 2013 20:55:59 +0000 (21:55 +0100)]
wrappers: remove use of pthread_setname_np
This is not supported by ulibc, however since prctl is part of standard
Linux kernel since 2.6.9, I've added a thin wrapper around thread startup
to call that method from within the thread.
Adam Sutton [Thu, 19 Sep 2013 21:17:02 +0000 (22:17 +0100)]
linuxdvb: added pre-defined mux configuration file support
This had been left out for too long and makes it awkward for novices
to setup the networks. The config is possibly not as nice as before where
it was presented as a tree. But this can be improved later.
Adam Sutton [Thu, 19 Sep 2013 21:17:59 +0000 (22:17 +0100)]
idnode: allow NOSAVE options to be "loaded".
This is needed since this routine is used to also load config on creation.
So if a NOSAVE option is included there it will not load it. If it really
is NOSAVE it shouldn't be in the config files anyway (due to NOSAVE check
on actual save).
Adam Sutton [Thu, 19 Sep 2013 10:02:52 +0000 (11:02 +0100)]
mpegts: remove the wait for NIT in SDT processing
This causes initial scans to time out where the SDT is waiting on
mux information from. Given that we'll rescan these muxes anyway
there is little point.
The only downside is the single point of info muxes (like 11778V
in the UK) may not get the opportunity to provide all the info they
could, since we might miss service info until later.
Adam Sutton [Mon, 16 Sep 2013 20:41:21 +0000 (21:41 +0100)]
idnode prop: make it possible to properly sort/filter enum/list types
This does require a certain level of extra input from prop_t users where
the type is enumerated. A new routine rend() must be implemented to provide
the rendered value (for lists that are not enum, this is done transparently).
Adam Sutton [Fri, 13 Sep 2013 10:02:58 +0000 (11:02 +0100)]
linuxdvb: fix diseqc switch control (thanks to amet for fixing/testing).
The problem was that I played fast and loose with the diseqc spec. I set the
line volts much later than you're supposed to, for various reasons.
I've now sorted that, though because of the complexity if a rotor exists I
run a full re-program of the switch (only if a rotor is present). And I double
set the line volts, both in the switch (to ensure it happens early) and then
in the LNB tuning (in case no switch exists).
Adam Sutton [Wed, 11 Sep 2013 21:12:40 +0000 (22:12 +0100)]
subscription: fix double list insertion on detection of bad service
If a service was marked as bad (no input) it was not unlinking the
subscription from the service before re-applying, this resulted in
a double entry into the service subs list and ultimatey a livelock
or possibly worse.
Adam Sutton [Wed, 11 Sep 2013 20:04:30 +0000 (21:04 +0100)]
capmt: fix problems with capmt not being properly enabled
This was due to failure to properly reported which adapters have
been enabled. There are other problems with the capmt setup code
that really need addressing, but I don't have the time right now!
Adam Sutton [Wed, 11 Sep 2013 08:03:31 +0000 (09:03 +0100)]
mpegts: ensure that potentially valid muxes are not ignored
It's possible a mux is not tunable, yet that doesn't imply the presence
of a free tuner means its invalid. It could just be that its an S2 mux
with only an S tuner available (just one example).