TOP LEVEL BIN +---------------------------+ | erdtlssrtpbin | | | >----o dtls_srtp_recv o-R--> rtp_recv | | >--S-o dtls_srtcp_recv o-R--> rtcp_recv | | | o-R--> data_recv | | <----o dtls_srtp_send o-R--< rtp_send | | <--S-o dtls_srtcp_send o-R--< rtcp_send | | | o-R--< data_send | | +---------------------------+ S = sometimes pad, R = request pad MUXED SRTP/SRTCP +--------------------+ +-----------------+ rtp_send---o|rtp_sink rtp_src|o-R-o| | | srtpenc | | | rtcp_send-R-o|srtcp_sink rtcp_src|o-R-o| | +-- +--------------------+ | funnel |o--o|nicesink | | +-- +--------------------+ | | data_send-R-o| dtls_send|o---o| | | | +-----------------+ | erdtlsconnection | | | +--------------+ .-o|dtls_recv |o-R----------data_recv --+ | dtls|o-' +--------------------+ nicesrc|o--o| dtlsdemux | --+ | srt(c)p|o-. +-----------+ +-----------+ +--------------+ '-o|srtp rtp|o---o|rtp | | srtpdec | | funnel |o---rtp_recv o|srtcp rtcp|o---o|rtcp | +-----------+ +-----------+ UNMUXED RTP/RTCP +--------------------+ +-----------------+ rtp_send-R-o|rtp_sink rtp_src|o-R-o| | | srtpenc | | | | | | | +-- +--------------------+ | funnel |o--o|nicesink | | +-- +--------------------+ | | data_send-R-o| dtls_send|o---o| | | | +-----------------+ | erdtlsconnection | | | +--------------+ .-o|dtls_recv |o-R----------data_recv --+ | dtls|o-' +--------------------+ nicesrc|o--o| dtlsdemux | --+ | srtp|o-. +-----------+ +--------------+ '-o|srtp rtp|o---------------------rtp_recv | srtpdec | | | +-----------+ +--------------------+ +-----------------+ rtcp_send-R-o|rtcp_sink rtcp_src|o-R-o| | | srtpenc | | | | | | | +-- +--------------------+ | funnel |o--o|nicesink | | +-- +--------------------+ | | | dtls_send|o---o| | | | +-----------------+ | erdtlsconnection | | | +--------------+ .-o|dtls_recv | --+ | dtls|o-' +--------------------+ nicesrc|o--o| dtlsdemux | --+ | srtcp|o-. +-----------+ +--------------+ '-o|srtcp rtcp|o---------------------rtcp_recv | srtpdec | | | +-----------+