# Inside Streaming: Basics

Many developers eventually want to modify the playback application they are using or extend the DataStreamer library itself to suit their particular needs. This chapter provides an overview the architecture of the DataStreamer library, then discusses how a program can actually use the library by looking at the NuPlayer example.

Click on any of the following topics to select it::

- DataStreamer threads and data flow
- Playing a stream-Overview
- Creating a message port and a message
- Allocating data buffers
- Launching the required threads
- Audio Playback
- Displaying persistent data with the Join subscriber