poll/dispatcher framework.
The top reasons for going multithreaded is:
* Take adventage of multicore CPUs
* No need to put slow operations in ugly helper threads now that the entire app is designed for multithreads
* Some of the timing sensetive tasks (IPTV output / RTP / UDP pacing) can run on RT priority.
- Use an internal packet format instead of passing around TS packets
- Use an on-disk storage for pause/seek of live TV
- Fix RTSP interface
- Fix h264 recording
- Set correct DTS/PTS on all packets