FsTransmitter

FsTransmitter — A transmitter object linked to a session

Synopsis

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

                    FsTransmitter;
struct              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


struct FsTransmitterClass

struct FsTransmitterClass {
  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);
};

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