Fork me on GitHub
Data Fields
janus_ice_stream Struct Reference

Janus ICE stream. More...

#include <ice.h>

Collaboration diagram for janus_ice_stream:
Collaboration graph
[legend]

Data Fields

janus_ice_handlehandle
 Janus ICE handle this stream belongs to. More...
 
guint stream_id
 libnice ICE stream ID More...
 
gint cdone:1
 Whether this stream is ready to be used. More...
 
guint32 audio_ssrc
 Audio SSRC of the server for this stream. More...
 
guint32 video_ssrc
 Video SSRC of the server for this stream. More...
 
guint32 video_ssrc_rtx
 Video retransmission SSRC of the peer for this stream. More...
 
guint32 audio_ssrc_peer
 Audio SSRC of the peer for this stream. More...
 
guint32 audio_ssrc_peer_new
 
guint32 audio_ssrc_peer_orig
 
guint32 video_ssrc_peer [3]
 Video SSRC(s) of the peer for this stream (may be simulcasting) More...
 
guint32 video_ssrc_peer_new [3]
 
guint32 video_ssrc_peer_orig [3]
 
guint32 video_ssrc_peer_temp
 
guint32 video_ssrc_peer_rtx [3]
 Video retransmissions SSRC(s) of the peer for this stream. More...
 
guint32 video_ssrc_peer_rtx_new [3]
 
guint32 video_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 * audio_payload_types
 List of payload types we can expect for audio. More...
 
GList * video_payload_types
 List of payload types we can expect for video. More...
 
GHashTable * rtx_payload_types
 Mapping of rtx payload types to actual media-related packet types. More...
 
int opusred_pt
 opus/red payload type, if enabled More...
 
GHashTable * clock_rates
 Mapping of payload types to their clock rates, as advertised in the SDP. More...
 
gint audio_payload_type
 RTP payload types of this stream. More...
 
gint video_payload_type
 
gint video_rtx_payload_type
 
char * audio_codec
 Codecs used by this stream. More...
 
char * video_codec
 
gboolean(* video_is_keyframe )(const char *buffer, int len)
 Pointer to function to check if a packet is a keyframe (depends on negotiated codec) More...
 
gboolean audio_send
 Media direction. More...
 
gboolean audio_recv
 
gboolean video_send
 
gboolean video_recv
 
janus_rtcp_contextaudio_rtcp_ctx
 RTCP context for the audio stream. More...
 
janus_rtcp_contextvideo_rtcp_ctx [3]
 RTCP context(s) for the video stream (may be simulcasting) More...
 
uint32_t remb_bitrate
 Latest REMB feedback we received. 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 audio_first_ntp_ts
 First received audio NTP timestamp. More...
 
guint32 audio_first_rtp_ts
 First received audio RTP timestamp. More...
 
gint64 video_first_ntp_ts [3]
 First received video NTP timestamp (for all simulcast video streams) More...
 
guint32 video_first_rtp_ts [3]
 First received video NTP RTP timestamp (for all simulcast video streams) More...
 
gint64 audio_last_ntp_ts
 Last sent audio NTP timestamp. More...
 
guint32 audio_last_rtp_ts
 Last sent audio RTP timestamp. More...
 
gint64 video_last_ntp_ts
 Last sent video NTP timestamp. More...
 
guint32 video_last_rtp_ts
 Last sent video RTP timestamp. More...
 
gint mid_ext_id
 SDES mid RTP extension ID. More...
 
gint rid_ext_id
 RTP Stream extension ID, and the related rtx one. More...
 
gint ridrtx_ext_id
 
gint audiolevel_ext_id
 Audio levels extension ID. More...
 
gint videoorientation_ext_id
 Video orientation extension ID. More...
 
gint dependencydesc_ext_id
 Dependency descriptor extension ID. More...
 
gint abs_send_time_ext_id
 Absolute Send Time ext ID. More...
 
gboolean do_transport_wide_cc
 Whether we do transport wide cc for video. More...
 
gint transport_wide_cc_ext_id
 Transport wide cc rtp ext ID. More...
 
guint16 transport_wide_cc_out_seq_num
 Last sent transport wide seq num. More...
 
guint32 transport_wide_cc_last_seq_num
 Last received transport wide seq num. More...
 
guint32 transport_wide_cc_last_feedback_seq_num
 Last transport wide seq num sent on feedback. More...
 
guint16 transport_wide_cc_cycles
 Transport wide cc transport seq num wrap cycles. More...
 
guint transport_wide_cc_feedback_count
 Transport wide cc rtp ext ID. More...
 
GSList * transport_wide_received_seq_nums
 GLib list of transport wide cc stats in reverse received order. More...
 
janus_dtls_role dtls_role
 DTLS role of the server for this stream. More...
 
gchar * remote_hashing
 Hashing algorhitm used by the peer for the DTLS certificate (e.g., "SHA-256") More...
 
gchar * remote_fingerprint
 Hashed fingerprint of the peer's certificate, as parsed in SDP. More...
 
gchar * ruser
 The ICE username for this stream. More...
 
gchar * rpass
 The ICE password for this stream. More...
 
GHashTable * components
 GLib hash table of components (IDs are the keys) More...
 
janus_ice_componentcomponent
 ICE component. 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 stream. 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

Janus ICE stream.

Field Documentation

◆ abs_send_time_ext_id

gint janus_ice_stream::abs_send_time_ext_id

Absolute Send Time ext ID.

◆ audio_codec

char* janus_ice_stream::audio_codec

Codecs used by this stream.

◆ audio_first_ntp_ts

gint64 janus_ice_stream::audio_first_ntp_ts

First received audio NTP timestamp.

◆ audio_first_rtp_ts

guint32 janus_ice_stream::audio_first_rtp_ts

First received audio RTP timestamp.

◆ audio_last_ntp_ts

gint64 janus_ice_stream::audio_last_ntp_ts

Last sent audio NTP timestamp.

◆ audio_last_rtp_ts

guint32 janus_ice_stream::audio_last_rtp_ts

Last sent audio RTP timestamp.

◆ audio_payload_type

gint janus_ice_stream::audio_payload_type

RTP payload types of this stream.

◆ audio_payload_types

GList* janus_ice_stream::audio_payload_types

List of payload types we can expect for audio.

◆ audio_recv

gboolean janus_ice_stream::audio_recv

◆ audio_rtcp_ctx

janus_rtcp_context* janus_ice_stream::audio_rtcp_ctx

RTCP context for the audio stream.

◆ audio_send

gboolean janus_ice_stream::audio_send

Media direction.

◆ audio_ssrc

guint32 janus_ice_stream::audio_ssrc

Audio SSRC of the server for this stream.

◆ audio_ssrc_peer

guint32 janus_ice_stream::audio_ssrc_peer

Audio SSRC of the peer for this stream.

◆ audio_ssrc_peer_new

guint32 janus_ice_stream::audio_ssrc_peer_new

◆ audio_ssrc_peer_orig

guint32 janus_ice_stream::audio_ssrc_peer_orig

◆ audiolevel_ext_id

gint janus_ice_stream::audiolevel_ext_id

Audio levels extension ID.

◆ cdone

gint janus_ice_stream::cdone

Whether this stream is ready to be used.

◆ clock_rates

GHashTable* janus_ice_stream::clock_rates

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

◆ component

janus_ice_component* janus_ice_stream::component

ICE component.

◆ components

GHashTable* janus_ice_stream::components

GLib hash table of components (IDs are the keys)

◆ dependencydesc_ext_id

gint janus_ice_stream::dependencydesc_ext_id

Dependency descriptor extension ID.

◆ destroyed

volatile gint janus_ice_stream::destroyed

Atomic flag to check if this instance has been destroyed.

◆ do_transport_wide_cc

gboolean janus_ice_stream::do_transport_wide_cc

Whether we do transport wide cc for video.

◆ dtls_role

janus_dtls_role janus_ice_stream::dtls_role

DTLS role of the server for this stream.

◆ handle

janus_ice_handle* janus_ice_stream::handle

Janus ICE handle this stream belongs to.

◆ legacy_rid

gboolean janus_ice_stream::legacy_rid

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

◆ mid_ext_id

gint janus_ice_stream::mid_ext_id

SDES mid RTP extension ID.

◆ mutex

janus_mutex janus_ice_stream::mutex

Mutex to lock/unlock this stream.

◆ nack_queue_ms

uint16_t janus_ice_stream::nack_queue_ms

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

◆ noerrorlog

gboolean janus_ice_stream::noerrorlog

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

◆ opusred_pt

int janus_ice_stream::opusred_pt

opus/red payload type, if enabled

◆ pending_nacked_cleanup

GHashTable* janus_ice_stream::pending_nacked_cleanup

Map of the pending NACKed cleanup callback.

◆ ref

janus_refcount janus_ice_stream::ref

Reference counter for this instance.

◆ remb_bitrate

uint32_t janus_ice_stream::remb_bitrate

Latest REMB feedback we received.

◆ remote_fingerprint

gchar* janus_ice_stream::remote_fingerprint

Hashed fingerprint of the peer's certificate, as parsed in SDP.

◆ remote_hashing

gchar* janus_ice_stream::remote_hashing

Hashing algorhitm used by the peer for the DTLS certificate (e.g., "SHA-256")

◆ rid

char* janus_ice_stream::rid[3]

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

◆ rid_ext_id

gint janus_ice_stream::rid_ext_id

RTP Stream extension ID, and the related rtx one.

◆ ridrtx_ext_id

gint janus_ice_stream::ridrtx_ext_id

◆ rids_hml

gboolean janus_ice_stream::rids_hml

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

◆ rpass

gchar* janus_ice_stream::rpass

The ICE password for this stream.

◆ rtp_ctx

janus_rtp_switching_context janus_ice_stream::rtp_ctx[3]

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

◆ rtx_nacked

GHashTable* janus_ice_stream::rtx_nacked[3]

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

◆ rtx_payload_types

GHashTable* janus_ice_stream::rtx_payload_types

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

◆ ruser

gchar* janus_ice_stream::ruser

The ICE username for this stream.

◆ stream_id

guint janus_ice_stream::stream_id

libnice ICE stream ID

◆ transport_wide_cc_cycles

guint16 janus_ice_stream::transport_wide_cc_cycles

Transport wide cc transport seq num wrap cycles.

◆ transport_wide_cc_ext_id

gint janus_ice_stream::transport_wide_cc_ext_id

Transport wide cc rtp ext ID.

◆ transport_wide_cc_feedback_count

guint janus_ice_stream::transport_wide_cc_feedback_count

Transport wide cc rtp ext ID.

◆ transport_wide_cc_last_feedback_seq_num

guint32 janus_ice_stream::transport_wide_cc_last_feedback_seq_num

Last transport wide seq num sent on feedback.

◆ transport_wide_cc_last_seq_num

guint32 janus_ice_stream::transport_wide_cc_last_seq_num

Last received transport wide seq num.

◆ transport_wide_cc_out_seq_num

guint16 janus_ice_stream::transport_wide_cc_out_seq_num

Last sent transport wide seq num.

◆ transport_wide_received_seq_nums

GSList* janus_ice_stream::transport_wide_received_seq_nums

GLib list of transport wide cc stats in reverse received order.

◆ video_codec

char * janus_ice_stream::video_codec

◆ video_first_ntp_ts

gint64 janus_ice_stream::video_first_ntp_ts[3]

First received video NTP timestamp (for all simulcast video streams)

◆ video_first_rtp_ts

guint32 janus_ice_stream::video_first_rtp_ts[3]

First received video NTP RTP timestamp (for all simulcast video streams)

◆ video_is_keyframe

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

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

◆ video_last_ntp_ts

gint64 janus_ice_stream::video_last_ntp_ts

Last sent video NTP timestamp.

◆ video_last_rtp_ts

guint32 janus_ice_stream::video_last_rtp_ts

Last sent video RTP timestamp.

◆ video_payload_type

gint janus_ice_stream::video_payload_type

◆ video_payload_types

GList* janus_ice_stream::video_payload_types

List of payload types we can expect for video.

◆ video_recv

gboolean janus_ice_stream::video_recv

◆ video_rtcp_ctx

janus_rtcp_context* janus_ice_stream::video_rtcp_ctx[3]

RTCP context(s) for the video stream (may be simulcasting)

◆ video_rtx_payload_type

gint janus_ice_stream::video_rtx_payload_type

◆ video_send

gboolean janus_ice_stream::video_send

◆ video_ssrc

guint32 janus_ice_stream::video_ssrc

Video SSRC of the server for this stream.

◆ video_ssrc_peer

guint32 janus_ice_stream::video_ssrc_peer[3]

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

◆ video_ssrc_peer_new

guint32 janus_ice_stream::video_ssrc_peer_new[3]

◆ video_ssrc_peer_orig

guint32 janus_ice_stream::video_ssrc_peer_orig[3]

◆ video_ssrc_peer_rtx

guint32 janus_ice_stream::video_ssrc_peer_rtx[3]

Video retransmissions SSRC(s) of the peer for this stream.

◆ video_ssrc_peer_rtx_new

guint32 janus_ice_stream::video_ssrc_peer_rtx_new[3]

◆ video_ssrc_peer_rtx_orig

guint32 janus_ice_stream::video_ssrc_peer_rtx_orig[3]

◆ video_ssrc_peer_temp

guint32 janus_ice_stream::video_ssrc_peer_temp

◆ video_ssrc_rtx

guint32 janus_ice_stream::video_ssrc_rtx

Video retransmission SSRC of the peer for this stream.

◆ videoorientation_ext_id

gint janus_ice_stream::videoorientation_ext_id

Video orientation extension ID.


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