FsCandidate

FsCandidate — Structure describing a transport candidate.

Synopsis


#include <gst/farsight/fs-conference-iface.h>

                    FsCandidate;
enum                FsCandidateType;
enum                FsNetworkProtocol;
enum                FsComponentType;
FsCandidate*        fs_candidate_new                    (const gchar *foundation,
                                                         guint component_id,
                                                         FsCandidateType type,
                                                         FsNetworkProtocol proto,
                                                         const gchar *ip,
                                                         guint port);
void                fs_candidate_destroy                (FsCandidate *cand);
FsCandidate*        fs_candidate_copy                   (const FsCandidate *cand);
void                fs_candidate_list_destroy           (GList *candidate_list);
GList*              fs_candidate_list_copy              (const GList *candidate_list);

Description

An FsCandidate is a way to exchange candidate information between the client and Farsight. This description is compatible with ICE-13. It can also be a multicast address. Candidates are linked to streams. The information specified in this structure is usually representative of the codec information exchanged in the signaling.

Details

FsCandidate

typedef struct {
  gchar *foundation;
  guint component_id;
  const gchar *ip;
  guint16 port;
  const gchar *base_ip;
  guint16 base_port;
  FsNetworkProtocol proto;
  guint32 priority;
  FsCandidateType type;
  const gchar *username;
  const gchar *password;
  guint ttl;
} FsCandidate;

Struct to hold information about ICE-19 compliant candidates

gchar *foundation; a string representing the foundation of this candidate (maximum 32 chars)
guint component_id; value between 1 and 256 indicating which component this candidate represents (1 is RTP, 2 is RTCP, FsComponentType can be used here)
const gchar *ip; IP in dotted format
guint16 port; Port to use
const gchar *base_ip; IP of base in dotted format as defined in ICE-19.
guint16 base_port; Port of base as defined in ICE-19.
FsNetworkProtocol proto; FsNetworkProtocol for ip protocol to use as candidate
guint32 priority; Value between 0 and (2^31 - 1) representing the priority
FsCandidateType type; The FsCandidateType of the candidate
const gchar *username; Username to use to connect to client if necessary, NULL otherwise
const gchar *password; Username to use to connect to client if necessary, NULL otherwise
guint ttl; The TTL used when sending Multicast packet (0 = auto)

enum FsCandidateType

typedef enum
{
  FS_CANDIDATE_TYPE_HOST,
  FS_CANDIDATE_TYPE_SRFLX,
  FS_CANDIDATE_TYPE_PRFLX,
  FS_CANDIDATE_TYPE_RELAY,    /* An external stream relay */
  FS_CANDIDATE_TYPE_MULTICAST
} FsCandidateType;

An enum for the type of candidate used/reported

FS_CANDIDATE_TYPE_HOST A host candidate (local)
FS_CANDIDATE_TYPE_SRFLX A server reflexive candidate.
FS_CANDIDATE_TYPE_PRFLX A peer reflexive candidate
FS_CANDIDATE_TYPE_RELAY An relay candidate
FS_CANDIDATE_TYPE_MULTICAST A multicast address

enum FsNetworkProtocol

typedef enum
{
  FS_NETWORK_PROTOCOL_UDP,
  FS_NETWORK_PROTOCOL_TCP
} FsNetworkProtocol;

An enum for the base IP protocol

FS_NETWORK_PROTOCOL_UDP A UDP based protocol
FS_NETWORK_PROTOCOL_TCP A TCP based protocol

enum FsComponentType

typedef enum
{
  FS_COMPONENT_NONE = 0,
  FS_COMPONENT_RTP = 1,
  FS_COMPONENT_RTCP = 2
} FsComponentType;

This enum contains the component IDs defined in ICE-19

FS_COMPONENT_NONE Use this when specifying a component is innapropriate
FS_COMPONENT_RTP This component is for RTP data
FS_COMPONENT_RTCP This component is for RTCP control

fs_candidate_new ()

FsCandidate*        fs_candidate_new                    (const gchar *foundation,
                                                         guint component_id,
                                                         FsCandidateType type,
                                                         FsNetworkProtocol proto,
                                                         const gchar *ip,
                                                         guint port);

Allocates a new FsCandidate, the rest of the fields can be optionally filled manually.

foundation : The foundation of the candidate
component_id : The component this candidate is for
type : The type of candidate
proto : The protocol this component is for
ip : The IP address of this component (can be NULL for local candidate to mean any address)
port : the UDP/TCP port
Returns : a newly-allocated FsCandidate

fs_candidate_destroy ()

void                fs_candidate_destroy                (FsCandidate *cand);

Frees a FsCandidate and all its contents

cand : a FsCandidate to delete

fs_candidate_copy ()

FsCandidate*        fs_candidate_copy                   (const FsCandidate *cand);

Copies a FsCandidate and its contents.

cand : a FsCandidate to copy
Returns : a new FsCandidate

fs_candidate_list_destroy ()

void                fs_candidate_list_destroy           (GList *candidate_list);

Deletes a GList of FsCandidate and its contents

candidate_list : A GList of FsCandidate

fs_candidate_list_copy ()

GList*              fs_candidate_list_copy              (const GList *candidate_list);

Copies a GList of FsCandidate and its contents

candidate_list : A GList of FsCandidate
Returns : a new GList of FsCandidate