proc_put, proc_get and proc_get_hex are used in many files.
Avoid duplication by moving them to common/proc_tools.c.
Convert azbox's cVideo to use proc_tools.h
TODO: some code is very similar to SPARK (record and pwrmngr
are just symlinked, dmx is almost identical). Reduce duplication
by factoring out DVBAPI code into an extra directory.
* what works: audio, video, demux
* what probably doesn't work or is untested: record
* what very likely doesn't work: playback
Playback is just copied over from aztrino and made to compile.
If you are lucky, it just segfaults :-)
* open output only when really starting playback, just pause
videodecoder before, so that still picture on timeshift works
* adapt to strange neutrino calling conventions, so that jump-on-
start works for pause -> play -> stop (live) -> pause again
sequence for timeshift works
TODO: the startup for H264 timeshifting is too slow, needs
improvement
* use aio to improve things for slow recording media (heavily loaded
NFS server for example)
* in case of a buffer overflow, don't stop the recording but simply
drop a buffer
A proper aio implementation would involve multiple buffers that could
be queued in paralled, but that's much more complex, so let's see if
the current code works out well enough.
rebuild the MPEG stillpicture if the source jpeg has changed
additionally check for zero sized m2v from broken ffmpeg versions
(the same as commit ee1a408f9b on spark)
* use kernel input device repeat instead of generating selfmade
repeat events, this allows using input device rate settings
* add frontpanel left/right buttons, their keycodes differ from
the rc buttons
This will provide a smooth switchover to using LIRC instead of IRMP: if
the lircd is running (pidfile present), don't start the input thread.
Neutrino will use the LIRC-created uinput device instead.
It seems like most of the times, timeout == 0 means "use the default
timeout". However, at least with the sectionsd eit update filter and
the PMT version update filter, timeout == 0 means really "no timeout"
alas "infinite". Work around this by using the default timeout only
if no negative filtermask is given.
This fixes the "EPG on program change" (and PMT update probably, too).
There are a few glitches in the framebuffer driver we need to work
around. For now, let's:
* close and reopen the video device when going in / out of standby
* only enable HDMI when coming out of standby
Additionally, don't call Standby() when shutting down neutrino.