First version of a "hardware capabilites information" struct.
This is intended to help clean up the mess in the neutrino GUI.
Surely needs some more work and ongoing changes
another hack :-) make the "blank" still-mpg 24fps and then check in
getBlank() if the framerate is still 24fps, which means that no video
has been decoded since blanking
this is a hack: the "mailbox" irq count does not increase if the
decoders are not decoding, so we use this to determine if the
video is in really playing.
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.