Implementation status

The following table summarizes the status of the various project components

ItemImplementation StatusLast changeComment
RTSP in progress 2003-02-06 implementation is interoperable with various players (see below), but no rigorous standards compliance testing yet; only supported commands at this point are DESCRIBE, SETUP, PLAY, PAUSE and TEARDOWN
SDP complete 2003-02-06 SDP files are generated on the fly for requested media; the format is understood by all tested players and fully conforms to RFC2327; a more abstract representation of media descriptions inside the server is required to improve on the current state
RTP mostly complete 2003-02-06 unicast only
RTCP in progress 2003-03-14 sender reports and sdes packets are periodically generated; reports from receivers are collected, but currently ignored
MPEG-1 Systems mostly complete 2003-02-06 MPEG-1 elementary streams multiplexed in MPEG-1 system streams can be streamed natively; synchronization between video and audio tracks is not completely perfect when not starting playback from the beginning of the clip (no skew, but a small offset); total playtime calculation is not very accurate
MPEG-1 Video mostly complete 2003-02-06 MPEG-1 video bitstreams can be streamed natively; random seeking into the stream is not very accurate, but essentially works as expected
MPEG-1 Audio mostly complete 2003-02-06 MPEG-1 layer I, II and III files can be streamed natively; server currently aborts when encountering mp3 tags, they should be ignored; all audio streams are silently assumed CBR; while the server can send VBR streams without any problem, seeking and total playtime calculation are impossible in this case
MPEG/RTP encapsulation complete 2003-02-06 fully compliant to RFC2250 and tested with various players; not all encapsulation options of RFC2250 are used yet
Run-time configuration finished 2003-05-02 Configuration file has a C-like syntax, using bison for the parser; still need to expose more configuration variables through the config file
IO subsystem in progress 2003-02-27 disk IO subsystem is in working state; disk bandwidth is kept track of, but no reservation is performed at the moment; similiar for cache memory
logging in progress 2003-02-27 logger class definitions and implementation for stderr logging; logging functionality not used very consequently throughout the server
autoconf complete 2003-05-02 finally found time learning autoconf; introduced into the project, and rewritten parts of makefile and config files accordingly; successfully integrated FreeBSD and Mac OS X ports
"code-lifting" (code beautification) in progress 2003-02-27 canonify exception handling and throwing; add copyright headers to all files; clean up build system

Compatibility testing matrix

The following table lists the players which the server is currently being tested against; if you know of another player that might work, just mail me and I will include it in future test. Not all problems listed in the table below are necessarily due to bugs in the server.

Item QuickTime Player RealPlayer mplayer+live.com
RTSP ok ok ok
RTP ok ok ok
MPEG-1 audio ok (QT accepts only layer I, II) ok ok
MPEG-1 video ok player crashes ok
MPEG-1 audio and video ok; some curious problem with RTP-Info header field player crashes player has serious sync problems

Changelog

TODO list

© 2004 Helge Bahmann <hcb@chaoticmind.net>