Fork me on GitHub
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields

A single media in a PeerConnection. More...

#include <ice.h>

Collaboration diagram for janus_handle_webrtc_medium:
Collaboration graph
[legend]

Data Fields

janus_handle_webrtcpc
 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 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...
 
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...
 
GHashTable * rtx_nacked [3]
 Map(s) of the NACKed packets (to track retransmissions and avoid duplicates) More...
 
gint64 first_ntp_ts [3]
 First received NTP timestamp. More...
 
guint32 first_rtp_ts [3]
 First received RTP timestamp. More...
 
guint32 last_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 if needed) More...
 
janus_media_stats in_stats
 Stats for incoming data. More...
 
janus_media_stats out_stats
 Stats for outgoing 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

char* janus_handle_webrtc_medium::codec

Codec used in this medium.

volatile gint janus_handle_webrtc_medium::destroyed

Atomic flag to check if this instance has been destroyed.

gboolean janus_handle_webrtc_medium::do_nacks

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

gint64 janus_handle_webrtc_medium::first_ntp_ts[3]

First received NTP timestamp.

guint32 janus_handle_webrtc_medium::first_rtp_ts[3]

First received RTP timestamp.

janus_media_stats janus_handle_webrtc_medium::in_stats

Stats for incoming data.

janus_seq_info* janus_handle_webrtc_medium::last_seqs[3]

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

guint32 janus_handle_webrtc_medium::last_ts

Last sent RTP timestamp.

gboolean janus_handle_webrtc_medium::legacy_rid

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

char* janus_handle_webrtc_medium::mid

Media ID.

int janus_handle_webrtc_medium::mindex

Index of this medium in the media list.

janus_mutex janus_handle_webrtc_medium::mutex

Mutex to lock/unlock this medium.

gint64 janus_handle_webrtc_medium::nack_sent_log_ts

Last time a log message about sending NACKs was printed.

guint janus_handle_webrtc_medium::nack_sent_recent_cnt

Number of NACKs sent since last log message.

gboolean janus_handle_webrtc_medium::noerrorlog

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

janus_media_stats janus_handle_webrtc_medium::out_stats

Stats for outgoing data.

gint janus_handle_webrtc_medium::payload_type

RTP payload types for this medium.

GList* janus_handle_webrtc_medium::payload_types

List of payload types we can expect.

janus_handle_webrtc* janus_handle_webrtc_medium::pc

WebRTC PeerConnection this m-line belongs to.

gboolean janus_handle_webrtc_medium::recv
janus_refcount janus_handle_webrtc_medium::ref

Reference counter for this instance.

GQueue* janus_handle_webrtc_medium::retransmit_buffer

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

gint64 janus_handle_webrtc_medium::retransmit_log_ts

Last time a log message about sending retransmits was printed.

guint janus_handle_webrtc_medium::retransmit_recent_cnt

Number of retransmitted packets since last log message.

GHashTable* janus_handle_webrtc_medium::retransmit_seqs

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

char* janus_handle_webrtc_medium::rid[3]

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

janus_rtcp_context* janus_handle_webrtc_medium::rtcp_ctx[3]

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

janus_rtp_switching_context janus_handle_webrtc_medium::rtp_ctx[3]

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

GHashTable* janus_handle_webrtc_medium::rtx_nacked[3]

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

gint janus_handle_webrtc_medium::rtx_payload_type
GHashTable* janus_handle_webrtc_medium::rtx_payload_types

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

guint16 janus_handle_webrtc_medium::rtx_seq_number

Current sequence number for the RFC4588 rtx SSRC session.

gboolean janus_handle_webrtc_medium::send

Media direction.

guint32 janus_handle_webrtc_medium::ssrc

SSRC of the server for this medium.

guint32 janus_handle_webrtc_medium::ssrc_peer[3]

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

guint32 janus_handle_webrtc_medium::ssrc_peer_new[3]
guint32 janus_handle_webrtc_medium::ssrc_peer_orig[3]
guint32 janus_handle_webrtc_medium::ssrc_peer_rtx[3]

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

guint32 janus_handle_webrtc_medium::ssrc_peer_rtx_new[3]
guint32 janus_handle_webrtc_medium::ssrc_peer_rtx_orig[3]
guint32 janus_handle_webrtc_medium::ssrc_peer_temp
guint32 janus_handle_webrtc_medium::ssrc_rtx

Retransmission SSRC of the server for this medium.

janus_media_type janus_handle_webrtc_medium::type

Type of this medium.

gboolean(* janus_handle_webrtc_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: