PJMEDIA Core
Core
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:
any clockrates
N-channels support
zero thread capable
Audio Features
Some audio processing algorithms implemented in PJMEDIA.
Video Features
Sending/receiving missing video keyframe indication using the following techniques:
SIP INFO with XML Schema for Media Control (RFC 5168), using:
Full Intra Request (RFC 5104 section 3.5.1)
Picture Loss Indication feedback (RFC 4585 section 6.3.1)
See issue #1234 for more info
RTCP Picture Loss Indication feedback (RFC 4585 section 6.3.1):
See issue #1437 for more info
Transports
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.
Clock provider
Because PJMEDIA has no thread, a “clock” must be provided to make the media frames flow inside the media pipeline in a timely manner.
Codec Framework
-
Note
For list of supported codecs, see Supported codecs.
SDP
RTP and RTCP
Compile Time Settings
Basic Types and Functions
Endpoint
The endpoint is a singleton runtime “manager” for PJMEDIA framework.