Fork me on GitHub
Data Fields
janus_ice_peerconnection_medium Struct Reference

A single media in a PeerConnection. More...

#include <ice.h>

Collaboration diagram for janus_ice_peerconnection_medium:
Collaboration graph
[legend]

Data Fields

janus_ice_peerconnectionpc
 WebRTC PeerConnection this m-line belongs to. More...
 
janus_media_type type
 Type of this medium. More...
 
int mindex
 Index of this medium in the media list. More...
 
char * mid
 Media ID. More...
 
guint32 ssrc
 SSRC of the server for this medium. More...
 
guint32 ssrc_rtx
 Retransmission SSRC of the server for this medium. More...
 
guint32 ssrc_peer [3]
 SSRC(s) of the peer for this medium (may be simulcasting) More...
 
guint32 ssrc_peer_new [3]
 
guint32 ssrc_peer_orig [3]
 
guint32 ssrc_peer_temp
 
guint32 ssrc_peer_rtx [3]
 Retransmissions SSRC(s) of the peer for this medium (may be simulcasting) More...
 
guint32 ssrc_peer_rtx_new [3]
 
guint32 ssrc_peer_rtx_orig [3]
 
char * rid [3]
 Array of RTP Stream IDs (for Firefox simulcasting, if enabled) More...
 
gboolean rids_hml
 Whether the order of the rids in the SDP will be h-m-l (TRUE) or l-m-h (FALSE) More...
 
gboolean legacy_rid
 Whether we should use the legacy simulcast syntax (a=simulcast:recv rid=..) or the proper one (a=simulcast:recv ..) More...
 
janus_rtp_switching_context rtp_ctx [3]
 RTP switching context(s) in case of renegotiations (audio+video and/or simulcast) More...
 
GList * payload_types
 List of payload types we can expect. More...
 
GHashTable * rtx_payload_types
 Mapping of rtx payload types to actual media-related packet types. More...
 
GHashTable * clock_rates
 Mapping of payload types to their clock rates, as advertised in the SDP. More...
 
gint payload_type
 RTP payload types for this medium. More...
 
gint rtx_payload_type
 
char * codec
 Codec used in this medium. More...
 
gboolean(* video_is_keyframe )(const char *buffer, int len)
 Pointer to function to check if a packet is a keyframe (depends on negotiated codec; video only) More...
 
gboolean send
 Media direction. More...
 
gboolean recv
 
janus_rtcp_contextrtcp_ctx [3]
 RTCP context(s) for the medium (may be simulcasting) More...
 
uint16_t nack_queue_ms
 Size of the NACK queue (in ms), dynamically updated per the RTT. More...
 
GHashTable * rtx_nacked [3]
 Map(s) of the NACKed packets (to track retransmissions and avoid duplicates) More...
 
GHashTable * pending_nacked_cleanup
 Map of the pending NACKed cleanup callback. More...
 
gint64 first_ntp_ts [3]
 First received NTP timestamp. More...
 
guint32 first_rtp_ts [3]
 First received RTP timestamp. More...
 
gint64 last_ntp_ts
 Last sent NTP timestamp. More...
 
guint32 last_rtp_ts
 Last sent RTP timestamp. More...
 
gboolean do_nacks
 Whether we should do NACKs (in or out) for this medium. More...
 
GQueue * retransmit_buffer
 List of previously sent janus_rtp_packet RTP packets, in case we receive NACKs. More...
 
GHashTable * retransmit_seqs
 HashTable of retransmittable sequence numbers, in case we receive NACKs. More...
 
guint16 rtx_seq_number
 Current sequence number for the RFC4588 rtx SSRC session. More...
 
gint64 retransmit_log_ts
 Last time a log message about sending retransmits was printed. More...
 
guint retransmit_recent_cnt
 Number of retransmitted packets since last log message. More...
 
gint64 nack_sent_log_ts
 Last time a log message about sending NACKs was printed. More...
 
guint nack_sent_recent_cnt
 Number of NACKs sent since last log message. More...
 
janus_seq_infolast_seqs [3]
 List of recently received sequence numbers (as a support to NACK generation, for each simulcast SSRC) More...
 
janus_ice_stats in_stats
 Stats for incoming data (audio/video/data) More...
 
janus_ice_stats out_stats
 Stats for outgoing data (audio/video/data) More...
 
gboolean noerrorlog
 Helper flag to avoid flooding the console with the same error all over again. More...
 
janus_mutex mutex
 Mutex to lock/unlock this medium. More...
 
volatile gint destroyed
 Atomic flag to check if this instance has been destroyed. More...
 
janus_refcount ref
 Reference counter for this instance. More...
 

Detailed Description

A single media in a PeerConnection.

Field Documentation

◆ clock_rates

GHashTable* janus_ice_peerconnection_medium::clock_rates

Mapping of payload types to their clock rates, as advertised in the SDP.

◆ codec

char* janus_ice_peerconnection_medium::codec

Codec used in this medium.

◆ destroyed

volatile gint janus_ice_peerconnection_medium::destroyed

Atomic flag to check if this instance has been destroyed.

◆ do_nacks

gboolean janus_ice_peerconnection_medium::do_nacks

Whether we should do NACKs (in or out) for this medium.

◆ first_ntp_ts

gint64 janus_ice_peerconnection_medium::first_ntp_ts[3]

First received NTP timestamp.

◆ first_rtp_ts

guint32 janus_ice_peerconnection_medium::first_rtp_ts[3]

First received RTP timestamp.

◆ in_stats

janus_ice_stats janus_ice_peerconnection_medium::in_stats

Stats for incoming data (audio/video/data)

◆ last_ntp_ts

gint64 janus_ice_peerconnection_medium::last_ntp_ts

Last sent NTP timestamp.

◆ last_rtp_ts

guint32 janus_ice_peerconnection_medium::last_rtp_ts

Last sent RTP timestamp.

◆ last_seqs

janus_seq_info* janus_ice_peerconnection_medium::last_seqs[3]

List of recently received sequence numbers (as a support to NACK generation, for each simulcast SSRC)

◆ legacy_rid

gboolean janus_ice_peerconnection_medium::legacy_rid

Whether we should use the legacy simulcast syntax (a=simulcast:recv rid=..) or the proper one (a=simulcast:recv ..)

◆ mid

char* janus_ice_peerconnection_medium::mid

Media ID.

◆ mindex

int janus_ice_peerconnection_medium::mindex

Index of this medium in the media list.

◆ mutex

janus_mutex janus_ice_peerconnection_medium::mutex

Mutex to lock/unlock this medium.

◆ nack_queue_ms

uint16_t janus_ice_peerconnection_medium::nack_queue_ms

Size of the NACK queue (in ms), dynamically updated per the RTT.

◆ nack_sent_log_ts

gint64 janus_ice_peerconnection_medium::nack_sent_log_ts

Last time a log message about sending NACKs was printed.

◆ nack_sent_recent_cnt

guint janus_ice_peerconnection_medium::nack_sent_recent_cnt

Number of NACKs sent since last log message.

◆ noerrorlog

gboolean janus_ice_peerconnection_medium::noerrorlog

Helper flag to avoid flooding the console with the same error all over again.

◆ out_stats

janus_ice_stats janus_ice_peerconnection_medium::out_stats

Stats for outgoing data (audio/video/data)

◆ payload_type

gint janus_ice_peerconnection_medium::payload_type

RTP payload types for this medium.

◆ payload_types

GList* janus_ice_peerconnection_medium::payload_types

List of payload types we can expect.

◆ pc

janus_ice_peerconnection* janus_ice_peerconnection_medium::pc

WebRTC PeerConnection this m-line belongs to.

◆ pending_nacked_cleanup

GHashTable* janus_ice_peerconnection_medium::pending_nacked_cleanup

Map of the pending NACKed cleanup callback.

◆ recv

gboolean janus_ice_peerconnection_medium::recv

◆ ref

janus_refcount janus_ice_peerconnection_medium::ref

Reference counter for this instance.

◆ retransmit_buffer

GQueue* janus_ice_peerconnection_medium::retransmit_buffer

List of previously sent janus_rtp_packet RTP packets, in case we receive NACKs.

◆ retransmit_log_ts

gint64 janus_ice_peerconnection_medium::retransmit_log_ts

Last time a log message about sending retransmits was printed.

◆ retransmit_recent_cnt

guint janus_ice_peerconnection_medium::retransmit_recent_cnt

Number of retransmitted packets since last log message.

◆ retransmit_seqs

GHashTable* janus_ice_peerconnection_medium::retransmit_seqs

HashTable of retransmittable sequence numbers, in case we receive NACKs.

◆ rid

char* janus_ice_peerconnection_medium::rid[3]

Array of RTP Stream IDs (for Firefox simulcasting, if enabled)

◆ rids_hml

gboolean janus_ice_peerconnection_medium::rids_hml

Whether the order of the rids in the SDP will be h-m-l (TRUE) or l-m-h (FALSE)

◆ rtcp_ctx

janus_rtcp_context* janus_ice_peerconnection_medium::rtcp_ctx[3]

RTCP context(s) for the medium (may be simulcasting)

◆ rtp_ctx

janus_rtp_switching_context janus_ice_peerconnection_medium::rtp_ctx[3]

RTP switching context(s) in case of renegotiations (audio+video and/or simulcast)

◆ rtx_nacked

GHashTable* janus_ice_peerconnection_medium::rtx_nacked[3]

Map(s) of the NACKed packets (to track retransmissions and avoid duplicates)

◆ rtx_payload_type

gint janus_ice_peerconnection_medium::rtx_payload_type

◆ rtx_payload_types

GHashTable* janus_ice_peerconnection_medium::rtx_payload_types

Mapping of rtx payload types to actual media-related packet types.

◆ rtx_seq_number

guint16 janus_ice_peerconnection_medium::rtx_seq_number

Current sequence number for the RFC4588 rtx SSRC session.

◆ send

gboolean janus_ice_peerconnection_medium::send

Media direction.

◆ ssrc

guint32 janus_ice_peerconnection_medium::ssrc

SSRC of the server for this medium.

◆ ssrc_peer

guint32 janus_ice_peerconnection_medium::ssrc_peer[3]

SSRC(s) of the peer for this medium (may be simulcasting)

◆ ssrc_peer_new

guint32 janus_ice_peerconnection_medium::ssrc_peer_new[3]

◆ ssrc_peer_orig

guint32 janus_ice_peerconnection_medium::ssrc_peer_orig[3]

◆ ssrc_peer_rtx

guint32 janus_ice_peerconnection_medium::ssrc_peer_rtx[3]

Retransmissions SSRC(s) of the peer for this medium (may be simulcasting)

◆ ssrc_peer_rtx_new

guint32 janus_ice_peerconnection_medium::ssrc_peer_rtx_new[3]

◆ ssrc_peer_rtx_orig

guint32 janus_ice_peerconnection_medium::ssrc_peer_rtx_orig[3]

◆ ssrc_peer_temp

guint32 janus_ice_peerconnection_medium::ssrc_peer_temp

◆ ssrc_rtx

guint32 janus_ice_peerconnection_medium::ssrc_rtx

Retransmission SSRC of the server for this medium.

◆ type

janus_media_type janus_ice_peerconnection_medium::type

Type of this medium.

◆ video_is_keyframe

gboolean(* janus_ice_peerconnection_medium::video_is_keyframe) (const char *buffer, int len)

Pointer to function to check if a packet is a keyframe (depends on negotiated codec; video only)


The documentation for this struct was generated from the following file: