Loading...
Searching...
No Matches
janus_ice_peerconnection_medium Struct Reference

A single media in a PeerConnection. More...

`#include <ice.h>`

Collaboration diagram for janus_ice_peerconnection_medium:
[legend]

## Data Fields

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

## 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.

## disabled_rid

gboolean janus_ice_peerconnection_medium::disabled_rid[3]

Which simulcast rids are currently disabled, as per the latest negotiation.

## 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.

## msid

char* janus_ice_peerconnection_medium::msid

Media Stream ID info.

## mstid

char * janus_ice_peerconnection_medium::mstid

## 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.

## opusred_pt

int janus_ice_peerconnection_medium::opusred_pt

opus/red payload type, if enabled

## 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.

## remote_msid

char * janus_ice_peerconnection_medium::remote_msid

## remote_mstid

char * janus_ice_peerconnection_medium::remote_mstid

## 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 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:

- ice.h