FsStreamTransmitter

FsStreamTransmitter — A stream transmitter object used to convey per-stream information to a transmitter.

Synopsis


#include <gst/farsight/fs-transmitter.h>

                    FsStreamTransmitter;
                    FsStreamTransmitterClass;
gboolean            fs_stream_transmitter_set_remote_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GList *candidates,
                                                         GError **error);
gboolean            fs_stream_transmitter_gather_local_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GError **error);
gboolean            fs_stream_transmitter_force_remote_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GList *remote_candidates,
                                                         GError **error);
void                fs_stream_transmitter_stop          (FsStreamTransmitter *streamtransmitter);
void                fs_stream_transmitter_emit_error    (FsStreamTransmitter *streamtransmitter,
                                                         gint error_no,
                                                         const gchar *error_msg,
                                                         const gchar *debug_msg);

Object Hierarchy

  GObject
   +----FsStreamTransmitter

Properties

  "associate-on-source"      gboolean              : Read / Write / Construct Only
  "preferred-local-candidates" FsCandidateList*      : Read / Write / Construct Only
  "sending"                  gboolean              : Read / Write

Signals

  "error"                                          : Run Last
  "known-source-packet-received"                   : Run Last
  "local-candidates-prepared"                      : Run Last
  "new-active-candidate-pair"                      : Run Last
  "new-local-candidate"                            : Run Last
  "state-changed"                                  : Run Last

Description

This object is the base implementation of a Farsight Stream Transmitter. It needs to be derived and implement by a Farsight transmitter. A Farsight Stream transmitter is used to convery per-stream information to a transmitter, this is mostly local and remote candidates

Details

FsStreamTransmitter

typedef struct _FsStreamTransmitter FsStreamTransmitter;

All members are private, access them using methods and properties


FsStreamTransmitterClass

typedef struct {
  GObjectClass parent_class;

  /*virtual functions */
  gboolean (*set_remote_candidates) (FsStreamTransmitter *streamtransmitter,
                                     GList *candidates, GError **error);

  gboolean (*force_remote_candidates) (FsStreamTransmitter *streamtransmitter,
      GList *remote_candidates,
      GError **error);
  gboolean (*gather_local_candidates) (FsStreamTransmitter *streamtransmitter,
                                       GError **error);
  void (*stop) (FsStreamTransmitter *streamtransmitter);
} FsStreamTransmitterClass;

You must override the add_remote_candidate in a subclass

GObjectClass parent_class; Our parent
set_remote_candidates () Sets the remote candidates
force_remote_candidates () Forces certain remote candidates
gather_local_candidates () Starts the gathering of local candidates
stop () Stop the stream transmitter synchronously (does any Gst stopping that needs to be done)

fs_stream_transmitter_set_remote_candidates ()

gboolean            fs_stream_transmitter_set_remote_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GList *candidates,
                                                         GError **error);

This function is used to set the remote candidates to the transmitter

streamtransmitter : a FsStreamTranmitter
candidates : a GList of the remote candidates
error : location of a GError, or NULL if no error occured
Returns : TRUE of the candidate could be added, FALSE if it couldnt (and the GError will be set)

fs_stream_transmitter_gather_local_candidates ()

gboolean            fs_stream_transmitter_gather_local_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GError **error);

This function tells the transmitter to start gathering local candidates, signals for new candidates and newly active candidates can be emitted during the call to this function.

streamtransmitter : a FsStreamTransmitter
error : location of a GErrorh, or NULL if no error occured
Returns : TRUE if it succeeds (or is not implemented), FALSE otherwise

fs_stream_transmitter_force_remote_candidates ()

gboolean            fs_stream_transmitter_force_remote_candidates
                                                        (FsStreamTransmitter *streamtransmitter,
                                                         GList *remote_candidates,
                                                         GError **error);

This function forces data to be sent immediately to the selected remote candidate, by-passing any connectivity checks. There should be at most one candidate per component.

streamtransmitter : a FsStreamTransmitter
remote_candidates : a GList of FsCandidate to force
error : location of a GError, or NULL if no error occured
Returns : TRUE if the candidates could be forced, FALSE otherwise

fs_stream_transmitter_stop ()

void                fs_stream_transmitter_stop          (FsStreamTransmitter *streamtransmitter);

This functions stops the FsStreamTransmitter, it must be called before the last reference is dropped.

streamtransmitter : a FsStreamTransmitter

fs_stream_transmitter_emit_error ()

void                fs_stream_transmitter_emit_error    (FsStreamTransmitter *streamtransmitter,
                                                         gint error_no,
                                                         const gchar *error_msg,
                                                         const gchar *debug_msg);

This function emit the "error" signal on a FsStreamTransmitter, it should only be called by subclasses.

streamtransmitter : FsStreamTransmitter on which to emit the error signal
error_no : The number of the error
error_msg : Error message to be displayed to user
debug_msg : Debugging error message

Property Details

The "associate-on-source" property

  "associate-on-source"      gboolean              : Read / Write / Construct Only

This tells the stream transmitter to associate incoming data with this based on the source without looking at the content if possible.

Default value: TRUE


The "preferred-local-candidates" property

  "preferred-local-candidates" FsCandidateList*      : Read / Write / Construct Only

A GList of FsCandidates.


The "sending" property

  "sending"                  gboolean              : Read / Write

A network source GstElement to be used by the FsSession

Default value: TRUE

Signal Details

The "error" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        FsError              errorno,
                                                        gchar               *error_msg,
                                                        gchar               *debug_msg,
                                                        gpointer             user_data)      : Run Last

This signal is emitted in any error condition

self : FsStreamTransmitter that emitted the signal
errorno : The number of the error
error_msg : Error message to be displayed to user
debug_msg : Debugging error message
user_data : user data set when the signal handler was connected.

The "known-source-packet-received" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        guint                component,
                                                        gpointer             buffer,
                                                        gpointer             user_data)      : Run Last

This signal is emitted when a buffer coming from a confirmed known source is received.

self : FsStreamTransmitter that emitted the signal
component : The Component on which this buffer was received
buffer : the GstBuffer coming from the known source
user_data : user data set when the signal handler was connected.

The "local-candidates-prepared" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        gpointer             user_data)      : Run Last

This signal is emitted when all local candidates have been prepared, an ICE implementation would send its SDP offer or answer.

self : FsStreamTransmitter that emitted the signal
user_data : user data set when the signal handler was connected.

The "new-active-candidate-pair" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        FsCandidate         *local_candidate,
                                                        FsCandidate         *remote_candidate,
                                                        gpointer             user_data)             : Run Last

This signal is emitted when there is a new active chandidate pair that has been established. This is specially useful for ICE where the active candidate pair can change automatically due to network conditions. The user must not modify the candidates and must copy them if he wants to use them outside the callback scope.

self : FsStreamTransmitter that emitted the signal
local_candidate : FsCandidate of the local candidate being used
remote_candidate : FsCandidate of the remote candidate being used
user_data : user data set when the signal handler was connected.

The "new-local-candidate" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        FsCandidate         *local_candidate,
                                                        gpointer             user_data)            : Run Last

This signal is emitted when a new local candidate is discovered.

self : FsStream that emitted the signal
local_candidate : FsCandidate of the local candidate
user_data : user data set when the signal handler was connected.

The "state-changed" signal

void                user_function                      (FsStreamTransmitter *self,
                                                        guint                component,
                                                        FsStreamState        state,
                                                        gpointer             user_data)      : Run Last

This signal is emitted when the ICE state (or equivalent) of the component changes

self : FsStreamTransmitter that emitted the signal
component : the id of the component which state has changed
state : the new state of the component
user_data : user data set when the signal handler was connected.