PJMEDIA was designed to be applicable in broad range of systems, from desktop to mobile, embedded, and maybe even DSP. These are the core considerations for such design:
zero thread capable
Some audio processing algorithms implemented in PJMEDIA.
Media transport is responsible for packing/unpacking media frames to/from the network, as well as getting involved in negotiation of suitable transport in SDP. Media transports can also be chained in a pipeline (for example, SRTP+ICE).
Media transports implemented by community:
Media components (Ports)
Port is PJMEDIA component for processing media frames. Media ports can be linked in a pipeline to process audio/video frames end-to-end from audio device to the network/transport.
Because PJMEDIA has no thread, a “clock” must be provided to make the media frames flow inside the media pipeline in a timely manner.
RTP and RTCP
Compile Time Settings
Basic Types and Functions
The endpoint is a singleton runtime “manager” for PJMEDIA framework.