GStreamer是一个强大的多媒体框架,设计实现严谨、颇有学院派之风。但是整体复杂,不易扩展成为灵活应变的流媒体服务器。

所以一直有个念头、用C语言编写一个极简的流媒体服务、尽量少地依赖。那么首先需要一个TCP服务器,这就是eloop的起源。

eloop是一个基于pthread的事件驱动库,采用常见的Reactor反应堆模式,提供:

  • TCP Server,异步处理IO。
    • 目前支持Windows下select和MacOs下的KQueue。
  • 定时器。
  • 异步函数调用。

从而充分利用CPU,实现过程参考了libae

eloop