/** * gst_rtsp_media_factory_get_protocols: * @factory: a #GstRTSPMediaFactory * * Get the allowed protocols of @factory. * * Returns: a #GstRTSPLowerTrans */ GstRTSPLowerTrans gst_rtsp_media_factory_get_protocols (GstRTSPMediaFactory * factory) { g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), GST_RTSP_LOWER_TRANS_UNKNOWN); return factory->protocols; }
/** * gst_rtsp_media_factory_set_protocols: * @factory: a #GstRTSPMediaFactory * @protocols: the new flags * * Configure the allowed lower transport for @factory. */ void gst_rtsp_media_factory_set_protocols (GstRTSPMediaFactory * factory, GstRTSPLowerTrans protocols) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); factory->protocols = protocols; }
/** * gst_rtsp_media_factory_set_buffer_size: * @factory: a #GstRTSPMedia * @size: the new value * * Set the kernel UDP buffer size. */ void gst_rtsp_media_factory_set_buffer_size (GstRTSPMediaFactory * factory, guint size) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); GST_RTSP_MEDIA_FACTORY_LOCK (factory); factory->buffer_size = size; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_shared: * @factory: a #GstRTSPMediaFactory * @shared: the new value * * Configure if media created from this factory can be shared between clients. */ void gst_rtsp_media_factory_set_shared (GstRTSPMediaFactory * factory, gboolean shared) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); GST_RTSP_MEDIA_FACTORY_LOCK (factory); factory->shared = shared; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_eos_shutdown: * @factory: a #GstRTSPMediaFactory * @eos_shutdown: the new value * * Configure if media created from this factory will have an EOS sent to the * pipeline before shutdown. */ void gst_rtsp_media_factory_set_eos_shutdown (GstRTSPMediaFactory * factory, gboolean eos_shutdown) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); GST_RTSP_MEDIA_FACTORY_LOCK (factory); factory->eos_shutdown = eos_shutdown; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_mapping_add_factory: * @mapping: a #GstRTSPMediaMapping * @path: a mount point * @factory: a #GstRTSPMediaFactory * * Attach @factory to the mount point @path in @mapping. * * @path is of the form (/node)+. Any previous mapping will be freed. * * Ownership is taken of the reference on @factory so that @factory should not be * used after calling this function. */ void gst_rtsp_media_mapping_add_factory (GstRTSPMediaMapping * mapping, const gchar * path, GstRTSPMediaFactory * factory) { g_return_if_fail (GST_IS_RTSP_MEDIA_MAPPING (mapping)); g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); g_return_if_fail (path != NULL); g_hash_table_insert (mapping->mappings, g_strdup (path), factory); }
/** * gst_rtsp_media_factory_set_multicast_group: * @factory: a #GstRTSPMedia * @mc: the new multicast group * * Set the multicast group that media from @factory will be streamed to. */ void gst_rtsp_media_factory_set_multicast_group (GstRTSPMediaFactory * factory, const gchar * mc) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); GST_RTSP_MEDIA_FACTORY_LOCK (factory); g_free (factory->multicast_group); factory->multicast_group = g_strdup (mc); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_launch: * @factory: a #GstRTSPMediaFactory * @launch: the launch description * * * 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. */ void gst_rtsp_media_factory_set_launch (GstRTSPMediaFactory * factory, const gchar * launch) { g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); g_return_if_fail (launch != NULL); GST_RTSP_MEDIA_FACTORY_LOCK (factory); g_free (factory->launch); factory->launch = g_strdup (launch); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_get_auth: * @factory: a #GstRTSPMediaFactory * * Get the #GstRTSPAuth used as the authentication manager of @factory. * * Returns: the #GstRTSPAuth of @factory. g_object_unref() after * usage. */ GstRTSPAuth * gst_rtsp_media_factory_get_auth (GstRTSPMediaFactory * factory) { GstRTSPAuth *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); if ((result = factory->auth)) g_object_ref (result); return result; }
/** * gst_rtsp_media_factory_is_eos_shutdown: * @factory: a #GstRTSPMediaFactory * * Get if media created from this factory will have an EOS event sent to the * pipeline before shutdown. * * Returns: %TRUE if the media will receive EOS before shutdown. */ gboolean gst_rtsp_media_factory_is_eos_shutdown (GstRTSPMediaFactory * factory) { gboolean result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), FALSE); GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = factory->eos_shutdown; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_multicast_group: * @factory: a #GstRTSPMedia * * Get the multicast group that media from @factory will be streamed to. * * Returns: the multicast group */ gchar * gst_rtsp_media_factory_get_multicast_group (GstRTSPMediaFactory * factory) { gchar *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = g_strdup (factory->multicast_group); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_buffer_size: * @factory: a #GstRTSPMedia * * Get the kernel UDP buffer size. * * Returns: the kernel UDP buffer size. */ guint gst_rtsp_media_factory_get_buffer_size (GstRTSPMediaFactory * factory) { guint result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), 0); GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = factory->buffer_size; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_set_stop_on_disconnect: * @factory: a #GstRTSPMediaFactory * @stop_on_disconnect: the new value * * Configure if media created from this factory should be stopped * when a client disconnects without sending TEARDOWN. */ void gst_rtsp_media_factory_set_stop_on_disconnect (GstRTSPMediaFactory * factory, gboolean stop_on_disconnect) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv->stop_on_disconnect = stop_on_disconnect; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_suspend_mode: * @factory: a #GstRTSPMediaFactory * @mode: the new #GstRTSPSuspendMode * * Configure how media created from this factory will be suspended. */ void gst_rtsp_media_factory_set_suspend_mode (GstRTSPMediaFactory * factory, GstRTSPSuspendMode mode) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv->suspend_mode = mode; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_latency: * @factory: a #GstRTSPMediaFactory * @latency: latency in milliseconds * * Configure the latency used for receiving media */ void gst_rtsp_media_factory_set_latency (GstRTSPMediaFactory * factory, guint latency) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_DEBUG_OBJECT (factory, "latency %ums", latency); GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv->latency = latency; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_get_latency: * @factory: a #GstRTSPMediaFactory * * Get the latency that is used for receiving media * * Returns: latency in milliseconds */ guint gst_rtsp_media_factory_get_latency (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; guint res; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), 0); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); res = priv->latency; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return res; }
/** * gst_rtsp_media_factory_get_transport_mode: * @factory: a #GstRTSPMediaFactory * * Get if media created from this factory can be used for PLAY or RECORD * methods. * * Returns: The supported transport modes. */ GstRTSPTransportMode gst_rtsp_media_factory_get_transport_mode (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPTransportMode result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), FALSE); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = priv->transport_mode; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_is_stop_on_disconnect: * @factory: a #GstRTSPMediaFactory * * Get if media created from this factory should be stopped when a client * disconnects without sending TEARDOWN. * * Returns: %TRUE if the media will be stopped when a client disconnects * without sending TEARDOWN. */ gboolean gst_rtsp_media_factory_is_stop_on_disonnect (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; gboolean result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), TRUE); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = priv->stop_on_disconnect; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_retransmission_time: * @factory: a #GstRTSPMediaFactory * * Get the time that is stored for retransmission purposes * * Returns: a #GstClockTime */ GstClockTime gst_rtsp_media_factory_get_retransmission_time (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstClockTime res; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), 0); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); res = priv->rtx_time; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return res; }
/** * gst_rtsp_media_factory_set_protocols: * @factory: a #GstRTSPMediaFactory * @protocols: the new flags * * Configure the allowed lower transport for @factory. */ void gst_rtsp_media_factory_set_protocols (GstRTSPMediaFactory * factory, GstRTSPLowerTrans protocols) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_DEBUG_OBJECT (factory, "protocols %d", protocols); GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv->protocols = protocols; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_get_launch: * @factory: a #GstRTSPMediaFactory * * Get the gst_parse_launch() pipeline description that will be used in the * default prepare vmethod. * * Returns: (transfer full): the configured launch description. g_free() after * usage. */ gchar * gst_rtsp_media_factory_get_launch (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; gchar *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = g_strdup (priv->launch); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_is_shared: * @factory: a #GstRTSPMediaFactory * * Get if media created from this factory can be shared between clients. * * Returns: %TRUE if the media will be shared between clients. */ gboolean gst_rtsp_media_factory_is_shared (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; gboolean result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), FALSE); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = priv->shared; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_set_retransmission_time: * @factory: a #GstRTSPMediaFactory * @time: a #GstClockTime * * Configure the time to store for possible retransmission */ void gst_rtsp_media_factory_set_retransmission_time (GstRTSPMediaFactory * factory, GstClockTime time) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_DEBUG_OBJECT (factory, "retransmission time %" G_GUINT64_FORMAT, time); GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv->rtx_time = time; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_set_permissions: * @factory: a #GstRTSPMediaFactory * @permissions: (transfer none): a #GstRTSPPermissions * * Set @permissions on @factory. */ void gst_rtsp_media_factory_set_permissions (GstRTSPMediaFactory * factory, GstRTSPPermissions * permissions) { GstRTSPMediaFactoryPrivate *priv; g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); if (priv->permissions) gst_rtsp_permissions_unref (priv->permissions); if ((priv->permissions = permissions)) gst_rtsp_permissions_ref (permissions); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); }
/** * gst_rtsp_media_factory_get_protocols: * @factory: a #GstRTSPMediaFactory * * Get the allowed protocols of @factory. * * Returns: a #GstRTSPLowerTrans */ GstRTSPLowerTrans gst_rtsp_media_factory_get_protocols (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPLowerTrans res; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), GST_RTSP_LOWER_TRANS_UNKNOWN); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); res = priv->protocols; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return res; }
/** * gst_rtsp_media_factory_get_permissions: * @factory: a #GstRTSPMediaFactory * * Get the permissions object from @factory. * * Returns: (transfer full): a #GstRTSPPermissions object, unref after usage. */ GstRTSPPermissions * gst_rtsp_media_factory_get_permissions (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPPermissions *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); if ((result = priv->permissions)) gst_rtsp_permissions_ref (result); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_suspend_mode: * @factory: a #GstRTSPMediaFactory * * Get how media created from this factory will be suspended. * * Returns: a #GstRTSPSuspendMode. */ GstRTSPSuspendMode gst_rtsp_media_factory_get_suspend_mode (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPSuspendMode result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), GST_RTSP_SUSPEND_MODE_NONE); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); result = priv->suspend_mode; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_address_pool: * @factory: a #GstRTSPMediaFactory * * Get the #GstRTSPAddressPool used as the address pool of @factory. * * Returns: (transfer full): the #GstRTSPAddressPool of @factory. g_object_unref() after * usage. */ GstRTSPAddressPool * gst_rtsp_media_factory_get_address_pool (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPAddressPool *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); if ((result = priv->pool)) g_object_ref (result); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return result; }
/** * gst_rtsp_media_factory_get_multicast_iface: * @media_factory: a #GstRTSPMediaFactory * * Get the multicast interface used for @media_factory. * * Returns: (transfer full): the multicast interface for @media_factory. g_free() after * usage. */ gchar * gst_rtsp_media_factory_get_multicast_iface (GstRTSPMediaFactory * media_factory) { GstRTSPMediaFactoryPrivate *priv; gchar *result; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (media_factory), NULL); priv = media_factory->priv; g_mutex_lock (&priv->lock); if ((result = priv->multicast_iface)) result = g_strdup (result); g_mutex_unlock (&priv->lock); return result; }
/** * gst_rtsp_media_factory_get_profiles: * @factory: a #GstRTSPMediaFactory * * Get the allowed profiles of @factory. * * Returns: a #GstRTSPProfile */ GstRTSPProfile gst_rtsp_media_factory_get_profiles (GstRTSPMediaFactory * factory) { GstRTSPMediaFactoryPrivate *priv; GstRTSPProfile res; g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), GST_RTSP_PROFILE_UNKNOWN); priv = factory->priv; GST_RTSP_MEDIA_FACTORY_LOCK (factory); res = priv->profiles; GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); return res; }