rtpdtmfmux

rtpdtmfmux — mixes RTP DTMF streams into other RTP streams

Synopsis

                    GstRTPDTMFMux;

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstRTPMux
                     +----GstRTPDTMFMux

Signals

  "locking"                                        : Run Last
  "unlocked"                                       : Run Last

Description

The RTPDTMFMuxer mixes/muxes RTP DTMF stream(s) into other RTP streams. It does exactly what it's parent (RTPMuxer) does, except that it allows upstream peer elements to request exclusive access to the stream, which is required by the RTP DTMF standards (see RFC 2833, section 3.2, para 1 for details). The peer upstream element requests the acquisition and release of a stream lock beginning using custom downstream gstreamer events. To request the acquisition of the lock, the peer element must send an event of type GST_EVENT_CUSTOM_DOWNSTREAM_OOB, having a structure of name "stream-lock" with only one boolean field: "lock". If this field is set to TRUE, the request is for the acquisition of the lock, otherwise it is for release of the lock.

For example, the following code in an upstream peer element requests the acquisition of the stream lock:

GstEvent *event;
GstStructure *structure;
GstPad *srcpad;

... /\* srcpad initialization goes here \*\/

structure = gst_structure_new ("stream-lock",
                   "lock", G_TYPE_BOOLEAN, TRUE, NULL);

event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM_OOB, structure);
gst_pad_push_event (dtmfsrc->srcpad, event);

Details

GstRTPDTMFMux

typedef struct _GstRTPDTMFMux GstRTPDTMFMux;

The opaque GstRTPDTMFMux structure.

Signal Details

The "locking" signal

void                user_function                      (GstRTPDTMFMux *gstrtpdtmfmux,
                                                        GstPad        *arg1,
                                                        gpointer       user_data)          : Run Last

gstrtpdtmfmux :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "unlocked" signal

void                user_function                      (GstRTPDTMFMux *gstrtpdtmfmux,
                                                        GstPad        *arg1,
                                                        gpointer       user_data)          : Run Last

gstrtpdtmfmux :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

See Also

rtpdtmfsrc, dtmfsrc