mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
Document GstURIHandler
Original commit message from CVS: * docs/gst/gstreamer-sections.txt: * gst/gsturi.c: * gst/gsturi.h: Document GstURIHandler
This commit is contained in:
parent
6938d93206
commit
18c654dac4
4 changed files with 89 additions and 34 deletions
|
@ -1,3 +1,10 @@
|
|||
2005-11-09 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* docs/gst/gstreamer-sections.txt:
|
||||
* gst/gsturi.c:
|
||||
* gst/gsturi.h:
|
||||
Document GstURIHandler
|
||||
|
||||
2005-11-09 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* gst/gstiterator.c: (gst_iterator_fold), (gst_iterator_foreach),
|
||||
|
|
|
@ -1965,13 +1965,13 @@ gst_type_find_factory_get_type
|
|||
<FILE>gsturihandler</FILE>
|
||||
<TITLE>GstUriHandler</TITLE>
|
||||
GstURIHandler
|
||||
GstURIHandlerInterface
|
||||
GstURIType
|
||||
GST_URI_TYPE_IS_VALID
|
||||
gst_uri_protocol_is_valid
|
||||
gst_uri_is_valid
|
||||
gst_uri_get_protocol
|
||||
gst_uri_get_location
|
||||
gst_uri_get_uri_type
|
||||
gst_uri_construct
|
||||
gst_element_make_from_uri
|
||||
gst_uri_handler_get_uri_type
|
||||
|
@ -1990,7 +1990,7 @@ GST_TYPE_URI
|
|||
GST_TYPE_URI_TYPE
|
||||
<SUBSECTION Private>
|
||||
gst_uri_handler_get_type
|
||||
gst_uri_get_type
|
||||
gst_uri_get_uri_type
|
||||
gst_uri_type_get_type
|
||||
</SECTION>
|
||||
|
||||
|
|
84
gst/gsturi.c
84
gst/gsturi.c
|
@ -22,11 +22,17 @@
|
|||
|
||||
/**
|
||||
* SECTION:gsturihandler
|
||||
* @short_description: Plugin feature that handles URI types
|
||||
* @see_also: #GstPluginFeature, #GstUri
|
||||
* @short_description: Interface to ease URI handling in plugins.
|
||||
*
|
||||
* The URIHandler is a pluginfeature that can be used to locate elements and
|
||||
* the element property that can handle a given URI.
|
||||
* The URIHandler is an interface that is implemented by Source and Sink
|
||||
* #GstElement to simplify then handling of URI.
|
||||
*
|
||||
* An application can use the following functions to quickly get an element
|
||||
* that handles the given URI for reading or writing (#gst_element_make_from_uri).
|
||||
*
|
||||
* Source and Sink plugins should implement when possible this interface.
|
||||
*
|
||||
* Last reviewed on 2005-11-09 (0.9.4)
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
@ -79,6 +85,15 @@ gst_uri_handler_base_init (gpointer g_class)
|
|||
static gboolean initialized = FALSE;
|
||||
|
||||
if (!initialized) {
|
||||
|
||||
/**
|
||||
* GstURIHandler::new-uri:
|
||||
* @handler: The #GstURIHandler which emitted the signal
|
||||
* @uri: The new URI, or NULL if the URI was removed
|
||||
*
|
||||
* The URI of the given @handler has changed.
|
||||
*/
|
||||
|
||||
g_signal_new ("new-uri", GST_TYPE_URI_HANDLER, G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (GstURIHandlerInterface, new_uri), NULL, NULL,
|
||||
gst_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
|
||||
|
@ -190,7 +205,7 @@ escape_string_internal (const gchar * string, UnsafeCharacterSet mask)
|
|||
* Return value: a newly allocated string equivalent to @string
|
||||
* but with all special characters escaped
|
||||
**/
|
||||
gchar *
|
||||
static gchar *
|
||||
escape_string (const gchar * string)
|
||||
{
|
||||
return escape_string_internal (string, UNSAFE_ALL);
|
||||
|
@ -294,12 +309,12 @@ gst_uri_protocol_check_internal (const gchar * uri, gchar ** endptr)
|
|||
|
||||
/**
|
||||
* gst_uri_protocol_is_valid:
|
||||
* @protocol: string to check
|
||||
* @protocol: A string
|
||||
*
|
||||
* Tests if the given string is a valid protocol identifier. Protocols
|
||||
* must consist of alphanumeric characters and not start with a number.
|
||||
*
|
||||
* Returns: TRUE if the string is a valid protocol identifier
|
||||
* Returns: TRUE if the string is a valid protocol identifier, FALSE otherwise.
|
||||
*/
|
||||
gboolean
|
||||
gst_uri_protocol_is_valid (const gchar * protocol)
|
||||
|
@ -315,10 +330,10 @@ gst_uri_protocol_is_valid (const gchar * protocol)
|
|||
|
||||
/**
|
||||
* gst_uri_is_valid:
|
||||
* @uri: string to check
|
||||
* @uri: A URI string
|
||||
*
|
||||
* Tests if the given string is a valid URI identifier. URIs start with a valid
|
||||
* protocol followed by "://" and a string identifying the location.
|
||||
* protocol followed by "://" and maybe a string identifying the location.
|
||||
*
|
||||
* Returns: TRUE if the string is a valid URI
|
||||
*/
|
||||
|
@ -336,7 +351,7 @@ gst_uri_is_valid (const gchar * uri)
|
|||
|
||||
/**
|
||||
* gst_uri_get_protocol:
|
||||
* @uri: URI to get protocol from
|
||||
* @uri: A URI string
|
||||
*
|
||||
* Extracts the protocol out of a given valid URI. The returned string must be
|
||||
* freed using g_free().
|
||||
|
@ -358,13 +373,13 @@ gst_uri_get_protocol (const gchar * uri)
|
|||
|
||||
/**
|
||||
* gst_uri_get_location:
|
||||
* @uri: URI to get the location from
|
||||
* @uri: A URI string
|
||||
*
|
||||
* Extracts the location out of a given valid URI. So the protocol and "://"
|
||||
* are stripped from the URI. The returned string must be freed using
|
||||
* g_free().
|
||||
*
|
||||
* Returns: The location for this URI.
|
||||
* Returns: The location for this URI. Returns NULL if the URI isn't valid.
|
||||
*/
|
||||
gchar *
|
||||
gst_uri_get_location (const gchar * uri)
|
||||
|
@ -387,12 +402,13 @@ gst_uri_get_location (const gchar * uri)
|
|||
|
||||
/**
|
||||
* gst_uri_construct:
|
||||
* @protocol: protocol for URI
|
||||
* @location: location for URI
|
||||
* @protocol: Protocol for URI
|
||||
* @location: Location for URI
|
||||
*
|
||||
* Constructs a URI for a given valid protocol and location.
|
||||
*
|
||||
* Returns: a new string for this URI
|
||||
* Returns: a new string for this URI. Returns NULL if the given URI protocol
|
||||
* is not valid, or the given location is NULL.
|
||||
*/
|
||||
gchar *
|
||||
gst_uri_construct (const gchar * protocol, const gchar * location)
|
||||
|
@ -454,9 +470,9 @@ sort_by_rank (gconstpointer a, gconstpointer b)
|
|||
|
||||
/**
|
||||
* gst_element_make_from_uri:
|
||||
* @type: wether to create a source or a sink
|
||||
* @uri: URI to create element for
|
||||
* @elementname: optional name of created element
|
||||
* @type: Wether to create a source or a sink
|
||||
* @uri: URI to create an element for
|
||||
* @elementname: Name of created element, can be NULL.
|
||||
*
|
||||
* Creates an element for handling the given URI.
|
||||
*
|
||||
|
@ -508,11 +524,12 @@ gst_element_make_from_uri (const GstURIType type, const gchar * uri,
|
|||
|
||||
/**
|
||||
* gst_uri_handler_get_uri_type:
|
||||
* @handler: Handler to query type of
|
||||
* @handler: A #GstURIHandler.
|
||||
*
|
||||
* Gets the type of a URI handler
|
||||
* Gets the type of the given URI handler
|
||||
*
|
||||
* Returns: the type of the URI handler
|
||||
* Returns: the #GstURIType of the URI handler.
|
||||
* Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.
|
||||
*/
|
||||
guint
|
||||
gst_uri_handler_get_uri_type (GstURIHandler * handler)
|
||||
|
@ -533,12 +550,14 @@ gst_uri_handler_get_uri_type (GstURIHandler * handler)
|
|||
|
||||
/**
|
||||
* gst_uri_handler_get_protocols:
|
||||
* @handler: Handler to get protocols for
|
||||
* @handler: A #GstURIHandler.
|
||||
*
|
||||
* Gets the list of supported protocols for this handler. This list may not be
|
||||
* Gets the list of protocols supported by @handler. This list may not be
|
||||
* modified.
|
||||
*
|
||||
* Returns: the supported protocols
|
||||
* Returns: the supported protocols.
|
||||
* Returns NULL if the @handler isn't implemented properly, or the @handler
|
||||
* doesn't support any protocols.
|
||||
*/
|
||||
gchar **
|
||||
gst_uri_handler_get_protocols (GstURIHandler * handler)
|
||||
|
@ -559,11 +578,12 @@ gst_uri_handler_get_protocols (GstURIHandler * handler)
|
|||
|
||||
/**
|
||||
* gst_uri_handler_get_uri:
|
||||
* @handler: handler to query URI of
|
||||
* @handler: A #GstURIHandler
|
||||
*
|
||||
* Gets the currently handled URI of the handler or NULL, if none is set.
|
||||
* Gets the currently handled URI.
|
||||
*
|
||||
* Returns: the URI
|
||||
* Returns: the URI currently handler by the @handler.
|
||||
* Returns NULL if there are no URI currently handled.
|
||||
*/
|
||||
G_CONST_RETURN gchar *
|
||||
gst_uri_handler_get_uri (GstURIHandler * handler)
|
||||
|
@ -585,12 +605,12 @@ gst_uri_handler_get_uri (GstURIHandler * handler)
|
|||
|
||||
/**
|
||||
* gst_uri_handler_set_uri:
|
||||
* @handler: handler to set URI of
|
||||
* @handler: A #GstURIHandler
|
||||
* @uri: URI to set
|
||||
*
|
||||
* Tries to set the URI of the given handler and returns TRUE if it succeeded.
|
||||
* Tries to set the URI of the given handler.
|
||||
*
|
||||
* Returns: TRUE, if the URI was set successfully
|
||||
* Returns: TRUE if the URI was set successfully, else FALSE.
|
||||
*/
|
||||
gboolean
|
||||
gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri)
|
||||
|
@ -608,10 +628,10 @@ gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri)
|
|||
|
||||
/**
|
||||
* gst_uri_handler_new_uri:
|
||||
* @handler: handler with a new URI
|
||||
* @handler: A #GstURIHandler
|
||||
* @uri: new URI or NULL if it was unset
|
||||
*
|
||||
* Emits the new-uri event for a given handler, when that handler has a new URI.
|
||||
* Emits the new-uri signal for a given handler, when that handler has a new URI.
|
||||
* This function should only be called by URI handlers themselves.
|
||||
*/
|
||||
void
|
||||
|
|
28
gst/gsturi.h
28
gst/gsturi.h
|
@ -30,12 +30,27 @@
|
|||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GstURIType:
|
||||
* @GST_URI_UNKNOWN : The URI direction is unknown
|
||||
* @GST_URI_SINK : The URI is a consumer.
|
||||
* @GST_URI_SRC : The URI is a producer.
|
||||
*
|
||||
* The different types of URI direction.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
GST_URI_UNKNOWN,
|
||||
GST_URI_SINK,
|
||||
GST_URI_SRC
|
||||
} GstURIType;
|
||||
|
||||
/**
|
||||
* GST_URI_TYPE_IS_VALID:
|
||||
* @type: A #GstURIType
|
||||
*
|
||||
* Tests if the type direction is valid.
|
||||
*/
|
||||
#define GST_URI_TYPE_IS_VALID(type) ((type) == GST_URI_SRC || (type) == GST_URI_SINK)
|
||||
|
||||
/* uri handler functions */
|
||||
|
@ -48,9 +63,20 @@ typedef enum {
|
|||
typedef struct _GstURIHandler GstURIHandler;
|
||||
typedef struct _GstURIHandlerInterface GstURIHandlerInterface;
|
||||
|
||||
/**
|
||||
* GstURIHandlerInterface:
|
||||
* @get_type: Method to tell wether the element handles source or sink URI.
|
||||
* @get_protocols: Method to return the list of protocols handled by the element.
|
||||
* @get_uri: Method to return the URI currently handled by the element.
|
||||
* @set_uri: Method to set a new URI.
|
||||
*
|
||||
* #GstElements using this interface should implement these methods.
|
||||
*/
|
||||
|
||||
struct _GstURIHandlerInterface {
|
||||
GTypeInterface parent;
|
||||
|
||||
/*< private >*/
|
||||
/* signals */
|
||||
void (* new_uri) (GstURIHandler * handler,
|
||||
const gchar * uri);
|
||||
|
@ -62,6 +88,7 @@ struct _GstURIHandlerInterface {
|
|||
|
||||
/* vtable */
|
||||
|
||||
/*< public >*/
|
||||
/* querying capabilities */
|
||||
GstURIType (* get_type) (void);
|
||||
gchar ** (* get_protocols) (void);
|
||||
|
@ -71,6 +98,7 @@ struct _GstURIHandlerInterface {
|
|||
gboolean (* set_uri) (GstURIHandler * handler,
|
||||
const gchar * uri);
|
||||
|
||||
/*< private >*/
|
||||
/* we might want to add functions here to query features,
|
||||
* someone with gnome-vfs knowledge go ahead */
|
||||
|
||||
|
|
Loading…
Reference in a new issue