Darwin Streaming Server

Source Code Description

 

This document provides detailed information on the internals of the Darwin Streaming Server. The server implements four standard IETF protocols, RTSP (Real-time streaming protocol, RFC 2326), RTP (Real-time Transport Protocol, RFC 1889), RTCP (Real-time transport control protocol, RFC 1889), and SDP (Session description protocol, RFC 2327). Before making modifications to the server code is may help to be familiar with those RFCs.

 

Introduction

The Darwin Streaming Server source code is written entirely in C++, and pervasively uses object-oriented concepts such as inheritance and polymorphism. Almost exclusively, there is one C++ class per .h / .cpp file pair, and those file names match the class name.

The code for each of the server's subsystems is separated out into separate folders in the source hierarchy. The following is a short description of each subsytem.

 

Common Utilities (in CommonUtilitiesLib)

Common Utilities is a toolkit of thread management, data structure, networking, and text parsing utilities. Darwin Streaming Server and associated tools use these classes to accomplish the following three goals:


Here is a short description of all the classes in the Common Utilities subsystem by group:

 

Server Core (in Server.tproj)

This folder contains the core server code, which can be divided into three categories: server core, RTSP specific, and RTP specific.

 

© 1999-2003 Apple Computer, Inc. All rights reserved. Apple, the Apple logo, Mac, Macintosh, PowerBook, Power Macintosh, and QuickTime are trademarks of Apple Computer, Inc., registered in the United States and other countries. iBook, iMac, and Power Mac are trademarks of Apple Computer, Inc. All other product names are trademarks or registered trademarks of their respective holders.