FsTransmitter

FsTransmitter — A transmitter object linked to a session

Synopsis


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

                    FsTransmitter;
                    FsTransmitterClass;
FsTransmitter*      fs_transmitter_new                  (const gchar *type,
                                                         guint components,
                                                         guint tos,
                                                         GError **error);
FsStreamTransmitter* fs_transmitter_new_stream_transmitter
                                                        (FsTransmitter *transmitter,
                                                         FsParticipant *participant,
                                                         guint n_parameters,
                                                         GParameter *parameters,
                                                         GError **error);
GType               fs_transmitter_get_stream_transmitter_type
                                                        (FsTransmitter *transmitter);
void                fs_transmitter_emit_error           (FsTransmitter *transmitter,
                                                         gint error_no,
                                                         const gchar *error_msg,
                                                         const gchar *debug_msg);
GstElement*         fs_transmitter_get_recvonly_filter  (FsTransmitter *transmitter,
                                                         guint component);
char**              fs_transmitter_list_available       (void);

Object Hierarchy

  GObject
   +----FsTransmitter

Properties

  "components"               guint                 : Read / Write / Construct Only
  "gst-sink"                 GstElement*           : Read
  "gst-src"                  GstElement*           : Read
  "tos"                      guint                 : Read / Write

Signals

  "error"                                          : Run Last
  "get-recvonly-filter"                            : Run Last

Description

This object is the base implementation of a Farsight Transmitter. It needs to be derived and implement by a Farsight transmitter. A Farsight Transmitter provides a GStreamer network sink and source to be used for the Farsight Session. It creates FsStreamTransmitter objects which are used to set the different per-stream properties

Details

FsTransmitter

typedef struct _FsTransmitter FsTransmitter;

All members are private, access them using methods and properties


FsTransmitterClass

typedef struct {
  GObjectClass parent_class;

  /*virtual functions */
  FsStreamTransmitter *(*new_stream_transmitter) (FsTransmitter *transmitter,
                                                  FsParticipant *participant,
                                                  guint n_parameters,
                                                  GParameter *parameters,
                                                  GError **error);
  GType (*get_stream_transmitter_type) (FsTransmitter *transmitter);
} FsTransmitterClass;

You must override both methods in a subclass.

GObjectClass parent_class; Our parent
new_stream_transmitter () Creates a new FsStreamTransmitter
get_stream_transmitter_type () Returns the GType of the stream transmitter created by this class (useful for bindings)

fs_transmitter_new ()

FsTransmitter*      fs_transmitter_new                  (const gchar *type,
                                                         guint components,
                                                         guint tos,
                                                         GError **error);

This function creates a new transmitter of the requested type. It will load the appropriate plugin as required.

type : The type of transmitter to create
components : The number of components to create
tos : The Type of Service of the socket, max is 255
error : location of a GError, or NULL if no error occured
Returns : a newly-created FsTransmitter of the requested type (or NULL if there is an error)

fs_transmitter_new_stream_transmitter ()

FsStreamTransmitter* fs_transmitter_new_stream_transmitter
                                                        (FsTransmitter *transmitter,
                                                         FsParticipant *participant,
                                                         guint n_parameters,
                                                         GParameter *parameters,
                                                         GError **error);

This function will create a new FsStreamTransmitter element for a specific participant for this FsTransmitter

transmitter : a FsTranmitter
participant : the FsParticipant for which the FsStream using this new FsStreamTransmitter is created
n_parameters : The number of parameters to pass to the newly created FsStreamTransmitter
parameters : an array of GParameter
error : location of a GError, or NULL if no error occured
Returns : a new FsStreamTransmitter, or NULL if there is an error

fs_transmitter_get_stream_transmitter_type ()

GType               fs_transmitter_get_stream_transmitter_type
                                                        (FsTransmitter *transmitter);

This function returns the GObject type for the stream transmitter. This is meant for bindings that need to introspect the type of arguments that can be passed to the _new_stream_transmitter.

transmitter : A FsTransmitter object
Returns : the GType

fs_transmitter_emit_error ()

void                fs_transmitter_emit_error           (FsTransmitter *transmitter,
                                                         gint error_no,
                                                         const gchar *error_msg,
                                                         const gchar *debug_msg);

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

transmitter : FsTransmitter 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

fs_transmitter_get_recvonly_filter ()

GstElement*         fs_transmitter_get_recvonly_filter  (FsTransmitter *transmitter,
                                                         guint component);

Get the filter to add on the send pipeline if sending is disabled.

Only for use by subclasses.

transmitter : A FsTransmitter object
component : The component to get the filter for
Returns : a GstElement to use as the filter or NULL

fs_transmitter_list_available ()

char**              fs_transmitter_list_available       (void);

Get the list of all available transmitters

Returns : a newly allocated array of strings containing the list of all available transmitters or NULL if there are none. It should be freed with g_strfreev().

Property Details

The "components" property

  "components"               guint                 : Read / Write / Construct Only

The number of components to create

Allowed values: [1,255]

Default value: 1


The "gst-sink" property

  "gst-sink"                 GstElement*           : Read

A network source GstElement to be used by the FsSession These element's sink must have async=FALSE This element MUST provide a pad named "sink\d" per component. These pads number must start at 1 (the \d corresponds to the component number). These pads MUST be static pads.


The "gst-src" property

  "gst-src"                  GstElement*           : Read

A network source GstElement to be used by the FsSession This element MUST provide a source pad named "srcd" per component. These pads number must start at 1 (the d corresponds to the component number). These pads MUST be static pads.


The "tos" property

  "tos"                      guint                 : Read / Write

Sets the IP ToS field (and if possible the IPv6 TCLASS field

Allowed values: <= 255

Default value: 0

Signal Details

The "error" signal

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

This signal is emitted in any error condition

self : FsTransmitter 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 "get-recvonly-filter" signal

GstElement*         user_function                      (FsTransmitter *self,
                                                        guint          component,
                                                        gpointer       user_data)      : Run Last

This signal is emitted when the transmitter wants to get a filter for to use if sending is disabled. If you want to drop all buffers, just don't listen to the signal.

This element should have a "sending" property that can be changed with the sending state of the stream. It should default to TRUE.

self : FsTransmitter that emitted the signal
component : The component that the filter will be used for
user_data : user data set when the signal handler was connected.
Returns : the GstElement to use as the filter, or NULL to drop everything