GstRTSPMediaFactory

GstRTSPMediaFactory — A factory for media pipelines

Functions

Properties

guint buffer-size Read / Write
gboolean eos-shutdown Read / Write
gchar * launch Read / Write
GstRTSPProfile profiles Read / Write
GstRTSPLowerTrans protocols Read / Write
gboolean shared Read / Write
GstRTSPSuspendMode suspend-mode Read / Write

Signals

void media-configure Run Last
void media-constructed Run Last

Types and Values

Object Hierarchy

    GObject
    ╰── GstRTSPMediaFactory

Description

The GstRTSPMediaFactory is responsible for creating or recycling GstRTSPMedia objects based on the passed URL.

The default implementation of the object can create GstRTSPMedia objects containing a pipeline created from a launch description set with gst_rtsp_media_factory_set_launch().

Media from a factory can be shared by setting the shared flag with gst_rtsp_media_factory_set_shared(). When a factory is shared, gst_rtsp_media_factory_construct() will return the same GstRTSPMedia when the url matches.

Last reviewed on 2013-07-11 (1.0.0)

Functions

gst_rtsp_media_factory_new ()

GstRTSPMediaFactory *
gst_rtsp_media_factory_new (void);

Create a new GstRTSPMediaFactory instance.

Returns

a new GstRTSPMediaFactory object.

[transfer full]


gst_rtsp_media_factory_get_launch ()

gchar *
gst_rtsp_media_factory_get_launch (GstRTSPMediaFactory *factory);

Get the gst_parse_launch() pipeline description that will be used in the default prepare vmethod.

Parameters

factory

a GstRTSPMediaFactory

 

Returns

the configured launch description. g_free() after usage.

[transfer full]


gst_rtsp_media_factory_set_launch ()

void
gst_rtsp_media_factory_set_launch (GstRTSPMediaFactory *factory,
                                   const gchar *launch);

The gst_parse_launch() line to use for constructing the pipeline in the default prepare vmethod.

The pipeline description should return a GstBin as the toplevel element which can be accomplished by enclosing the dscription with brackets '(' ')'.

The description should return a pipeline with payloaders named pay0, pay1, etc.. Each of the payloaders will result in a stream.

Parameters

factory

a GstRTSPMediaFactory

 

launch

the launch description

 

gst_rtsp_media_factory_get_permissions ()

GstRTSPPermissions *
gst_rtsp_media_factory_get_permissions
                               (GstRTSPMediaFactory *factory);

Get the permissions object from factory .

Parameters

factory

a GstRTSPMediaFactory

 

Returns

a GstRTSPPermissions object, unref after usage.

[transfer full]


gst_rtsp_media_factory_set_permissions ()

void
gst_rtsp_media_factory_set_permissions
                               (GstRTSPMediaFactory *factory,
                                GstRTSPPermissions *permissions);

Set permissions on factory .

Parameters

factory

a GstRTSPMediaFactory

 

permissions

a GstRTSPPermissions.

[transfer none]

gst_rtsp_media_factory_add_role ()

void
gst_rtsp_media_factory_add_role (GstRTSPMediaFactory *factory,
                                 const gchar *role,
                                 const gchar *fieldname,
                                 ...);

A convenience method to add role with fieldname and additional arguments to the permissions of factory . If factory had no permissions, new permissions will be created and the role will be added to it.

Parameters

factory

a GstRTSPMediaFactory

 

role

a role

 

fieldname

the first field name

 

...

additional arguments

 

gst_rtsp_media_factory_set_shared ()

void
gst_rtsp_media_factory_set_shared (GstRTSPMediaFactory *factory,
                                   gboolean shared);

Configure if media created from this factory can be shared between clients.

Parameters

factory

a GstRTSPMediaFactory

 

shared

the new value

 

gst_rtsp_media_factory_is_shared ()

gboolean
gst_rtsp_media_factory_is_shared (GstRTSPMediaFactory *factory);

Get if media created from this factory can be shared between clients.

Parameters

factory

a GstRTSPMediaFactory

 

Returns

TRUE if the media will be shared between clients.


gst_rtsp_media_factory_is_eos_shutdown ()

gboolean
gst_rtsp_media_factory_is_eos_shutdown
                               (GstRTSPMediaFactory *factory);

Get if media created from this factory will have an EOS event sent to the pipeline before shutdown.

Parameters

factory

a GstRTSPMediaFactory

 

Returns

TRUE if the media will receive EOS before shutdown.


gst_rtsp_media_factory_set_eos_shutdown ()

void
gst_rtsp_media_factory_set_eos_shutdown
                               (GstRTSPMediaFactory *factory,
                                gboolean eos_shutdown);

Configure if media created from this factory will have an EOS sent to the pipeline before shutdown.

Parameters

factory

a GstRTSPMediaFactory

 

eos_shutdown

the new value

 

gst_rtsp_media_factory_get_protocols ()

GstRTSPLowerTrans
gst_rtsp_media_factory_get_protocols (GstRTSPMediaFactory *factory);

Get the allowed protocols of factory .

Parameters

factory

a GstRTSPMediaFactory

 

Returns

a GstRTSPLowerTrans


gst_rtsp_media_factory_set_protocols ()

void
gst_rtsp_media_factory_set_protocols (GstRTSPMediaFactory *factory,
                                      GstRTSPLowerTrans protocols);

Configure the allowed lower transport for factory .

Parameters

factory

a GstRTSPMediaFactory

 

protocols

the new flags

 

gst_rtsp_media_factory_set_profiles ()

void
gst_rtsp_media_factory_set_profiles (GstRTSPMediaFactory *factory,
                                     GstRTSPProfile profiles);

Configure the allowed profiles for factory .

Parameters

factory

a GstRTSPMediaFactory

 

profiles

the new flags

 

gst_rtsp_media_factory_get_profiles ()

GstRTSPProfile
gst_rtsp_media_factory_get_profiles (GstRTSPMediaFactory *factory);

Get the allowed profiles of factory .

Parameters

factory

a GstRTSPMediaFactory

 

Returns

a GstRTSPProfile


gst_rtsp_media_factory_get_address_pool ()

GstRTSPAddressPool *
gst_rtsp_media_factory_get_address_pool
                               (GstRTSPMediaFactory *factory);

Get the GstRTSPAddressPool used as the address pool of factory .

Parameters

factory

a GstRTSPMediaFactory

 

Returns

the GstRTSPAddressPool of factory . g_object_unref() after usage.

[transfer full]


gst_rtsp_media_factory_set_address_pool ()

void
gst_rtsp_media_factory_set_address_pool
                               (GstRTSPMediaFactory *factory,
                                GstRTSPAddressPool *pool);

configure pool to be used as the address pool of factory .

Parameters

factory

a GstRTSPMediaFactory

 

pool

a GstRTSPAddressPool.

[transfer none]

gst_rtsp_media_factory_get_buffer_size ()

guint
gst_rtsp_media_factory_get_buffer_size
                               (GstRTSPMediaFactory *factory);

Get the kernel UDP buffer size.

Parameters

factory

a GstRTSPMedia

 

Returns

the kernel UDP buffer size.


gst_rtsp_media_factory_set_buffer_size ()

void
gst_rtsp_media_factory_set_buffer_size
                               (GstRTSPMediaFactory *factory,
                                guint size);

Set the kernel UDP buffer size.

Parameters

factory

a GstRTSPMedia

 

size

the new value

 

gst_rtsp_media_factory_get_suspend_mode ()

GstRTSPSuspendMode
gst_rtsp_media_factory_get_suspend_mode
                               (GstRTSPMediaFactory *factory);

Get how media created from this factory will be suspended.

Parameters

factory

a GstRTSPMediaFactory

 

Returns

a GstRTSPSuspendMode.


gst_rtsp_media_factory_set_suspend_mode ()

void
gst_rtsp_media_factory_set_suspend_mode
                               (GstRTSPMediaFactory *factory,
                                GstRTSPSuspendMode mode);

Configure how media created from this factory will be suspended.

Parameters

factory

a GstRTSPMediaFactory

 

mode

the new GstRTSPSuspendMode

 

gst_rtsp_media_factory_construct ()

GstRTSPMedia *
gst_rtsp_media_factory_construct (GstRTSPMediaFactory *factory,
                                  const GstRTSPUrl *url);

Construct the media object and create its streams. Implementations should create the needed gstreamer elements and add them to the result object. No state changes should be performed on them yet.

One or more GstRTSPStream objects should be created from the result with gst_rtsp_media_create_stream().

After the media is constructed, it can be configured and then prepared with gst_rtsp_media_prepare().

Parameters

factory

a GstRTSPMediaFactory

 

url

the url used

 

Returns

a new GstRTSPMedia if the media could be prepared.

[transfer full]


gst_rtsp_media_factory_create_element ()

GstElement *
gst_rtsp_media_factory_create_element (GstRTSPMediaFactory *factory,
                                       const GstRTSPUrl *url);

Construct and return a GstElement that is a GstBin containing the elements to use for streaming the media.

The bin should contain payloaders pay%d for each stream. The default implementation of this function returns the bin created from the launch parameter.

Parameters

factory

a GstRTSPMediaFactory

 

url

the url used

 

Returns

a new GstElement.

[transfer floating]

Types and Values

struct GstRTSPMediaFactory

struct GstRTSPMediaFactory;

The definition and logic for constructing the pipeline for a media. The media can contain multiple streams like audio and video.


struct GstRTSPMediaFactoryClass

struct GstRTSPMediaFactoryClass {
  GObjectClass  parent_class;

  gchar *         (*gen_key)            (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);

  GstElement *    (*create_element)     (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
  GstRTSPMedia *  (*construct)          (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
  GstElement *    (*create_pipeline)    (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
  void            (*configure)          (GstRTSPMediaFactory *factory, GstRTSPMedia *media);

  /* signals */
  void            (*media_constructed)  (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
  void            (*media_configure)    (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
};

The GstRTSPMediaFactory class structure.

Members

GObjectClass parent_class;

   

gen_key ()

convert url to a key for caching shared GstRTSPMedia objects. The default implementation of this function will use the complete URL including the query parameters to return a key.

 

create_element ()

Construct and return a GstElement that is a GstBin containing the elements to use for streaming the media. The bin should contain payloaders pay%d for each stream. The default implementation of this function returns the bin created from the launch parameter.

 

construct ()

the vmethod that will be called when the factory has to create the GstRTSPMedia for url . The default implementation of this function calls create_element to retrieve an element and then looks for pay%d to create the streams.

 

create_pipeline ()

create a new pipeline or re-use an existing one and add the GstRTSPMedia's element created by construct to the pipeline.

 

configure ()

configure the media created with construct . The default implementation will configure the 'shared' property of the media.

 

media_constructed ()

signal emited when a media was constructed

 

media_configure ()

signal emited when a media should be configured

 

Property Details

The “buffer-size” property

  “buffer-size”              guint

The kernel UDP buffer size to use.

Flags: Read / Write

Default value: 524288


The “eos-shutdown” property

  “eos-shutdown”             gboolean

Send EOS down the pipeline before shutting down.

Flags: Read / Write

Default value: FALSE


The “launch” property

  “launch”                   gchar *

A launch description of the pipeline.

Flags: Read / Write

Default value: NULL


The “profiles” property

  “profiles”                 GstRTSPProfile

Allowed transfer profiles.

Flags: Read / Write

Default value: GST_RTSP_PROFILE_AVP


The “protocols” property

  “protocols”                GstRTSPLowerTrans

Allowed lower transport protocols.

Flags: Read / Write

Default value: GST_RTSP_LOWER_TRANS_UDP | GST_RTSP_LOWER_TRANS_UDP_MCAST | GST_RTSP_LOWER_TRANS_TCP


The “shared” property

  “shared”                   gboolean

If media from this factory is shared.

Flags: Read / Write

Default value: FALSE


The “suspend-mode” property

  “suspend-mode”             GstRTSPSuspendMode

Control how media will be suspended.

Flags: Read / Write

Default value: GST_RTSP_SUSPEND_MODE_NONE

Signal Details

The “media-configure” signal

void
user_function (GstRTSPMediaFactory *gstrtspmediafactory,
               GstRTSPMedia        *arg1,
               gpointer             user_data)

Flags: Run Last


The “media-constructed” signal

void
user_function (GstRTSPMediaFactory *gstrtspmediafactory,
               GstRTSPMedia        *arg1,
               gpointer             user_data)

Flags: Run Last

See Also

GstRTSPMountPoints, GstRTSPMedia