FsRtpSession

FsRtpSession — A RTP session in a FsRtpConference

Properties

gint no-rtcp-timeout Read / Write
FsRtpHeaderExtensionGList * rtp-header-extension-preferences Read / Write
FsRtpHeaderExtensionGList * rtp-header-extensions Read
guint send-bitrate Read / Write
guint ssrc Read / Write
GObject * internal-session Read

Types and Values

struct FsRtpSession

Description

This object represents one session, it is created by called fs_conference_new_session() on a FsRtpConference. It can be either Audio or Video. It also represents data send with one and only one SSRC (although if there is a SSRC collision, that SSRC may change).

Codec profiles

It is possible to define "codec profiles", that is non-autodetected encoding and decoding pipelines for codecs. It is even possible to declare entirely new codecs using this method. To create a profile for a codec, add it to the codec-preferences with special optional parameters called "farstream-send-profile" and "farstream-recv-profile", these should contain gst-launch style descriptions of the encoding or decoding bin. As a special case, encoding profiles can have more than one unconnected source pad, all of these pads should produce application/x-rtp of some kind. The profile will be ignored if not ALL pads match currently negotiated codecs. Also, it is possible to declare profiles with only a decoding pipeline, you will only be able to receive from this codec, the encoding may be a secondary pad of some other codec.


SRTP signature and encryption

To tell FsRtpSession to authenticate encrypt the media it is sending using SRTP, one must set the parameters using a GstStructure named "FarstreamSRTP" and passing it to fs_session_set_encryption_parameters(). The cipher, auth, and key must be specified:

FarstreamSRTP

"rtp-cipher" and "rtcp-cipher" gchar *

Encryption algorithm

Possible values: "null", "aes-128-icm" or "aes-256-icm"

"cipher" gchar *

Default value for "rtp-cipher" and "rtcp-cipher"

Possible values: "null", "aes-128-icm" or "aes-256-icm"

"rtp-auth" and "rtcp-auth" gchar *

Authentication algorithm, can never be null

Possible values: "hmac-sha1-32" or "hmac-sha1-80"

"auth" gchar *

Default value for "rtp-auth" and "rtcp-auth"

Possible values: "hmac-sha1-32" or "hmac-sha1-80"

"key" GstBuffer Size must be 30 if cipher is "aes-128-icm" and 46 if cipher is "aes-256-icm"

Functions

Types and Values

struct FsRtpSession

struct FsRtpSession {
  FsSession parent;
};

Property Details

The “no-rtcp-timeout” property

  “no-rtcp-timeout”          gint

This is the time (in ms) after which data received without RTCP is attached the FsStream, this only works if there is only one FsStream. -1 will wait forever. 0 will not wait for RTCP and attach it immediataly to the FsStream and prohibit the creation of a second FsStream.

Flags: Read / Write

Allowed values: >= G_MAXULONG

Default value: 7000


The “rtp-header-extension-preferences” property

  “rtp-header-extension-preferences” FsRtpHeaderExtensionGList *

GList of RTP Header extensions that are locally supported and desired by the application.

Flags: Read / Write


The “rtp-header-extensions” property

  “rtp-header-extensions”    FsRtpHeaderExtensionGList *

GList of RTP Header extensions that have been negotiated and will be used when sending of receiving RTP packets.

Flags: Read


The “send-bitrate” property

  “send-bitrate”             guint

The bitrate that the session will try to send at in bits/sec.

Flags: Read / Write

Default value: 0


The “ssrc” property

  “ssrc”                     guint

This is the current SSRC used to send data (defaults to a random value).

Flags: Read / Write

Default value: 0


The “internal-session” property

  “internal-session”         GObject *

Internal RTPSession object from rtpbin.

Flags: Read