Instead of patching neutrino to read the Tripledragon remote, use a
converter thread in libtriple to convert the TD remote to a real input
device via uinput.
I have no other explanation for this backtrace on shutdown,
(gdb) bt
#0 0x00000f00 in ?? ()
#1 0x2fd7b7b8 in cDataReader::RemoveFilter(cDemuxFilter*) () from /lib/libcoolstream-mt.so
#2 0x2fd6c8cc in cDemux::Stop() () from /lib/libcoolstream-mt.so
#3 0x00164c38 in getUTC (UTC=0x41a86e03, TDT=false)
at ./src/sectionsd/dmxapi.cpp:148
#4 0x001490f8 in timeThread ()
at ./src/sectionsd/sectionsd.cpp:6969
#5 0x2fd2a584 in start_thread () from /lib/libpthread.so.0
it happened in this sequence:
[ 06:52:16.393 ] dvbsub_thread shutdown
[dvb-sub] stopped
[sectionsd] cnThread ended
pausing...
[sectionsd] eitThread ended
httpd shutdown
httpd shutdown done
Segmentation fault (core dumped)
So I guess that the pthread_cancel triggered it.
the SDT scan could sometimes erase half of a transponder after
a read error from the demux device device (e.g. due to bad
reception had occured or the channel had been changed since scan
had started.
modify the paintButtons() function, so that it spreads the buttons
over the available width with constant space between them.
Port over all users to the new method and clean up quite some custom
button drawing code on the way.
Attention: This code is GPL v3+ only for now!
since the TD drivers apparently only allow each PID to be captured
once, cheat and implement the measure mode for streaminfo with
special ioctls. now streaminfo no longer breaks recordings
use a c++ map instead of arrays to store audio stream data
Side effect: audio streams as returned by findAllPids() are now
sorted by pid, helping default selection for MPEG and VDR streams
The DMX::check_complete function does not work correctly (e.g. it
ignores table 0x51 which it shouldnt).
Additionally, it seems to indicate completeness of a table even though
there are still new versions coming in.
As it is not too useful anyway, simply disable it for now.