From 71be3de62062a041581e50cfc34c2e958bc04e70 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Fri, 9 Feb 2018 03:30:08 +0100 Subject: [PATCH] Add initial libgstsdp, libgstrtsp and libgstrtspserver bindings Only automatic bindings for now, which is enough to allow implementing a simple rtsp-server example. Depends on https://github.com/sdroege/gstreamer-sys/pull/8 Uses a new gir feature proposed at https://github.com/gtk-rs/gir/pull/539 to make doc regeneration easier. Fixes https://github.com/sdroege/gstreamer-rs/pull/80 --- GstRtsp-1.0.gir | 5018 +++++++++++++++++++++ GstRtspServer-1.0.gir | 9575 +++++++++++++++++++++++++++++++++++++++++ GstSdp-1.0.gir | 4309 +++++++++++++++++++ 3 files changed, 18902 insertions(+) create mode 100644 GstRtsp-1.0.gir create mode 100644 GstRtspServer-1.0.gir create mode 100644 GstSdp-1.0.gir diff --git a/GstRtsp-1.0.gir b/GstRtsp-1.0.gir new file mode 100644 index 0000000..af34b1d --- /dev/null +++ b/GstRtsp-1.0.gir @@ -0,0 +1,5018 @@ + + + + + + + + + + + + + + + + + + + + + + Authentication methods, ordered by strength + + no authentication + + + basic authentication + + + digest authentication + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This object manages the RTSP connection to the server. It provides function +to receive and send bytes and messages. + + Clear the list of authentication directives stored in @conn. + + + + + + a #GstRTSPConnection + + + + + + Close the connected @conn. After this call, the connection is in the same +state as when it was first created. + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + + + Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is #NULL this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK when a connection could be made. + + + + + a #GstRTSPConnection + + + + a #GTimeVal timeout + + + + + + Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is #NULL this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. If @conn is set to tunneled, +@response will contain a response to the tunneling request messages. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK when a connection could be made. + +Since 1.8 + + + + + a #GstRTSPConnection + + + + a #GTimeVal timeout + + + + a #GstRTSPMessage + + + + + + If @conn received the first tunnel connection and @conn2 received +the second tunnel connection, link the two connections together so that +@conn manages the tunneled connection. + +After this call, @conn2 cannot be used anymore and must be freed with +gst_rtsp_connection_free(). + +If @conn2 is %NULL then only the base64 decoding context will be setup for +@conn. + + return GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + a #GstRTSPConnection or %NULL + + + + + + Start or stop the flushing action on @conn. When flushing, all current +and future actions on @conn will return #GST_RTSP_EINTR until the connection +is set to non-flushing mode again. + + #GST_RTSP_OK. + + + + + a #GstRTSPConnection + + + + start or stop the flush + + + + + + Close and free @conn. + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + + + Retrieve the IP address of the other end of @conn. + + The IP address as a string. this value remains valid until the +connection is closed. + + + + + a #GstRTSPConnection + + + + + + Get the file descriptor for reading. + + the file descriptor used for reading or %NULL on +error. The file descriptor remains valid until the connection is closed. + + + + + a #GstRTSPConnection + + + + + + + %TRUE if the #GstRTSPConnection remembers the session id in the +last response to set it on any further request. + + + + + a #GstRTSPConnection + + + + + + Get the TLS connection of @conn. + +For client side this will return the #GTlsClientConnection when connected +over TLS. + +For server side connections, this function will create a GTlsServerConnection +when called the first time and will return that same connection on subsequent +calls. The server is then responsible for configuring the TLS connection. + + the TLS connection for @conn. + + + + + a #GstRTSPConnection + + + + + + Gets the anchor certificate authorities database that will be used +after a server certificate can't be verified with the default +certificate database. + + the anchor certificate authorities database, or NULL if no +database has been previously set. Use g_object_unref() to release the +certificate database. + + + + + a #GstRTSPConnection + + + + + + Gets a #GTlsInteraction object to be used when the connection or certificate +database need to interact with the user. This will be used to prompt the +user for passwords where necessary. + + a reference on the #GTlsInteraction. Use +g_object_unref() to release. + + + + + a #GstRTSPConnection + + + + + + Gets the TLS validation flags used to verify the peer certificate +when a TLS connection is established. + + the validationg flags. + + + + + a #GstRTSPConnection + + + + + + Get the tunnel session id the connection. + + returns a non-empty string if @conn is being tunneled over HTTP. + + + + + a #GstRTSPConnection + + + + + + Retrieve the URL of the other end of @conn. + + The URL. This value remains valid until the +connection is freed. + + + + + a #GstRTSPConnection + + + + + + Get the file descriptor for writing. + + the file descriptor used for writing or NULL on +error. The file descriptor remains valid until the connection is closed. + + + + + a #GstRTSPConnection + + + + + + Get the tunneling state of the connection. + + if @conn is using HTTP tunneling. + + + + + a #GstRTSPConnection + + + + + + Calculate the next timeout for @conn, storing the result in @timeout. + + #GST_RTSP_OK. + + + + + a #GstRTSPConnection + + + + a timeout + + + + + + Wait up to the specified @timeout for the connection to become available for +at least one of the operations specified in @events. When the function returns +with #GST_RTSP_OK, @revents will contain a bitmask of available operations on +@conn. + +@timeout can be #NULL, in which case this function might block forever. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + a bitmask of #GstRTSPEvent flags to check + + + + location for result flags + + + + a timeout + + + + + + Attempt to read @size bytes into @data from the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + the data to read + + + + the size of @data + + + + a timeout value or #NULL + + + + + + Attempt to read into @message from the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + the message to read + + + + a timeout value or #NULL + + + + + + Reset the timeout of @conn. + + #GST_RTSP_OK. + + + + + a #GstRTSPConnection + + + + + + Attempt to send @message to the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + the message to send + + + + a timeout value or #NULL + + + + + + Configure @conn for authentication mode @method with @user and @pass as the +user and password respectively. + + #GST_RTSP_OK. + + + + + a #GstRTSPConnection + + + + authentication method + + + + the user + + + + the password + + + + + + Setup @conn with authentication directives. This is not necesary for +methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For +#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge +in the WWW-Authenticate response header and can include realm, domain, +nonce, opaque, stale, algorithm, qop as per RFC2617. + + + + + + a #GstRTSPConnection + + + + authentication directive + + + + value + + + + + + By setting the HTTP mode to %TRUE the message parsing will support HTTP +messages in addition to the RTSP messages. It will also disable the +automatic handling of setting up an HTTP tunnel. + + + + + + a #GstRTSPConnection + + + + %TRUE to enable manual HTTP mode + + + + + + Set the IP address of the server. + + + + + + a #GstRTSPConnection + + + + an ip address + + + + + + Set the proxy host and port. + + #GST_RTSP_OK. + + + + + a #GstRTSPConnection + + + + the proxy host + + + + the proxy port + + + + + + Configure @conn to use the specified DSCP value. + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + DSCP value + + + + + + Sets if the #GstRTSPConnection should remember the session id from the last +response received and force it onto any further requests. + +The default value is %TRUE + + + + + + a #GstRTSPConnection + + + + %TRUE if the connection should remember the session id + + + + + + Sets the anchor certificate authorities database. This certificate +database will be used to verify the server's certificate in case it +can't be verified with the default certificate database first. + + + + + + a #GstRTSPConnection + + + + a #GTlsDatabase + + + + + + Sets a #GTlsInteraction object to be used when the connection or certificate +database need to interact with the user. This will be used to prompt the +user for passwords where necessary. + + + + + + a #GstRTSPConnection + + + + a #GTlsInteraction + + + + + + Sets the TLS validation flags to be used to verify the peer +certificate when a TLS connection is established. + + TRUE if the validation flags are set correctly, or FALSE if +@conn is NULL or is not a TLS connection. + + + + + a #GstRTSPConnection + + + + the validation flags. + + + + + + Set the HTTP tunneling state of the connection. This must be configured before +the @conn is connected. + + + + + + a #GstRTSPConnection + + + + the new state + + + + + + Attempt to write @size bytes of @data to the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. + +This function can be cancelled with gst_rtsp_connection_flush(). + + #GST_RTSP_OK on success. + + + + + a #GstRTSPConnection + + + + the data to write + + + + the size of @data + + + + a timeout value or #NULL + + + + + + Accept a new connection on @socket and create a new #GstRTSPConnection for +handling communication on new socket. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a socket + + + + storage for a #GstRTSPConnection + + + + a #GCancellable to cancel the operation + + + + + + Create a newly allocated #GstRTSPConnection from @url and store it in @conn. +The connection will not yet attempt to connect to @url, use +gst_rtsp_connection_connect(). + +A copy of @url will be made. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a #GstRTSPUrl + + + + storage for a #GstRTSPConnection + + + + + + Create a new #GstRTSPConnection for handling communication on the existing +socket @socket. The @initial_buffer contains zero terminated data already +read from @socket which should be used before starting to read new data. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a #GSocket + + + + the IP address of the other end + + + + the port used by the other end + + + + data already read from @fd + + + + storage for a #GstRTSPConnection + + + + + + + The possible events for the connection. + + connection is readable + + + connection is writable + + + + This interface is implemented e.g. by the Windows Media Streaming RTSP + exentension (rtspwms) and the RealMedia RTSP extension (rtspreal). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The possible network families. + + unknown network family + + + internet + + + internet V6 + + + + Enumeration of rtsp header fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The different transport methods. + + invalid transport flag + + + stream data over UDP + + + stream data over UDP multicast + + + stream data over TCP + + + stream data tunneled over HTTP. + + + encrypt TCP and HTTP with TLS + + + + Provides methods for creating and parsing request, response and data messages. + + the message type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add a header with key @field and @value to @msg. This function takes a copy +of @value. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + the value of the header + + + + + + Add a header with key @header and @value to @msg. This function takes a copy +of @value. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + header string + + + + the value of the header + + + + + + Append the currently configured headers in @msg to the #GString @str suitable +for transmission. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + a string + + + + + + Dump the contents of @msg to stdout. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + + + Free the memory used by @msg. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + + + Get the body of @msg. @data remains valid for as long as @msg is valid and +unchanged. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + location for the data + + + + + + location for the size of @data + + + + + + Get the @indx header value with key @field from @msg. The result in @value +stays valid as long as it remains present in @msg. + + #GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key +was not found. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + pointer to hold the result + + + + the index of the header + + + + + + Get the @index header value with key @header from @msg. The result in @value +stays valid as long as it remains present in @msg. + + #GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key +was not found. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + pointer to hold the result + + + + the index of the header + + + + + + Get the message type of @msg. + + the message type. + + + + + a #GstRTSPMessage + + + + + + Initialize @msg. This function is mostly used when @msg is allocated on the +stack. The reverse operation of this is gst_rtsp_message_unset(). + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + + + Initialize a new data #GstRTSPMessage for @channel. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + a channel + + + + + + Initialize @msg as a request message with @method and @uri. To clear @msg +again, use gst_rtsp_message_unset(). + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + the request method to use + + + + the uri of the request + + + + + + Initialize @msg with @code and @reason. + +When @reason is #NULL, the default reason for @code will be used. + +When @request is not #NULL, the relevant headers will be copied to the new +response message. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + the status code + + + + the status reason or %NULL + + + + the request that triggered the response or %NULL + + + + + + Parses the credentials given in a WWW-Authenticate or Authorization header. + + %NULL-terminated array of GstRTSPAuthCredential or %NULL. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + + + Parse the data message @msg and store the channel in @channel. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + location to hold the channel + + + + + + Parse the request message @msg and store the values @method, @uri and +@version. The result locations can be #NULL if one is not interested in its +value. + +@uri remains valid for as long as @msg is valid and unchanged. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + location to hold the method + + + + location to hold the uri + + + + location to hold the version + + + + + + Parse the response message @msg and store the values @code, @reason and +@version. The result locations can be #NULL if one is not interested in its +value. + +@reason remains valid for as long as @msg is valid and unchanged. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + location to hold the status code + + + + location to hold the status reason + + + + location to hold the version + + + + + + Remove the @indx header with key @field from @msg. If @indx equals -1, all +headers will be removed. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + the index of the header + + + + + + Remove the @index header with key @header from @msg. If @index equals -1, +all matching headers will be removed. + + a #GstRTSPResult + + + + + a #GstRTSPMessage + + + + the header string + + + + the index of the header + + + + + + Set the body of @msg to a copy of @data. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + the data + + + + + + the size of @data + + + + + + Take the body of @msg and store it in @data and @size. After this method, +the body and size of @msg will be set to #NULL and 0 respectively. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + location for the data + + + + + + location for the size of @data + + + + + + Set the body of @msg to @data and @size. This method takes ownership of +@data. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + the data + + + + + + the size of @data + + + + + + Add a header with key @field and @value to @msg. This function takes +ownership of @value. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + a #GstRTSPHeaderField + + + + the value of the header + + + + + + Add a header with key @header and @value to @msg. This function takes +ownership of @value, but not of @header. + + a #GstRTSPResult. + + + + + a #GstRTSPMessage + + + + a header string + + + + the value of the header + + + + + + Unset the contents of @msg so that it becomes an uninitialized +#GstRTSPMessage again. This function is mostly used in combination with +gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and +gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures. + + #GST_RTSP_OK. + + + + + a #GstRTSPMessage + + + + + + Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + + + Create a new data #GstRTSPMessage with @channel and store the +result message in @msg. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the channel + + + + + + Create a new #GstRTSPMessage with @method and @uri and store the result +request message in @msg. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the request method to use + + + + the uri of the request + + + + + + Create a new response #GstRTSPMessage with @code and @reason and store the +result message in @msg. Free with gst_rtsp_message_free(). + +When @reason is #NULL, the default reason for @code will be used. + +When @request is not #NULL, the relevant headers will be copied to the new +response message. + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the status code + + + + the status reason or %NULL + + + + the request that triggered the response or %NULL + + + + + + + The different supported RTSP methods. + + invalid method + + + the DESCRIBE method + + + the ANNOUNCE method + + + the GET_PARAMETER method + + + the OPTIONS method + + + the PAUSE method + + + the PLAY method + + + the RECORD method + + + the REDIRECT method + + + the SETUP method + + + the SET_PARAMETER method + + + the TEARDOWN method + + + the GET method (HTTP). + + + the POST method (HTTP). + + + Convert @method to a string. + + a string representation of @method. + + + + + a #GstRTSPMethod + + + + + + + The type of a message. + + invalid message type + + + RTSP request message + + + RTSP response message + + + HTTP request message. + + + HTTP response message. + + + data message + + + + The transfer profile to use. + + invalid profile + + + the Audio/Visual profile (RFC 3551) + + + the secure Audio/Visual profile (RFC 3711) + + + the Audio/Visual profile with feedback (RFC 4585) + + + the secure Audio/Visual profile with feedback (RFC 5124) + + + + Provides helper functions to deal with time ranges. + + minimum value of the range + + + + maximum value of the range + + + + Converts the range in-place between different types of units. +Ranges containing the special value #GST_RTSP_TIME_NOW can not be +converted as these are only valid for #GST_RTSP_RANGE_NPT. + + %TRUE if the range could be converted + + + + + a #GstRTSPTimeRange + + + + the unit to convert the range into + + + + + + Free the memory allocated by @range. + + + + + + a #GstRTSPTimeRange + + + + + + Retrieve the minimum and maximum values from @range converted to +#GstClockTime in @min and @max. + +A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW +and #GST_RTSP_TIME_END for @min and @max respectively. + +UTC times will be converted to nanoseconds since 1900. + + %TRUE on success. + + + + + a #GstRTSPTimeRange + + + + result minimum #GstClockTime + + + + result maximum #GstClockTime + + + + + + Parse @rangestr to a #GstRTSPTimeRange. + + #GST_RTSP_OK on success. + + + + + a range string to parse + + + + location to hold the #GstRTSPTimeRange result + + + + + + Convert @range into a string representation. + + The string representation of @range. g_free() after usage. + + + + + a #GstRTSPTimeRange + + + + + + + Different possible time range units. + + SMPTE timecode + + + 29.97 frames per second + + + 25 frames per second + + + Normal play time + + + Absolute time expressed as ISO 8601 timestamps + + + + Result codes from the RTSP functions. + + no error + + + some unspecified error occured + + + invalid arguments were provided to a function + + + an operation was canceled + + + no memory was available for the operation + + + a host resolve error occured + + + function not implemented + + + a system error occured, errno contains more details + + + a persing error occured + + + windows networking could not start + + + windows networking stack has wrong version + + + end-of-file was reached + + + a network problem occured, h_errno contains more details + + + the host is not an IP host + + + a timeout occured + + + the tunnel GET request has been performed + + + the tunnel POST request has been performed + + + last error + + + + The different RTSP states. + + invalid state + + + initializing + + + ready for operation + + + seeking in progress + + + playing + + + recording + + + + Enumeration of rtsp status codes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A time indication. + + the time of the time + + + + seconds when @type is GST_RTSP_TIME_SECONDS, + GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES + + + + + Extra fields for a time indication. + + frames and subframes when type in GstRTSPTime is + GST_RTSP_TIME_FRAMES + + + + year when type is GST_RTSP_TIME_UTC + + + + month when type is GST_RTSP_TIME_UTC + + + + day when type is GST_RTSP_TIME_UTC + + + + + A time range. + + the time units used + + + + the minimum interval + + + + the maximum interval + + + + extra fields in the minimum interval (Since: 1.2) + + + + extra fields in the maximum interval (Since: 1.2) + + + + + Possible time types. + + seconds + + + now + + + end + + + frames and subframes + + + UTC time + + + + The transfer mode to use. + + invalid tansport mode + + + transfer RTP data + + + transfer RDT (RealMedia) data + + + + Provides helper functions to deal with RTSP transport strings. + + the transport mode + + + + the tansport profile + + + + the lower transport + + + + the destination ip/hostname + + + + the source ip/hostname + + + + the number of layers + + + + if play mode was selected + + + + if record mode was selected + + + + is append mode was selected + + + + the interleave range + + + + the time to live for multicast UDP + + + + the port pair for multicast sessions + + + + the client port pair for receiving data. For TCP + based transports, applications can use this field to store the + sender and receiver ports of the client. + + + + the server port pair for receiving data. For TCP + based transports, applications can use this field to store the + sender and receiver ports of the server. + + + + the ssrc that the sender/receiver will use + + + + + + + + + Convert @transport into a string that can be used to signal the transport in +an RTSP SETUP response. + + a string describing the RTSP transport or #NULL when the transport +is invalid. + + + + + a #GstRTSPTransport + + + + + + Free the memory used by @transport. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransport + + + + + + Get the media type of @transport. This media type is typically +used to generate #GstCaps events. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransport + + + + media type of @transport + + + + + + Initialize @transport so that it can be used. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransport + + + + + + Get the #GstElement that can handle the buffers transported over @trans. + +It is possible that there are several managers available, use @option to +selected one. + +@manager will contain an element name or #NULL when no manager is +needed/available for @trans. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransMode + + + + location to hold the result + + + + option index. + + + + + + Get the mime type of the transport mode @trans. This mime type is typically +used to generate #GstCaps events. + This functions only deals with the GstRTSPTransMode and only + returns the mime type for #GST_RTSP_PROFILE_AVP. Use + gst_rtsp_transport_get_media_type() instead. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransMode + + + + location to hold the result + + + + + + Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free() +after usage. + + a #GstRTSPResult. + + + + + location to hold the new #GstRTSPTransport + + + + + + Parse the RTSP transport string @str into @transport. + + a #GstRTSPResult. + + + + + a transport string + + + + a #GstRTSPTransport + + + + + + + Provides helper functions to handle RTSP urls. + + the transports allowed + + + + the family + + + + the user + + + + the password + + + + the host + + + + the port + + + + the absolute path + + + + additional query parameters + + + + Make a copy of @url. + + a copy of @url. Free with gst_rtsp_url_free () after usage. + + + + + a #GstRTSPUrl + + + + + + Splits the path of @url on '/' boundaries, decoding the resulting components, + +The decoding performed by this routine is "URI decoding", as defined in RFC +3986, commonly known as percent-decoding. For example, a string "foo\%2fbar" +will decode to "foo/bar" -- the \%2f being replaced by the corresponding byte +with hex value 0x2f. Note that there is no guarantee that the resulting byte +sequence is valid in any given encoding. As a special case, \%00 is not +unescaped to NUL, as that would prematurely terminate the string. + +Also note that since paths usually start with a slash, the first component +will usually be the empty string. + + %NULL-terminated array of URL components. Free with +g_strfreev() when no longer needed. + + + + + + + a #GstRTSPUrl + + + + + + Free the memory used by @url. + + + + + + a #GstRTSPUrl + + + + + + Get the port number of @url. + + #GST_RTSP_OK. + + + + + a #GstRTSPUrl + + + + location to hold the port + + + + + + Get a newly allocated string describing the request URI for @url. + + a string with the request URI. g_free() after usage. + + + + + a #GstRTSPUrl + + + + + + Set the port number in @url to @port. + + #GST_RTSP_OK. + + + + + a #GstRTSPUrl + + + + the port + + + + + + Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage +with gst_rtsp_url_free(). + + a #GstRTSPResult. + + + + + the url string to parse + + + + location to hold the result. + + + + + + + The supported RTSP versions. + + unknown/invalid version + + + version 1.0 + + + version 1.1. + + + Convert @version to a string. + + a string representation of @version. + + + + + a #GstRTSPVersion + + + + + + + Opaque RTSP watch object that can be used for asynchronous RTSP +operations. + + Adds a #GstRTSPWatch to a context so that it will be executed within that context. + + the ID (greater than 0) for the watch within the GMainContext. + + + + + a #GstRTSPWatch + + + + a GMainContext (if NULL, the default context will be used) + + + + + + Get the maximum amount of bytes and messages that will be queued in @watch. +See gst_rtsp_watch_set_send_backlog(). + + + + + + a #GstRTSPWatch + + + + maximum bytes + + + + maximum messages + + + + + + Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel() +when the file descriptors of the connection might have changed. + + + + + + a #GstRTSPWatch + + + + + + Send a @message using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +@message will then be serialized and transmitted when the connection of the +@watch becomes writable. In case the @message is queued, the ID returned in +@id will be non-zero and used as the ID argument in the message_sent +callback. + + #GST_RTSP_OK on success. + + + + + a #GstRTSPWatch + + + + a #GstRTSPMessage + + + + location for a message ID or %NULL + + + + + + When @flushing is %TRUE, abort a call to gst_rtsp_watch_wait_backlog() +and make sure gst_rtsp_watch_write_data() returns immediately with +#GST_RTSP_EINTR. And empty the queue. + + + + + + a #GstRTSPWatch + + + + new flushing state + + + + + + Set the maximum amount of bytes and messages that will be queued in @watch. +When the maximum amounts are exceeded, gst_rtsp_watch_write_data() and +gst_rtsp_watch_send_message() will return #GST_RTSP_ENOMEM. + +A value of 0 for @bytes or @messages means no limits. + + + + + + a #GstRTSPWatch + + + + maximum bytes + + + + maximum messages + + + + + + Decreases the reference count of @watch by one. If the resulting reference +count is zero the watch and associated memory will be destroyed. + + + + + + a #GstRTSPWatch + + + + + + Wait until there is place in the backlog queue, @timeout is reached +or @watch is set to flushing. + +If @timeout is %NULL this function can block forever. If @timeout +contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT +after the timeout expired. + +The typically use of this function is when gst_rtsp_watch_write_data +returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for +free space in the backlog queue and try again. + + %GST_RTSP_OK when if there is room in queue. + %GST_RTSP_ETIMEOUT when @timeout was reached. + %GST_RTSP_EINTR when @watch is flushing + %GST_RTSP_EINVAL when called with invalid parameters. + + + + + a #GstRTSPWatch + + + + a #GTimeVal timeout + + + + + + Write @data using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +@message will then be serialized and transmitted when the connection of the +@watch becomes writable. In case the @message is queued, the ID returned in +@id will be non-zero and used as the ID argument in the message_sent +callback. + +This function will take ownership of @data and g_free() it after use. + +If the amount of queued data exceeds the limits set with +gst_rtsp_watch_set_send_backlog(), this function will return +#GST_RTSP_ENOMEM. + + #GST_RTSP_OK on success. #GST_RTSP_ENOMEM when the backlog limits +are reached. #GST_RTSP_EINTR when @watch was flushing. + + + + + a #GstRTSPWatch + + + + the data to queue + + + + + + the size of @data + + + + location for a message ID or %NULL + + + + + + Create a watch object for @conn. The functions provided in @funcs will be +called with @user_data when activity happened on the watch. + +The new watch is usually created so that it can be attached to a +maincontext with gst_rtsp_watch_attach(). + +@conn must exist for the entire lifetime of the watch. + + a #GstRTSPWatch that can be used for asynchronous RTSP +communication. Free with gst_rtsp_watch_unref () after usage. + + + + + a #GstRTSPConnection + + + + watch functions + + + + user data to pass to @funcs + + + + notify when @user_data is not referenced anymore + + + + + + + Callback functions from a #GstRTSPWatch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The default RTSP port to connect to. + + + + Free a %NULL-terminated array of credentials returned from +gst_rtsp_message_parse_auth_credentials(). + + + + + + a %NULL-terminated array of #GstRTSPAuthCredential + + + + + + Accept a new connection on @socket and create a new #GstRTSPConnection for +handling communication on new socket. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a socket + + + + storage for a #GstRTSPConnection + + + + a #GCancellable to cancel the operation + + + + + + Create a newly allocated #GstRTSPConnection from @url and store it in @conn. +The connection will not yet attempt to connect to @url, use +gst_rtsp_connection_connect(). + +A copy of @url will be made. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a #GstRTSPUrl + + + + storage for a #GstRTSPConnection + + + + + + Create a new #GstRTSPConnection for handling communication on the existing +socket @socket. The @initial_buffer contains zero terminated data already +read from @socket which should be used before starting to read new data. + + #GST_RTSP_OK when @conn contains a valid connection. + + + + + a #GSocket + + + + the IP address of the other end + + + + the port used by the other end + + + + data already read from @fd + + + + storage for a #GstRTSPConnection + + + + + + Convert @header to a #GstRTSPHeaderField. + + a #GstRTSPHeaderField for @header or #GST_RTSP_HDR_INVALID if the +header field is unknown. + + + + + a header string + + + + + + Convert @method to a #GstRTSPMethod. + + a #GstRTSPMethod for @method or #GST_RTSP_INVALID if the +method is unknown. + + + + + a method + + + + + + Calculates the digest auth response from the values given by the server and +the username and password. See RFC2069 for details. + +Currently only supported algorithm "md5". + + Authentication response or %NULL if unsupported + + + + + Hash algorithm to use, or %NULL for MD5 + + + + Request method, e.g. PLAY + + + + Realm + + + + Username + + + + Password + + + + Original request URI + + + + Nonce + + + + + + Check whether @field may appear multiple times in a message. + + %TRUE if multiple headers are allowed. + + + + + a #GstRTSPHeaderField + + + + + + Convert @field to a string. + + a string representation of @field. + + + + + a #GstRTSPHeaderField + + + + + + Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + + + Create a new data #GstRTSPMessage with @channel and store the +result message in @msg. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the channel + + + + + + Create a new #GstRTSPMessage with @method and @uri and store the result +request message in @msg. Free with gst_rtsp_message_free(). + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the request method to use + + + + the uri of the request + + + + + + Create a new response #GstRTSPMessage with @code and @reason and store the +result message in @msg. Free with gst_rtsp_message_free(). + +When @reason is #NULL, the default reason for @code will be used. + +When @request is not #NULL, the relevant headers will be copied to the new +response message. + + a #GstRTSPResult. + + + + + a location for the new #GstRTSPMessage + + + + the status code + + + + the status reason or %NULL + + + + the request that triggered the response or %NULL + + + + + + Convert @method to a string. + + a string representation of @method. + + + + + a #GstRTSPMethod + + + + + + Convert @options to a string. + + a new string of @options. g_free() after usage. + + + + + one or more #GstRTSPMethod + + + + + + Convert the comma separated list @options to a #GstRTSPMethod bitwise or +of methods. This functions is the reverse of gst_rtsp_options_as_text(). + + a #GstRTSPMethod + + + + + a comma separated list of options + + + + + + Converts the range in-place between different types of units. +Ranges containing the special value #GST_RTSP_TIME_NOW can not be +converted as these are only valid for #GST_RTSP_RANGE_NPT. + + %TRUE if the range could be converted + + + + + a #GstRTSPTimeRange + + + + the unit to convert the range into + + + + + + Free the memory allocated by @range. + + + + + + a #GstRTSPTimeRange + + + + + + Retrieve the minimum and maximum values from @range converted to +#GstClockTime in @min and @max. + +A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW +and #GST_RTSP_TIME_END for @min and @max respectively. + +UTC times will be converted to nanoseconds since 1900. + + %TRUE on success. + + + + + a #GstRTSPTimeRange + + + + result minimum #GstClockTime + + + + result maximum #GstClockTime + + + + + + Parse @rangestr to a #GstRTSPTimeRange. + + #GST_RTSP_OK on success. + + + + + a range string to parse + + + + location to hold the #GstRTSPTimeRange result + + + + + + Convert @range into a string representation. + + The string representation of @range. g_free() after usage. + + + + + a #GstRTSPTimeRange + + + + + + Convert @code to a string. + + a string representation of @code. + + + + + a #GstRTSPStatusCode + + + + + + Convert @result in a human readable string. + + a newly allocated string. g_free() after usage. + + + + + a #GstRTSPResult + + + + + + Get the #GstElement that can handle the buffers transported over @trans. + +It is possible that there are several managers available, use @option to +selected one. + +@manager will contain an element name or #NULL when no manager is +needed/available for @trans. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransMode + + + + location to hold the result + + + + option index. + + + + + + Get the mime type of the transport mode @trans. This mime type is typically +used to generate #GstCaps events. + This functions only deals with the GstRTSPTransMode and only + returns the mime type for #GST_RTSP_PROFILE_AVP. Use + gst_rtsp_transport_get_media_type() instead. + + #GST_RTSP_OK. + + + + + a #GstRTSPTransMode + + + + location to hold the result + + + + + + Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free() +after usage. + + a #GstRTSPResult. + + + + + location to hold the new #GstRTSPTransport + + + + + + Parse the RTSP transport string @str into @transport. + + a #GstRTSPResult. + + + + + a transport string + + + + a #GstRTSPTransport + + + + + + Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage +with gst_rtsp_url_free(). + + a #GstRTSPResult. + + + + + the url string to parse + + + + location to hold the result. + + + + + + Convert @version to a string. + + a string representation of @version. + + + + + a #GstRTSPVersion + + + + + + Create a watch object for @conn. The functions provided in @funcs will be +called with @user_data when activity happened on the watch. + +The new watch is usually created so that it can be attached to a +maincontext with gst_rtsp_watch_attach(). + +@conn must exist for the entire lifetime of the watch. + + a #GstRTSPWatch that can be used for asynchronous RTSP +communication. Free with gst_rtsp_watch_unref () after usage. + + + + + a #GstRTSPConnection + + + + watch functions + + + + user data to pass to @funcs + + + + notify when @user_data is not referenced anymore + + + + + + diff --git a/GstRtspServer-1.0.gir b/GstRtspServer-1.0.gir new file mode 100644 index 0000000..a6addaa --- /dev/null +++ b/GstRtspServer-1.0.gir @@ -0,0 +1,9575 @@ + + + + + + + + + + + An address + + the #GstRTSPAddressPool owner of this address + + + + the address + + + + the port number + + + + number of ports + + + + TTL or 0 for unicast addresses + + + + + + + Make a copy of @addr. + + a copy of @addr. + + + + + a #GstRTSPAddress + + + + + + Free @addr and releasing it back into the pool when owned by a +pool. + + + + + + a #GstRTSPAddress + + + + + + + Flags used to control allocation of addresses + + no flags + + + an IPv4 address + + + and IPv6 address + + + address with an even port + + + a multicast address + + + a unicast address + + + + An address pool, all member are private + + Make a new #GstRTSPAddressPool. + + a new #GstRTSPAddressPool + + + + + Take an address and ports from @pool. @flags can be used to control the +allocation. @n_ports consecutive ports will be allocated of which the first +one can be found in @port. + + a #GstRTSPAddress that should be freed with +gst_rtsp_address_free after use or %NULL when no address could be +acquired. + + + + + a #GstRTSPAddressPool + + + + flags + + + + the amount of ports + + + + + + Adds the addresses from @min_addess to @max_address (inclusive) +to @pool. The valid port range for the addresses will be from @min_port to +@max_port inclusive. + +When @ttl is 0, @min_address and @max_address should be unicast addresses. +@min_address and @max_address can be set to +#GST_RTSP_ADDRESS_POOL_ANY_IPV4 or #GST_RTSP_ADDRESS_POOL_ANY_IPV6 to bind +to all available IPv4 or IPv6 addresses. + +When @ttl > 0, @min_address and @max_address should be multicast addresses. + + %TRUE if the addresses could be added. + + + + + a #GstRTSPAddressPool + + + + a minimum address to add + + + + a maximum address to add + + + + the minimum port + + + + the maximum port + + + + a TTL or 0 for unicast addresses + + + + + + Clear all addresses in @pool. There should be no outstanding +allocations. + + + + + + a #GstRTSPAddressPool + + + + + + Dump the free and allocated addresses to stdout. + + + + + + a #GstRTSPAddressPool + + + + + + Used to know if the pool includes any unicast addresses. + + %TRUE if the pool includes any unicast addresses, %FALSE otherwise + + + + + a #GstRTSPAddressPool + + + + + + Take a specific address and ports from @pool. @n_ports consecutive +ports will be allocated of which the first one can be found in +@port. + +If @ttl is 0, @address should be a unicast address. If @ttl > 0, @address +should be a valid multicast address. + + #GST_RTSP_ADDRESS_POOL_OK if an address was reserved. The address +is returned in @address and should be freed with gst_rtsp_address_free +after use. + + + + + a #GstRTSPAddressPool + + + + The IP address to reserve + + + + The first port to reserve + + + + The number of ports + + + + The requested ttl + + + + storage for a #GstRTSPAddress + + + + + + the parent GObject + + + + + + + + + + + + + Opaque Address pool class. + + + + + + + + + + + + + Result codes from RTSP address pool functions. + + no error + + + invalid arguments were provided to a function + + + the addres has already been reserved + + + the address is not in the pool + + + last error + + + + The authentication structure. + + Create a new #GstRTSPAuth instance. + + a new #GstRTSPAuth + + + + + Check if @check is allowed in the current context. + + FALSE if check failed. + + + + + the item to check + + + + + + Construct a Basic authorisation token from @user and @pass. + + the base64 encoding of the string @user:@pass. +g_free() after usage. + + + + + a userid + + + + a password + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add a basic token for the default authentication algorithm that +enables the client with privileges listed in @token. + + + + + + a #GstRTSPAuth + + + + the basic token + + + + authorisation token + + + + + + Add a digest @user and @pass for the default authentication algorithm that +enables the client with privileges listed in @token. + + + + + + a #GstRTSPAuth + + + + the digest user name + + + + the digest password + + + + authorisation token + + + + + + Get the default token for @auth. This token will be used for unauthenticated +users. + + the #GstRTSPToken of @auth. gst_rtsp_token_unref() after +usage. + + + + + a #GstRTSPAuth + + + + + + Gets the supported authentication methods of @auth. + + The supported authentication methods + + + + + a #GstRTSPAuth + + + + + + Get the #GTlsAuthenticationMode. + + the #GTlsAuthenticationMode. + + + + + a #GstRTSPAuth + + + + + + Get the #GTlsCertificate used for negotiating TLS @auth. + + the #GTlsCertificate of @auth. g_object_unref() after +usage. + + + + + a #GstRTSPAuth + + + + + + Get the #GTlsDatabase used for verifying client certificate. + + the #GTlsDatabase of @auth. g_object_unref() after +usage. + + + + + a #GstRTSPAuth + + + + + + Removes @basic authentication token. + + + + + + a #GstRTSPAuth + + + + the basic token + + + + + + Removes a digest user. + + + + + + a #GstRTSPAuth + + + + the digest user name + + + + + + Set the default #GstRTSPToken to @token in @auth. The default token will +be used for unauthenticated users. + + + + + + a #GstRTSPAuth + + + + a #GstRTSPToken + + + + + + Sets the supported authentication @methods for @auth. + + + + + + a #GstRTSPAuth + + + + supported methods + + + + + + The #GTlsAuthenticationMode to set on the underlying GTlsServerConnection. +When set to another value than %G_TLS_AUTHENTICATION_NONE, +#GstRTSPAuth::accept-certificate signal will be emitted and must be handled. + + + + + + a #GstRTSPAuth + + + + a #GTlsAuthenticationMode + + + + + + Set the TLS certificate for the auth. Client connections will only +be accepted when TLS is negotiated. + + + + + + a #GstRTSPAuth + + + + a #GTlsCertificate + + + + + + Sets the certificate database that is used to verify peer certificates. +If set to %NULL (the default), then peer certificate validation will always +set the %G_TLS_CERTIFICATE_UNKNOWN_CA error. + +Since 1.6 + + + + + + a #GstRTSPAuth + + + + a #GTlsDatabase + + + + + + + + + + + + + + + + + Emitted during the TLS handshake after the client certificate has +been received. See also gst_rtsp_auth_set_tls_authentication_mode(). + + %TRUE to accept @peer_cert (which will also +immediately end the signal emission). %FALSE to allow the signal +emission to continue, which will cause the handshake to fail if +no one else overrides it. + + + + + a #GTlsConnection + + + + the peer's #GTlsCertificate + + + + the problems with @peer_cert. + + + + + + + The authentication class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The client object represents the connection and its state with a client. + + Create a new #GstRTSPClient instance. + + a new #GstRTSPClient + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Attaches @client to @context. When the mainloop for @context is run, the +client will be dispatched. When @context is %NULL, the default context will be +used). + +This function should be called when the client properties and urls are fully +configured and the client is ready to start. + + the ID (greater than 0) for the source within the GMainContext. + + + + + a #GstRTSPClient + + + + a #GMainContext + + + + + + Close the connection of @client and remove all media it was managing. + + + + + + a #GstRTSPClient + + + + + + Get the #GstRTSPAuth used as the authentication manager of @client. + + the #GstRTSPAuth of @client. +g_object_unref() after usage. + + + + + a #GstRTSPClient + + + + + + Get the #GstRTSPConnection of @client. + + the #GstRTSPConnection of @client. +The connection object returned remains valid until the client is freed. + + + + + a #GstRTSPClient + + + + + + Get the #GstRTSPMountPoints object that @client uses to manage its sessions. + + a #GstRTSPMountPoints, unref after usage. + + + + + a #GstRTSPClient + + + + + + Get the #GstRTSPSessionPool object that @client uses to manage its sessions. + + a #GstRTSPSessionPool, unref after usage. + + + + + a #GstRTSPClient + + + + + + Get the #GstRTSPThreadPool used as the thread pool of @client. + + the #GstRTSPThreadPool of @client. g_object_unref() after +usage. + + + + + a #GstRTSPClient + + + + + + Let the client handle @message. + + a #GstRTSPResult. + + + + + a #GstRTSPClient + + + + an #GstRTSPMessage + + + + + + Send a message message to the remote end. @message must be a +#GST_RTSP_MESSAGE_REQUEST or a #GST_RTSP_MESSAGE_RESPONSE. + + + + + + a #GstRTSPClient + + + + a #GstRTSPSession to send + the message to or %NULL + + + + The #GstRTSPMessage to send + + + + + + Call @func for each session managed by @client. The result value of @func +determines what happens to the session. @func will be called with @client +locked so no further actions on @client can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the session will be removed from +@client. + +If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @client. + +If @func returns #GST_RTSP_FILTER_REF, the session will remain in @client but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each session. + + a #GList with all +sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the #GList should be unreffed before the list is freed. + + + + + + + a #GstRTSPClient + + + + a callback + + + + user data passed to @func + + + + + + configure @auth to be used as the authentication manager of @client. + + + + + + a #GstRTSPClient + + + + a #GstRTSPAuth + + + + + + Set the #GstRTSPConnection of @client. This function takes ownership of +@conn. + + %TRUE on success. + + + + + a #GstRTSPClient + + + + a #GstRTSPConnection + + + + + + Set @mounts as the mount points for @client which it will use to map urls +to media streams. These mount points are usually inherited from the server that +created the client but can be overriden later. + + + + + + a #GstRTSPClient + + + + a #GstRTSPMountPoints + + + + + + Set @func as the callback that will be called when a new message needs to be +sent to the client. @user_data is passed to @func and @notify is called when +@user_data is no longer in use. + +By default, the client will send the messages on the #GstRTSPConnection that +was configured with gst_rtsp_client_attach() was called. + + + + + + a #GstRTSPClient + + + + a #GstRTSPClientSendFunc + + + + user data passed to @func + + + + called when @user_data is no longer in use + + + + + + Set @pool as the sessionpool for @client which it will use to find +or allocate sessions. the sessionpool is usually inherited from the server +that created the client but can be overridden later. + + + + + + a #GstRTSPClient + + + + a #GstRTSPSessionPool + + + + + + configure @pool to be used as the thread pool of @client. + + + + + + a #GstRTSPClient + + + + a #GstRTSPThreadPool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #GstRTSPContext + + + + + + + a newly allocated string with comma-separated list of + unsupported options. An empty string must be returned if + all options are supported. + + + + + a #GstRTSPContext + + + + a NULL-terminated array of strings + + + + + + + + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success, + otherwise an appropriate return code + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + The session + + + + The message + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + + + + + a #GstRTSPContext + + + + + + + The client class structure. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This callback is called when @client wants to send @message. When @close is +%TRUE, the connection should be closed when the message has been sent. + + %TRUE on success. + + + + + a #GstRTSPClient + + + + a #GstRTSPMessage + + + + close the connection + + + + user data when registering the callback + + + + + + This function will be called by the gst_rtsp_client_session_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @sess will be removed +from @client. + +A return value of #GST_RTSP_FILTER_KEEP will leave @sess untouched in +@client. + +A value of #GST_RTSP_FILTER_REF will add @sess to the result #GList of +gst_rtsp_client_session_filter(). + + a #GstRTSPFilterResult. + + + + + a #GstRTSPClient object + + + + a #GstRTSPSession in @client + + + + user data that has been given to gst_rtsp_client_session_filter() + + + + + + Information passed around containing the context of a request. + + the server + + + + the connection + + + + the client + + + + the complete request + + + + the complete url parsed from @request + + + + the parsed method of @uri + + + + the current auth object or %NULL + + + + authorisation token + + + + the session, can be %NULL + + + + the session media for the url can be %NULL + + + + the media factory for the url, can be %NULL + + + + the media for the url can be %NULL + + + + the stream for the url can be %NULL + + + + the response + + + + the stream transport, can be %NULL + + + + + + + + + Pops @ctx off the context stack (verifying that @ctx +is on the top of the stack). + + + + + + a #GstRTSPContext + + + + + + Pushes @ctx onto the context stack. The current +context can then be received using gst_rtsp_context_get_current(). + + + + + + a ##GstRTSPContext + + + + + + Get the current #GstRTSPContext. This object is retrieved from the +current thread that is handling the request for a client. + + a #GstRTSPContext + + + + + + Possible return values for gst_rtsp_session_pool_filter(). + + Remove session + + + Keep session in the pool + + + Ref session in the result list + + + + Function registered with gst_rtsp_stream_transport_set_keepalive() and called +when the stream is active. + + + + + + user data + + + + + + A class that contains the GStreamer element along with a list of +#GstRTSPStream objects that can produce data. + +This object is usually created from a #GstRTSPMediaFactory. + + Create a new #GstRTSPMedia instance. @element is the bin element that +provides the different streams. The #GstRTSPMedia object contains the +element to produce RTP data for one or more related (audio/video/..) +streams. + +Ownership is taken of @element. + + a new #GstRTSPMedia object. + + + + + a #GstElement + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Configure an SDP on @media for receiving streams + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Prepare @media for streaming. This function will create the objects +to manage the streaming. A pipeline must have been set on @media with +gst_rtsp_media_take_pipeline(). + +It will preroll the pipeline and collect vital information about the streams +such as the duration. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstRTSPThread to run the + bus handler or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add @media specific info to @sdp. @info is used to configure the connection +information in the SDP. + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + a #GstSDPInfo + + + + + + Suspend @media. The state of the pipeline managed by @media is set to +GST_STATE_NULL but all streams are kept. @media can be prepared again +with gst_rtsp_media_unsuspend() + +@media must be prepared with gst_rtsp_media_prepare(); + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + + + + + + + + + + + + + + Unprepare @media. After this call, the media should be prepared again before +it can be used again. If the media is set to be non-reusable, a new instance +must be created. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + + + + + + + + + + + Unsuspend @media if it was in a suspended state. This method does nothing +when the media was not in the suspended state. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + Find all payloader elements, they should be named pay\%d in the +element of @media, and create #GstRTSPStreams for them. + +Collect all dynamic elements, named dynpay\%d, and add them to +the list of dynamic elements. + +Find all depayloader elements, they should be named depay\%d in the +element of @media, and create #GstRTSPStreams for them. + + + + + + a #GstRTSPMedia + + + + + + Create a new stream in @media that provides RTP data on @pad. +@pad should be a pad of an element inside @media->element. + + a new #GstRTSPStream that remains valid for as long +as @media exists. + + + + + a #GstRTSPMedia + + + + a #GstElement + + + + a #GstPad + + + + + + Find a stream in @media with @control as the control uri. + + the #GstRTSPStream with +control uri @control or %NULL when a stream with that control did +not exist. + + + + + a #GstRTSPMedia + + + + the control of the stream + + + + + + Get the #GstRTSPAddressPool used as the address pool of @media. + + the #GstRTSPAddressPool of @media. +g_object_unref() after usage. + + + + + a #GstRTSPMedia + + + + + + Get the base_time that is used by the pipeline in @media. + +@media must be prepared before this method returns a valid base_time. + + the base_time used by @media. + + + + + a #GstRTSPMedia + + + + + + Get the kernel UDP buffer size. + + the kernel UDP buffer size. + + + + + a #GstRTSPMedia + + + + + + Get the clock that is used by the pipeline in @media. + +@media must be prepared before this method returns a valid clock object. + + the #GstClock used by @media. unref after usage. + + + + + a #GstRTSPMedia + + + + + + Get the element that was used when constructing @media. + + a #GstElement. Unref after usage. + + + + + a #GstRTSPMedia + + + + + + Get the latency that is used for receiving media. + + latency in milliseconds + + + + + a #GstRTSPMedia + + + + + + Get the multicast interface used for @media. + + the multicast interface for @media. +g_free() after usage. + + + + + a #GstRTSPMedia + + + + + + Get the permissions object from @media. + + a #GstRTSPPermissions object, unref after usage. + + + + + a #GstRTSPMedia + + + + + + Get the allowed profiles of @media. + + a #GstRTSPProfile + + + + + a #GstRTSPMedia + + + + + + Get the allowed protocols of @media. + + a #GstRTSPLowerTrans + + + + + a #GstRTSPMedia + + + + + + Gets if and how the media clock should be published according to RFC7273. + + The GstRTSPPublishClockMode + + + + + a #GstRTSPMedia + + + + + + Get the current range as a string. @media must be prepared with +gst_rtsp_media_prepare (). + + The range as a string, g_free() after usage. + + + + + a #GstRTSPMedia + + + + for the PLAY request + + + + the unit to use for the string + + + + + + Get the amount of time to store retransmission data. + + the amount of time to store retransmission data. + + + + + a #GstRTSPMedia + + + + + + Get the status of @media. When @media is busy preparing, this function waits +until @media is prepared or in error. + + the status of @media. + + + + + a #GstRTSPMedia + + + + + + Retrieve the stream with index @idx from @media. + + the #GstRTSPStream at index +@idx or %NULL when a stream with that index did not exist. + + + + + a #GstRTSPMedia + + + + the stream index + + + + + + Get how @media will be suspended. + + #GstRTSPSuspendMode. + + + + + a #GstRTSPMedia + + + + + + Get the #GstNetTimeProvider for the clock used by @media. The time provider +will listen on @address and @port for client time requests. + + the #GstNetTimeProvider of @media. + + + + + a #GstRTSPMedia + + + + an address or %NULL + + + + a port or 0 + + + + + + Check if the pipeline for @media can be used for PLAY or RECORD methods. + + The transport mode. + + + + + a #GstRTSPMedia + + + + + + Configure an SDP on @media for receiving streams + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + + + Check if the pipeline for @media will send an EOS down the pipeline before +unpreparing. + + %TRUE if the media will send EOS before unpreparing. + + + + + a #GstRTSPMedia + + + + + + Check if the pipeline for @media can be reused after an unprepare. + + %TRUE if the media can be reused + + + + + a #GstRTSPMedia + + + + + + Check if the pipeline for @media can be shared between multiple clients. + + %TRUE if the media can be shared between clients. + + + + + a #GstRTSPMedia + + + + + + Check if the pipeline for @media will be stopped when a client disconnects +without sending TEARDOWN. + + %TRUE if the media will be stopped when a client disconnects + without sending TEARDOWN. + + + + + a #GstRTSPMedia + + + + + + Check if @media can provide a #GstNetTimeProvider for its pipeline clock. + +Use gst_rtsp_media_get_time_provider() to get the network clock. + + %TRUE if @media can provide a #GstNetTimeProvider. + + + + + a #GstRTSPMedia + + + + + + Get the number of streams in this media. + + The number of streams. + + + + + a #GstRTSPMedia + + + + + + Prepare @media for streaming. This function will create the objects +to manage the streaming. A pipeline must have been set on @media with +gst_rtsp_media_take_pipeline(). + +It will preroll the pipeline and collect vital information about the streams +such as the duration. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstRTSPThread to run the + bus handler or %NULL + + + + + + Seek the pipeline of @media to @range. @media must be prepared with +gst_rtsp_media_prepare(). + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstRTSPTimeRange + + + + + + configure @pool to be used as the address pool of @media. + + + + + + a #GstRTSPMedia + + + + a #GstRTSPAddressPool + + + + + + Set the kernel UDP buffer size. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Configure the clock used for the media. + + + + + + a #GstRTSPMedia + + + + #GstClock to be used + + + + + + Set or unset if an EOS event will be sent to the pipeline for @media before +it is unprepared. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Configure the latency used for receiving media. + + + + + + a #GstRTSPMedia + + + + latency in milliseconds + + + + + + configure @multicast_iface to be used for @media. + + + + + + a #GstRTSPMedia + + + + a multicast interface name + + + + + + Set @permissions on @media. + + + + + + a #GstRTSPMedia + + + + a #GstRTSPPermissions + + + + + + Set the state of the pipeline managed by @media to @state + + + + + + a #GstRTSPMedia + + + + the target state of the pipeline + + + + + + Configure the allowed lower transport for @media. + + + + + + a #GstRTSPMedia + + + + the new flags + + + + + + Configure the allowed lower transport for @media. + + + + + + a #GstRTSPMedia + + + + the new flags + + + + + + Sets if and how the media clock should be published according to RFC7273. + + + + + + a #GstRTSPMedia + + + + the clock publish mode + + + + + + Set the amount of time to store retransmission packets. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Set or unset if the pipeline for @media can be reused after the pipeline has +been unprepared. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Set or unset if the pipeline for @media can be shared will multiple clients. +When @shared is %TRUE, client requests for this media will share the media +pipeline. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Set the state of @media to @state and for the transports in @transports. + +@media must be prepared with gst_rtsp_media_prepare(); + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + the target state of the media + + + + +a #GPtrArray of #GstRTSPStreamTransport pointers + + + + + + + + Set or unset if the pipeline for @media should be stopped when a +client disconnects without sending TEARDOWN. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Control how @ media will be suspended after the SDP has been generated and +after a PAUSE request has been performed. + +Media must be unprepared when setting the suspend mode. + + + + + + a #GstRTSPMedia + + + + the new #GstRTSPSuspendMode + + + + + + Sets if the media pipeline can work in PLAY or RECORD mode + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Add @media specific info to @sdp. @info is used to configure the connection +information in the SDP. + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + a #GstSDPInfo + + + + + + Suspend @media. The state of the pipeline managed by @media is set to +GST_STATE_NULL but all streams are kept. @media can be prepared again +with gst_rtsp_media_unsuspend() + +@media must be prepared with gst_rtsp_media_prepare(); + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + Set @pipeline as the #GstPipeline for @media. Ownership is +taken of @pipeline. + + + + + + a #GstRTSPMedia + + + + a #GstPipeline + + + + + + Unprepare @media. After this call, the media should be prepared again before +it can be used again. If the media is set to be non-reusable, a new instance +must be created. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + Unsuspend @media if it was in a suspended state. This method does nothing +when the media was not in the suspended state. + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + Set @media to provide a #GstNetTimeProvider. + + + + + + a #GstRTSPMedia + + + + if a #GstNetTimeProvider should be used + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The RTSP media class + + + + + + + + + + + + + + + + + + + + + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstRTSPThread to run the + bus handler or %NULL + + + + + + + + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + + + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + + + + %TRUE on success. + + + + + a #GstRTSPMedia + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + a #GstSDPInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TRUE on success. + + + + + a #GstRTSPMedia + + + + a #GstSDPMessage + + + + + + + + + + + + + The definition and logic for constructing the pipeline for a media. The media +can contain multiple streams like audio and video. + + Create a new #GstRTSPMediaFactory instance. + + a new #GstRTSPMediaFactory object. + + + + + + + + + + + + + + + + + + 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 (). + + a new #GstRTSPMedia if the media could be prepared. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + 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. + + a new #GstElement. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + a #GstRTSPMediaFactory + + + + a role + + + + the first field name + + + + additional arguments + + + + + + 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 (). + + a new #GstRTSPMedia if the media could be prepared. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + 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. + + a new #GstElement. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + Get the #GstRTSPAddressPool used as the address pool of @factory. + + the #GstRTSPAddressPool of @factory. g_object_unref() after +usage. + + + + + a #GstRTSPMediaFactory + + + + + + Get the kernel UDP buffer size. + + the kernel UDP buffer size. + + + + + a #GstRTSPMedia + + + + + + Returns the clock that is going to be used by the pipelines +of all medias created from this factory. + + The GstClock + + + + + a #GstRTSPMediaFactory + + + + + + Get the latency that is used for receiving media + + latency in milliseconds + + + + + a #GstRTSPMediaFactory + + + + + + Get the gst_parse_launch() pipeline description that will be used in the +default prepare vmethod. + + the configured launch description. g_free() after +usage. + + + + + a #GstRTSPMediaFactory + + + + + + Return the GType of the GstRTSPMedia subclass this +factory will create. + + + + + + a #GstRTSPMediaFactory + + + + + + Get the multicast interface used for @factory. + + the multicast interface for @factory. g_free() after +usage. + + + + + a #GstRTSPMediaFactory + + + + + + Get the permissions object from @factory. + + a #GstRTSPPermissions object, unref after usage. + + + + + a #GstRTSPMediaFactory + + + + + + Get the allowed profiles of @factory. + + a #GstRTSPProfile + + + + + a #GstRTSPMediaFactory + + + + + + Get the allowed protocols of @factory. + + a #GstRTSPLowerTrans + + + + + a #GstRTSPMediaFactory + + + + + + Gets if and how the media clock should be published according to RFC7273. + + The GstRTSPPublishClockMode + + + + + a #GstRTSPMediaFactory + + + + + + Get the time that is stored for retransmission purposes + + a #GstClockTime + + + + + a #GstRTSPMediaFactory + + + + + + Get how media created from this factory will be suspended. + + a #GstRTSPSuspendMode. + + + + + a #GstRTSPMediaFactory + + + + + + Get if media created from this factory can be used for PLAY or RECORD +methods. + + The supported transport modes. + + + + + a #GstRTSPMediaFactory + + + + + + Get if media created from this factory will have an EOS event sent to the +pipeline before shutdown. + + %TRUE if the media will receive EOS before shutdown. + + + + + a #GstRTSPMediaFactory + + + + + + Get if media created from this factory can be shared between clients. + + %TRUE if the media will be shared between clients. + + + + + a #GstRTSPMediaFactory + + + + + + + + + + + + + + + + configure @pool to be used as the address pool of @factory. + + + + + + a #GstRTSPMediaFactory + + + + a #GstRTSPAddressPool + + + + + + Set the kernel UDP buffer size. + + + + + + a #GstRTSPMedia + + + + the new value + + + + + + Configures a specific clock to be used by the pipelines +of all medias created from this factory. + + + + + + a #GstRTSPMediaFactory + + + + the clock to be used by the media factory + + + + + + Configure if media created from this factory will have an EOS sent to the +pipeline before shutdown. + + + + + + a #GstRTSPMediaFactory + + + + the new value + + + + + + Configure the latency used for receiving media + + + + + + a #GstRTSPMediaFactory + + + + latency in milliseconds + + + + + + 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 description with brackets '(' +')'. + +The description should return a pipeline with payloaders named pay0, pay1, +etc.. Each of the payloaders will result in a stream. + + + + + + a #GstRTSPMediaFactory + + + + the launch description + + + + + + Configure the GType of the GstRTSPMedia subclass to +create (by default, overridden construct vmethods +may of course do something different) + + + + + + a #GstRTSPMediaFactory + + + + the GType of the class to create + + + + + + configure @multicast_iface to be used for @factory. + + + + + + a #GstRTSPMediaFactory + + + + a multicast interface name + + + + + + Set @permissions on @factory. + + + + + + a #GstRTSPMediaFactory + + + + a #GstRTSPPermissions + + + + + + Configure the allowed profiles for @factory. + + + + + + a #GstRTSPMediaFactory + + + + the new flags + + + + + + Configure the allowed lower transport for @factory. + + + + + + a #GstRTSPMediaFactory + + + + the new flags + + + + + + Sets if and how the media clock should be published according to RFC7273. + + + + + + a #GstRTSPMediaFactory + + + + the clock publish mode + + + + + + Configure the time to store for possible retransmission + + + + + + a #GstRTSPMediaFactory + + + + a #GstClockTime + + + + + + Configure if media created from this factory can be shared between clients. + + + + + + a #GstRTSPMediaFactory + + + + the new value + + + + + + Configure if media created from this factory should be stopped +when a client disconnects without sending TEARDOWN. + + + + + + a #GstRTSPMediaFactory + + + + the new value + + + + + + Configure how media created from this factory will be suspended. + + + + + + a #GstRTSPMediaFactory + + + + the new #GstRTSPSuspendMode + + + + + + Configure if this factory creates media for PLAY or RECORD modes. + + + + + + a #GstRTSPMediaFactory + + + + the new value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #GstRTSPMediaFactory class structure. + + + + + + + + + + + + + + + + + + + + + + a new #GstElement. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + + + + a new #GstRTSPMedia if the media could be prepared. + + + + + a #GstRTSPMediaFactory + + + + the url used + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A media factory that creates a pipeline to play and uri. + + Create a new #GstRTSPMediaFactoryURI instance. + + a new #GstRTSPMediaFactoryURI object. + + + + + Get the URI that will provide media for this factory. + + the configured URI. g_free() after usage. + + + + + a #GstRTSPMediaFactory + + + + + + Set the URI of the resource that will be streamed by this factory. + + + + + + a #GstRTSPMediaFactory + + + + the uri the stream + + + + + + + + + + + + + + + + + + + + + + + + The #GstRTSPMediaFactoryURI class structure. + + + + + + + + + + + + + + + The state of the media pipeline. + + media pipeline not prerolled + + + media pipeline is busy doing a clean + shutdown. + + + media pipeline is prerolling + + + media pipeline is prerolled + + + media is suspended + + + media pipeline is in error + + + + Creates a #GstRTSPMediaFactory object for a given url. + + Make a new mount points object. + + a new #GstRTSPMountPoints + + + + + Make a path string from @url. + + a path string for @url, g_free() after usage. + + + + + a #GstRTSPMountPoints + + + + a #GstRTSPUrl + + + + + + Attach @factory to the mount point @path in @mounts. + +@path is of the form (/node)+. Any previous mount point will be freed. + +Ownership is taken of the reference on @factory so that @factory should not be +used after calling this function. + + + + + + a #GstRTSPMountPoints + + + + a mount point + + + + a #GstRTSPMediaFactory + + + + + + Make a path string from @url. + + a path string for @url, g_free() after usage. + + + + + a #GstRTSPMountPoints + + + + a #GstRTSPUrl + + + + + + Find the factory in @mounts that has the longest match with @path. + +If @matched is %NULL, @path will match the factory exactly otherwise +the amount of characters that matched is returned in @matched. + + the #GstRTSPMediaFactory for @path. +g_object_unref() after usage. + + + + + a #GstRTSPMountPoints + + + + a mount point + + + + the amount of @path matched + + + + + + Remove the #GstRTSPMediaFactory associated with @path in @mounts. + + + + + + a #GstRTSPMountPoints + + + + a mount point + + + + + + + + + + + + + + + + + + The class for the media mounts object. + + + + + + + a path string for @url, g_free() after usage. + + + + + a #GstRTSPMountPoints + + + + a #GstRTSPUrl + + + + + + + + + + + + + + + The opaque permissions structure. It is used to define the permissions +of objects in different roles. + + + + + Create a new empty Authorization permissions. + + a new empty authorization permissions. + + + + + Add a new @role to @permissions with the given variables. The fields +are the same layout as gst_structure_new(). + + + + + + a #GstRTSPPermissions + + + + a role + + + + the first field name + + + + additional arguments + + + + + + Add a new @role to @permissions with the given variables. Structure fields +are set according to the varargs in a manner similar to gst_structure_new(). + + + + + + a #GstRTSPPermissions + + + + a role + + + + the first field name + + + + additional fields to add + + + + + + Get all permissions for @role in @permissions. + + the structure with permissions for @role. It +remains valid for as long as @permissions is valid. + + + + + a #GstRTSPPermissions + + + + a role + + + + + + Check if @role in @permissions is given permission for @permission. + + %TRUE if @role is allowed @permission. + + + + + a #GstRTSPPermissions + + + + a role + + + + a permission + + + + + + Remove all permissions for @role in @permissions. + + + + + + a #GstRTSPPermissions + + + + a role + + + + + + + Whether the clock and possibly RTP/clock offset should be published according to RFC7273. + + Publish nothing + + + Publish the clock but not the offset + + + Publish the clock and offset + + + + Function registered with gst_rtsp_stream_transport_set_callbacks() and +called when @buffer must be sent on @channel. + + %TRUE on success + + + + + a #GstBuffer + + + + a channel + + + + user data + + + + + + This object listens on a port, creates and manages the clients connected to +it. + + Create a new #GstRTSPServer instance. + + a new #GstRTSPServer + + + + + A default #GSocketSourceFunc that creates a new #GstRTSPClient to accept and handle a +new connection on @socket or @server. + + TRUE if the source could be connected, FALSE if an error occurred. + + + + + a #GSocket + + + + the condition on @source + + + + a #GstRTSPServer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Attaches @server to @context. When the mainloop for @context is run, the +server will be dispatched. When @context is %NULL, the default context will be +used). + +This function should be called when the server properties and urls are fully +configured and the server is ready to start. + +This takes a reference on @server until the source is destroyed. Note that +if @context is not the default main context as returned by +g_main_context_default() (or %NULL), g_source_remove() cannot be used to +destroy the source. In that case it is recommended to use +gst_rtsp_server_create_source() and attach it to @context manually. + + the ID (greater than 0) for the source within the GMainContext. + + + + + a #GstRTSPServer + + + + a #GMainContext + + + + + + Call @func for each client managed by @server. The result value of @func +determines what happens to the client. @func will be called with @server +locked so no further actions on @server can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the client will be removed from +@server. + +If @func returns #GST_RTSP_FILTER_KEEP, the client will remain in @server. + +If @func returns #GST_RTSP_FILTER_REF, the client will remain in @server but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each client. + + a #GList with all +clients for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the #GList should be unreffed before the list is freed. + + + + + + + a #GstRTSPServer + + + + a callback + + + + user data passed to @func + + + + + + Create a #GSocket for @server. The socket will listen on the +configured service. + + the #GSocket for @server or %NULL when an error +occurred. + + + + + a #GstRTSPServer + + + + a #GCancellable + + + + + + Create a #GSource for @server. The new source will have a default +#GSocketSourceFunc of gst_rtsp_server_io_func(). + +@cancellable if not %NULL can be used to cancel the source, which will cause +the source to trigger, reporting the current condition (which is likely 0 +unless cancellation happened at the same time as a condition change). You can +check for this in the callback using g_cancellable_is_cancelled(). + +This takes a reference on @server until @source is destroyed. + + the #GSource for @server or %NULL when an error +occurred. Free with g_source_unref () + + + + + a #GstRTSPServer + + + + a #GCancellable or %NULL. + + + + + + Get the address on which the server will accept connections. + + the server address. g_free() after usage. + + + + + a #GstRTSPServer + + + + + + Get the #GstRTSPAuth used as the authentication manager of @server. + + the #GstRTSPAuth of @server. g_object_unref() after +usage. + + + + + a #GstRTSPServer + + + + + + The maximum amount of queued requests for the server. + + the server backlog. + + + + + a #GstRTSPServer + + + + + + Get the port number where the server was bound to. + + the port number + + + + + a #GstRTSPServer + + + + + + Get the #GstRTSPMountPoints used as the mount points of @server. + + the #GstRTSPMountPoints of @server. g_object_unref() after +usage. + + + + + a #GstRTSPServer + + + + + + Get the service on which the server will accept connections. + + the service. use g_free() after usage. + + + + + a #GstRTSPServer + + + + + + Get the #GstRTSPSessionPool used as the session pool of @server. + + the #GstRTSPSessionPool used for sessions. g_object_unref() after +usage. + + + + + a #GstRTSPServer + + + + + + Get the #GstRTSPThreadPool used as the thread pool of @server. + + the #GstRTSPThreadPool of @server. g_object_unref() after +usage. + + + + + a #GstRTSPServer + + + + + + Configure @server to accept connections on the given address. + +This function must be called before the server is bound. + + + + + + a #GstRTSPServer + + + + the address + + + + + + configure @auth to be used as the authentication manager of @server. + + + + + + a #GstRTSPServer + + + + a #GstRTSPAuth + + + + + + configure the maximum amount of requests that may be queued for the +server. + +This function must be called before the server is bound. + + + + + + a #GstRTSPServer + + + + the backlog + + + + + + configure @mounts to be used as the mount points of @server. + + + + + + a #GstRTSPServer + + + + a #GstRTSPMountPoints + + + + + + Configure @server to accept connections on the given service. +@service should be a string containing the service name (see services(5)) or +a string containing a port number between 1 and 65535. + +When @service is set to "0", the server will listen on a random free +port. The actual used port can be retrieved with +gst_rtsp_server_get_bound_port(). + +This function must be called before the server is bound. + + + + + + a #GstRTSPServer + + + + the service + + + + + + configure @pool to be used as the session pool of @server. + + + + + + a #GstRTSPServer + + + + a #GstRTSPSessionPool + + + + + + configure @pool to be used as the thread pool of @server. + + + + + + a #GstRTSPServer + + + + a #GstRTSPThreadPool + + + + + + Take an existing network socket and use it for an RTSP connection. This +is used when transferring a socket from an HTTP server which should be used +as an RTSP over HTTP tunnel. The @initial_buffer contains any remaining data +that the HTTP server read from the socket while parsing the HTTP header. + + TRUE if all was ok, FALSE if an error occurred. + + + + + a #GstRTSPServer + + + + a network socket + + + + the IP address of the remote client + + + + the port used by the other end + + + + any initial data that was already read from the socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The RTSP server class structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This function will be called by the gst_rtsp_server_client_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @client will be removed +from @server. + +A return value of #GST_RTSP_FILTER_KEEP will leave @client untouched in +@server. + +A value of #GST_RTSP_FILTER_REF will add @client to the result #GList of +gst_rtsp_server_client_filter(). + + a #GstRTSPFilterResult. + + + + + a #GstRTSPServer object + + + + a #GstRTSPClient in @server + + + + user data that has been given to gst_rtsp_server_client_filter() + + + + + + + + Session information kept by the server for a specific client. +One client session, identified with a session id, can handle multiple medias +identified with the url of a media. + + Create a new #GstRTSPSession instance with @sessionid. + + a new #GstRTSPSession + + + + + a session id + + + + + + Allow @session to expire. This method must be called an equal +amount of time as gst_rtsp_session_prevent_expire(). + + + + + + a #GstRTSPSession + + + + + + Call @func for each media in @sess. The result value of @func determines +what happens to the media. @func will be called with @sess +locked so no further actions on @sess can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the media will be removed from +@sess. + +If @func returns #GST_RTSP_FILTER_KEEP, the media will remain in @sess. + +If @func returns #GST_RTSP_FILTER_REF, the media will remain in @sess but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all media. + + a GList with all +media for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the #GList should be unreffed before the list is freed. + + + + + + + a #GstRTSPSession + + + + a callback + + + + user data passed to @func + + + + + + Get the string that can be placed in the Session header field. + + the Session header of @session. +g_free() after usage. + + + + + a #GstRTSPSession + + + + + + Get the session media for @path. @matched will contain the number of matched +characters of @path. + + the configuration for @path in @sess. + + + + + a #GstRTSPSession + + + + the path for the media + + + + the amount of matched characters + + + + + + Get the sessionid of @session. + + the sessionid of @session. +The value remains valid as long as @session is alive. + + + + + a #GstRTSPSession + + + + + + Get the timeout value of @session. + + the timeout of @session in seconds. + + + + + a #GstRTSPSession + + + + + + Check if @session timeout out. + Use gst_rtsp_session_is_expired_usec() instead. + + %TRUE if @session timed out + + + + + a #GstRTSPSession + + + + the current system time + + + + + + Check if @session timeout out. + + %TRUE if @session timed out + + + + + a #GstRTSPSession + + + + the current monotonic time + + + + + + Manage the media object @obj in @sess. @path will be used to retrieve this +media from the session with gst_rtsp_session_get_media(). + +Ownership is taken from @media. + + a new @GstRTSPSessionMedia object. + + + + + a #GstRTSPSession + + + + the path for the media + + + + a #GstRTSPMedia + + + + + + Get the amount of milliseconds till the session will expire. + Use gst_rtsp_session_next_timeout_usec() instead. + + the amount of milliseconds since the session will time out. + + + + + a #GstRTSPSession + + + + the current system time + + + + + + Get the amount of milliseconds till the session will expire. + + the amount of milliseconds since the session will time out. + + + + + a #GstRTSPSession + + + + the current monotonic time + + + + + + Prevent @session from expiring. + + + + + + a #GstRTSPSession + + + + + + Release the managed @media in @sess, freeing the memory allocated by it. + + %TRUE if there are more media session left in @sess. + + + + + a #GstRTSPSession + + + + a #GstRTSPMedia + + + + + + Configure @session for a timeout of @timeout seconds. The session will be +cleaned up when there is no activity for @timeout seconds. + + + + + + a #GstRTSPSession + + + + the new timeout + + + + + + Update the last_access time of the session to the current time. + + + + + + a #GstRTSPSession + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This function will be called by the gst_rtsp_session_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @media will be removed +from @sess. + +A return value of #GST_RTSP_FILTER_KEEP will leave @media untouched in +@sess. + +A value of GST_RTSP_FILTER_REF will add @media to the result #GList of +gst_rtsp_session_filter(). + + a #GstRTSPFilterResult. + + + + + a #GstRTSPSession object + + + + a #GstRTSPSessionMedia in @sess + + + + user data that has been given to gst_rtsp_session_filter() + + + + + + State of a client session regarding a specific media identified by path. + + Create a new #GstRTSPSessionMedia that manages the streams +in @media for @path. @media should be prepared. + +Ownership is taken of @media. + + a new #GstRTSPSessionMedia. + + + + + the path + + + + the #GstRTSPMedia + + + + + + Fill @range with the next available min and max channels for +interleaved transport. + + %TRUE on success. + + + + + a #GstRTSPSessionMedia + + + + a #GstRTSPRange + + + + + + Get the base_time of the #GstRTSPMedia in @media + + the base_time of the media. + + + + + a #GstRTSPSessionMedia + + + + + + Get the #GstRTSPMedia that was used when constructing @media + + the #GstRTSPMedia of @media. +Remains valid as long as @media is valid. + + + + + a #GstRTSPSessionMedia + + + + + + Retrieve the RTP-Info header string for all streams in @media +with configured transports. + + The RTP-Info as a string or +%NULL when no RTP-Info could be generated, g_free() after usage. + + + + + a #GstRTSPSessionMedia + + + + + + Get the current RTSP state of @media. + + the current RTSP state of @media. + + + + + a #GstRTSPSessionMedia + + + + + + Get a previously created #GstRTSPStreamTransport for the stream at @idx. + + a #GstRTSPStreamTransport that is +valid until the session of @media is unreffed. + + + + + a #GstRTSPSessionMedia + + + + the stream index + + + + + + Check if the path of @media matches @path. It @path matches, the amount of +matched characters is returned in @matched. + + %TRUE when @path matches the path of @media. + + + + + a #GstRTSPSessionMedia + + + + a path + + + + the amount of matched characters of @path + + + + + + Set the RTSP state of @media to @state. + + + + + + a #GstRTSPSessionMedia + + + + a #GstRTSPState + + + + + + Tell the media object @media to change to @state. + + %TRUE on success. + + + + + a #GstRTSPSessionMedia + + + + the new state + + + + + + Configure the transport for @stream to @tr in @media. + + the new or updated #GstRTSPStreamTransport for @stream. + + + + + a #GstRTSPSessionMedia + + + + a #GstRTSPStream + + + + a #GstRTSPTransport + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An object that keeps track of the active sessions. This object is usually +attached to a #GstRTSPServer object to manage the sessions in that server. + + Create a new #GstRTSPSessionPool instance. + + A new #GstRTSPSessionPool. g_object_unref() after +usage. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Inspect all the sessions in @pool and remove the sessions that are inactive +for more than their timeout. + + the amount of sessions that got removed. + + + + + a #GstRTSPSessionPool + + + + + + Create a new #GstRTSPSession object in @pool. + + a new #GstRTSPSession. + + + + + a #GstRTSPSessionPool + + + + + + Create a #GSource that will be dispatched when the session should be cleaned +up. + + a #GSource + + + + + a #GstRTSPSessionPool + + + + + + Call @func for each session in @pool. The result value of @func determines +what happens to the session. @func will be called with the session pool +locked so no further actions on @pool can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the session will be set to the +expired state with gst_rtsp_session_set_expired() and removed from +@pool. + +If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @pool. + +If @func returns #GST_RTSP_FILTER_REF, the session will remain in @pool but +will also be added with an additional ref to the result GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all sessions. + + a GList with all +sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the GList should be unreffed before the list is freed. + + + + + + + a #GstRTSPSessionPool + + + + a callback + + + + user data passed to @func + + + + + + Find the session with @sessionid in @pool. The access time of the session +will be updated with gst_rtsp_session_touch(). + + the #GstRTSPSession with @sessionid +or %NULL when the session did not exist. g_object_unref() after usage. + + + + + the pool to search + + + + the session id + + + + + + Get the maximum allowed number of sessions in @pool. 0 means an unlimited +amount of sessions. + + the maximum allowed number of sessions. + + + + + a #GstRTSPSessionPool + + + + + + Get the amount of active sessions in @pool. + + the amount of active sessions in @pool. + + + + + a #GstRTSPSessionPool + + + + + + Remove @sess from @pool, releasing the ref that the pool has on @sess. + + %TRUE if the session was found and removed. + + + + + a #GstRTSPSessionPool + + + + a #GstRTSPSession + + + + + + Configure the maximum allowed number of sessions in @pool to @max. +A value of 0 means an unlimited amount of sessions. + + + + + + a #GstRTSPSessionPool + + + + the maximum number of sessions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This function will be called by the gst_rtsp_session_pool_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @session will be removed +from @pool. + +A return value of #GST_RTSP_FILTER_KEEP will leave @session untouched in +@pool. + +A value of GST_RTSP_FILTER_REF will add @session to the result #GList of +gst_rtsp_session_pool_filter(). + + a #GstRTSPFilterResult. + + + + + a #GstRTSPSessionPool object + + + + a #GstRTSPSession in @pool + + + + user data that has been given to gst_rtsp_session_pool_filter() + + + + + + The function that will be called from the GSource watch on the session pool. + +The function will be called when the pool must be cleaned up because one or +more sessions timed out. + + %FALSE if the source should be removed. + + + + + a #GstRTSPSessionPool object + + + + user data that has been given when registering the handler + + + + + + + + + + The definition of a media stream. + + Create a new media stream with index @idx that handles RTP data on +@pad and has a payloader element @payloader if @pad is a source pad +or a depayloader element @payloader if @pad is a sink pad. + + a new #GstRTSPStream + + + + + an index + + + + a #GstElement + + + + a #GstPad + + + + + + Add the transport in @trans to @stream. The media of @stream will +then also be send to the values configured in @trans. + +@stream must be joined to a bin. + +@trans must contain a valid #GstRTSPTransport. + + %TRUE if @trans was added + + + + + a #GstRTSPStream + + + + a #GstRTSPStreamTransport + + + + + + Allocates RTP and RTCP ports. + This function shouldn't have been made public + + %TRUE if the RTP and RTCP sockets have been succeccully allocated. + + + + + a #GstRTSPStream + + + + protocol family + + + + transport method + + + + Whether to use client settings or not + + + + + + Get the #GstRTSPAddressPool used as the address pool of @stream. + + the #GstRTSPAddressPool of @stream. +g_object_unref() after usage. + + + + + a #GstRTSPStream + + + + + + Get the size of the UDP transmission buffer (in bytes) + + the size of the UDP TX buffer + + + + + a #GstRTSPStream + + + + + + Retrieve the current caps of @stream. + + the #GstCaps of @stream. +use gst_caps_unref() after usage. + + + + + a #GstRTSPStream + + + + + + Get the control string to identify this stream. + + the control string. g_free() after usage. + + + + + a #GstRTSPStream + + + + + + + + + + + + + + + + Get the configured DSCP QoS in of the outgoing sockets. + + the DSCP QoS value of the outgoing sockets, or -1 if disbled. + + + + + a #GstRTSPStream + + + + + + Get the stream index. + + the stream index. + + + + + a #GstRTSPStream + + + + + + Get the previous joined bin with gst_rtsp_stream_join_bin() or NULL. + + the joined bin or NULL. + + + + + a #GstRTSPStream + + + + + + Get the configured MTU in the payloader of @stream. + + the MTU of the payloader. + + + + + a #GstRTSPStream + + + + + + Get the multicast address of @stream for @family. The original +#GstRTSPAddress is cached and copy is returned, so freeing the return value +won't release the address from the pool. + + the #GstRTSPAddress of @stream +or %NULL when no address could be allocated. gst_rtsp_address_free() +after usage. + + + + + a #GstRTSPStream + + + + the #GSocketFamily + + + + + + Get the multicast interface used for @stream. + + the multicast interface for @stream. +g_free() after usage. + + + + + a #GstRTSPStream + + + + + + Get the allowed profiles of @stream. + + a #GstRTSPProfile + + + + + a #GstRTSPStream + + + + + + Get the allowed protocols of @stream. + + a #GstRTSPLowerTrans + + + + + a #GstRTSPStream + + + + + + Get the stream payload type. + + the stream payload type. + + + + + a #GstRTSPStream + + + + + + Gets if and how the stream clock should be published according to RFC7273. + + The GstRTSPPublishClockMode + + + + + a #GstRTSPStream + + + + + + Get the payload-type used for retransmission of this stream + + The retransmission PT. + + + + + a #GstRTSPStream + + + + + + Get the amount of time to store retransmission data. + + the amount of time to store retransmission data. + + + + + a #GstRTSPStream + + + + + + Get the RTCP socket from @stream for a @family. + +@stream must be joined to a bin. + + the RTCP socket or %NULL if no +socket could be allocated for @family. Unref after usage + + + + + a #GstRTSPStream + + + + the socket family + + + + + + Get the RTP socket from @stream for a @family. + +@stream must be joined to a bin. + + the RTP socket or %NULL if no +socket could be allocated for @family. Unref after usage + + + + + a #GstRTSPStream + + + + the socket family + + + + + + Retrieve the current rtptime, seq and running-time. This is used to +construct a RTPInfo reply header. + + %TRUE when rtptime, seq and running-time could be determined. + + + + + a #GstRTSPStream + + + + result RTP timestamp + + + + result RTP seqnum + + + + the clock rate + + + + result running-time + + + + + + Get the RTP session of this stream. + + The RTP session of this stream. Unref after usage. + + + + + a #GstRTSPStream + + + + + + Fill @server_port with the port pair used by the server. This function can +only be called when @stream has been joined. + + + + + + a #GstRTSPStream + + + + result server port + + + + the port family to get + + + + + + Get the sinkpad associated with @stream. + + the sinkpad. Unref after usage. + + + + + a #GstRTSPStream + + + + + + Get the srcpad associated with @stream. + + the srcpad. Unref after usage. + + + + + a #GstRTSPStream + + + + + + Get the SRTP encoder for this stream. + + The SRTP encoder for this stream. Unref after usage. + + + + + a #GstRTSPStream + + + + + + Get the SSRC used by the RTP session of this stream. This function can only +be called when @stream has been joined. + + + + + + a #GstRTSPStream + + + + result ssrc + + + + + + Check if @stream has the control string @control. + + %TRUE is @stream has @control as the control string + + + + + a #GstRTSPStream + + + + a control string + + + + + + Check if @stream is blocking on a #GstBuffer. + + %TRUE if @stream is blocking + + + + + a #GstRTSPStream + + + + + + See gst_rtsp_stream_set_client_side() + + TRUE if this #GstRTSPStream is client-side. + + + + + a #GstRTSPStream + + + + + + Check if @transport can be handled by stream + + %TRUE if @transport can be handled by @stream. + + + + + a #GstRTSPStream + + + + a #GstRTSPTransport + + + + + + Join the #GstBin @bin that contains the element @rtpbin. + +@stream will link to @rtpbin, which must be inside @bin. The elements +added to @bin will be set to the state given in @state. + + %TRUE on success. + + + + + a #GstRTSPStream + + + + a #GstBin to join + + + + a rtpbin element in @bin + + + + the target state of the new elements + + + + + + Remove the elements of @stream from @bin. + + %TRUE on success. + + + + + a #GstRTSPStream + + + + a #GstBin + + + + a rtpbin #GstElement + + + + + + Query the position of the stream in %GST_FORMAT_TIME. This only considers +the RTP parts of the pipeline and not the RTCP parts. + + %TRUE if the position could be queried + + + + + a #GstRTSPStream + + + + current position of a #GstRTSPStream + + + + + + Query the stop of the stream in %GST_FORMAT_TIME. This only considers +the RTP parts of the pipeline and not the RTCP parts. + + %TRUE if the stop could be queried + + + + + a #GstRTSPStream + + + + current stop of a #GstRTSPStream + + + + + + Handle an RTCP buffer for the stream. This method is usually called when a +message has been received from a client using the TCP transport. + +This function takes ownership of @buffer. + + a GstFlowReturn. + + + + + a #GstRTSPStream + + + + a #GstBuffer + + + + + + Handle an RTP buffer for the stream. This method is usually called when a +message has been received from a client using the TCP transport. + +This function takes ownership of @buffer. + + a GstFlowReturn. + + + + + a #GstRTSPStream + + + + a #GstBuffer + + + + + + Remove the transport in @trans from @stream. The media of @stream will +not be sent to the values configured in @trans. + +@stream must be joined to a bin. + +@trans must contain a valid #GstRTSPTransport. + + %TRUE if @trans was removed + + + + + a #GstRTSPStream + + + + a #GstRTSPStreamTransport + + + + + + Creating a rtxsend bin + + a #GstElement. + + + + + a #GstRTSPStream + + + + the session id + + + + + + Reserve @address and @port as the address and port of @stream. The original +#GstRTSPAddress is cached and copy is returned, so freeing the return value +won't release the address from the pool. + + the #GstRTSPAddress of @stream or %NULL when +the address could be reserved. gst_rtsp_address_free() after usage. + + + + + a #GstRTSPStream + + + + an address + + + + a port + + + + n_ports + + + + a TTL + + + + + + configure @pool to be used as the address pool of @stream. + + + + + + a #GstRTSPStream + + + + a #GstRTSPAddressPool + + + + + + Blocks or unblocks the dataflow on @stream. + + %TRUE on success + + + + + a #GstRTSPStream + + + + boolean indicating we should block or unblock + + + + + + Set the size of the UDP transmission buffer (in bytes) +Needs to be set before the stream is joined to a bin. + + + + + + a #GstRTSPStream + + + + the buffer size + + + + + + Sets the #GstRTSPStream as a 'client side' stream - used for sending +streams to an RTSP server via RECORD. This has the practical effect +of changing which UDP port numbers are used when setting up the local +side of the stream sending to be either the 'server' or 'client' pair +of a configured UDP transport. + + + + + + a #GstRTSPStream + + + + TRUE if this #GstRTSPStream is running on the 'client' side of +an RTSP connection. + + + + + + Set the control string in @stream. + + + + + + a #GstRTSPStream + + + + a control string + + + + + + Configure the dscp qos of the outgoing sockets to @dscp_qos. + + + + + + a #GstRTSPStream + + + + a new dscp qos value (0-63, or -1 to disable) + + + + + + Configure the mtu in the payloader of @stream to @mtu. + + + + + + a #GstRTSPStream + + + + a new MTU + + + + + + configure @multicast_iface to be used for @stream. + + + + + + a #GstRTSPStream + + + + a multicast interface name + + + + + + Configure the allowed profiles for @stream. + + + + + + a #GstRTSPStream + + + + the new profiles + + + + + + Configure the allowed lower transport for @stream. + + + + + + a #GstRTSPStream + + + + the new flags + + + + + + Configure a pt map between @pt and @caps. + + + + + + a #GstRTSPStream + + + + the pt + + + + a #GstCaps + + + + + + Sets if and how the stream clock should be published according to RFC7273. + + + + + + a #GstRTSPStream + + + + the clock publish mode + + + + + + Set the payload type (pt) for retransmission of this stream. + + + + + + a #GstRTSPStream + + + + a #guint + + + + + + Set the amount of time to store retransmission packets. + + + + + + a #GstRTSPStream + + + + a #GstClockTime + + + + + + + + + + + + + + + + + + + Call @func for each transport managed by @stream. The result value of @func +determines what happens to the transport. @func will be called with @stream +locked so no further actions on @stream can be performed from @func. + +If @func returns #GST_RTSP_FILTER_REMOVE, the transport will be removed from +@stream. + +If @func returns #GST_RTSP_FILTER_KEEP, the transport will remain in @stream. + +If @func returns #GST_RTSP_FILTER_REF, the transport will remain in @stream but +will also be added with an additional ref to the result #GList of this +function.. + +When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each transport. + + a #GList with all +transports for which @func returned #GST_RTSP_FILTER_REF. After usage, each +element in the #GList should be unreffed before the list is freed. + + + + + + + a #GstRTSPStream + + + + a callback + + + + user data passed to @func + + + + + + Update the new crypto information for @ssrc in @stream. If information +for @ssrc did not exist, it will be added. If information +for @ssrc existed, it will be replaced. If @crypto is %NULL, it will +be removed from @stream. + + %TRUE if @crypto could be updated + + + + + a #GstRTSPStream + + + + the SSRC + + + + a #GstCaps with crypto info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Transport description for a stream + + Create a new #GstRTSPStreamTransport that can be used to manage +@stream with transport @tr. + + a new #GstRTSPStreamTransport + + + + + a #GstRTSPStream + + + + a GstRTSPTransport + + + + + + Get the RTP-Info string for @trans and @start_time. + + the RTPInfo string for @trans +and @start_time or %NULL when the RTP-Info could not be +determined. g_free() after usage. + + + + + a #GstRTSPStreamTransport + + + + a star time + + + + + + Get the #GstRTSPStream used when constructing @trans. + + the stream used when constructing @trans. + + + + + a #GstRTSPStreamTransport + + + + + + Get the transport configured in @trans. + + the transport configured in @trans. It remains +valid for as long as @trans is valid. + + + + + a #GstRTSPStreamTransport + + + + + + Get the url configured in @trans. + + the url configured in @trans. +It remains valid for as long as @trans is valid. + + + + + a #GstRTSPStreamTransport + + + + + + Check if @trans is timed out. + + %TRUE if @trans timed out. + + + + + a #GstRTSPStreamTransport + + + + + + Signal the installed keep_alive callback for @trans. + + + + + + a #GstRTSPStreamTransport + + + + + + Receive @buffer on @channel @trans. + + a #GstFlowReturn. Returns GST_FLOW_NOT_LINKED when @channel is not + configured in the transport of @trans. + + + + + a #GstRTSPStreamTransport + + + + a channel + + + + a #GstBuffer + + + + + + Send @buffer to the installed RTCP callback for @trans. + + %TRUE on success + + + + + a #GstRTSPStreamTransport + + + + a #GstBuffer + + + + + + Send @buffer to the installed RTP callback for @trans. + + %TRUE on success + + + + + a #GstRTSPStreamTransport + + + + a #GstBuffer + + + + + + Activate or deactivate datatransfer configured in @trans. + + %TRUE when the state was changed. + + + + + a #GstRTSPStreamTransport + + + + new state of @trans + + + + + + Install callbacks that will be called when data for a stream should be sent +to a client. This is usually used when sending RTP/RTCP over TCP. + + + + + + a #GstRTSPStreamTransport + + + + a callback called when RTP should be sent + + + + a callback called when RTCP should be sent + + + + user data passed to callbacks + + + + called with the user_data when no longer needed. + + + + + + Install callbacks that will be called when RTCP packets are received from the +receiver of @trans. + + + + + + a #GstRTSPStreamTransport + + + + a callback called when the receiver is active + + + + user data passed to callback + + + + called with the user_data when no longer needed. + + + + + + Set the timed out state of @trans to @timedout + + + + + + a #GstRTSPStreamTransport + + + + timed out value + + + + + + Set @tr as the client transport. This function takes ownership of the +passed @tr. + + + + + + a #GstRTSPStreamTransport + + + + a client #GstRTSPTransport + + + + + + Set @url as the client url. + + + + + + a #GstRTSPStreamTransport + + + + a client #GstRTSPUrl + + + + + + parent instance + + + + + + + + + + + + + + + + + + + + + + + This function will be called by the gst_rtsp_stream_transport_filter(). An +implementation should return a value of #GstRTSPFilterResult. + +When this function returns #GST_RTSP_FILTER_REMOVE, @trans will be removed +from @stream. + +A return value of #GST_RTSP_FILTER_KEEP will leave @trans untouched in +@stream. + +A value of #GST_RTSP_FILTER_REF will add @trans to the result #GList of +gst_rtsp_stream_transport_filter(). + + a #GstRTSPFilterResult. + + + + + a #GstRTSPStream object + + + + a #GstRTSPStreamTransport in @stream + + + + user data that has been given to gst_rtsp_stream_transport_filter() + + + + + + + + The suspend mode of the media pipeline. A media pipeline is suspended right +after creating the SDP and when the client performs a PAUSED request. + + Media is not suspended + + + Media is PAUSED in suspend + + + The media is set to NULL when suspended + + + + Structure holding info about a mainloop running in a thread + + parent #GstMiniObject + + + + the thread type + + + + a #GMainContext + + + + a #GMainLoop + + + + Create a new thread object that can run a mainloop. + + a #GstRTSPThread. + + + + + the thread type + + + + + + Reuse the mainloop of @thread + + %TRUE if the mainloop could be reused + + + + + a #GstRTSPThread + + + + + + Stop and unref @thread. When no threads are using the mainloop, the thread +will be stopped and the final ref to @thread will be released. + + + + + + a #GstRTSPThread + + + + + + + The thread pool structure. + + Create a new #GstRTSPThreadPool instance. + + a new #GstRTSPThreadPool + + + + + Wait for all tasks to be stopped and free all allocated resources. This is +mainly used in test suites to ensure proper cleanup of internal data +structures. + + + + + + + + + + + + + + + + + + + + + + Get a new #GstRTSPThread for @type and @ctx. + + a new #GstRTSPThread, +gst_rtsp_thread_stop() after usage + + + + + a #GstRTSPThreadPool + + + + the #GstRTSPThreadType + + + + a #GstRTSPContext + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get the maximum number of threads used for client connections. +See gst_rtsp_thread_pool_set_max_threads(). + + the maximum number of threads. + + + + + a #GstRTSPThreadPool + + + + + + Get a new #GstRTSPThread for @type and @ctx. + + a new #GstRTSPThread, +gst_rtsp_thread_stop() after usage + + + + + a #GstRTSPThreadPool + + + + the #GstRTSPThreadType + + + + a #GstRTSPContext + + + + + + Set the maximum threads used by the pool to handle client requests. +A value of 0 will use the pool mainloop, a value of -1 will use an +unlimited number of threads. + + + + + + a #GstRTSPThreadPool + + + + maximum threads + + + + + + + + + + + + + + + + + + + + + Class for managing threads. + + + + + a #GThreadPool used internally + + + + + + a new #GstRTSPThread, +gst_rtsp_thread_stop() after usage + + + + + a #GstRTSPThreadPool + + + + the #GstRTSPThreadType + + + + a #GstRTSPContext + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Different thread types + + a thread to handle the client communication + + + a thread to handle media + + + + An opaque object used for checking authorisations. +It is generated after successful authentication. + + + + + Create a new Authorization token with the given fieldnames and values. +Arguments are given similar to gst_structure_new(). + + a new authorization token. + + + + + the first fieldname + + + + additional arguments + + + + + + Create a new empty Authorization token. + + a new empty authorization token. + + + + + Create a new Authorization token with the given fieldnames and values. +Arguments are given similar to gst_structure_new_valist(). + + a new authorization token. + + + + + the first fieldname + + + + additional arguments + + + + + + Get the string value of @field in @token. + + the string value of @field in +@token or %NULL when @field is not defined in @token. The string +becomes invalid when you free @token. + + + + + a #GstRTSPToken + + + + a field name + + + + + + Access the structure of the token. + + The structure of the token. The structure is still +owned by the token, which means that you should not free it and that the +pointer becomes invalid when you free the token. + +MT safe. + + + + + The #GstRTSPToken. + + + + + + Check if @token has a boolean @field and if it is set to %TRUE. + + %TRUE if @token has a boolean field named @field set to %TRUE. + + + + + a #GstRTSPToken + + + + a field name + + + + + + Get a writable version of the structure. + + The structure of the token. The structure is still +owned by the token, which means that you should not free it and that the +pointer becomes invalid when you free the token. This function checks if +@token is writable and will never return %NULL. + +MT safe. + + + + + The #GstRTSPToken. + + + + + + + The supported modes of the media. + + Transport supports PLAY mode + + + Transport supports RECORD mode + + + + Used with gst_rtsp_address_pool_add_range() to bind to all +IPv4 addresses + + + + Used with gst_rtsp_address_pool_add_range() to bind to all +IPv6 addresses + + + + Check a new connection + + + + Check if access is allowed to a factory. +When access is not allowed an 404 Not Found is sent in the response. + + + + Check if media can be constructed from a media factory +A response should be sent on error. + + + + Check if the client can specify TTL, destination and +port pair in multicast. No response is sent when the check returns +%FALSE. + + + + Check the URL and methods + + + + G_TYPE_BOOLEAN, %TRUE if the media can be accessed, %FALSE will +return a 404 Not Found error when trying to access the media. + + + + G_TYPE_BOOLEAN, %TRUE if the media can be constructed, %FALSE will +return a 404 Not Found error when trying to access the media. + + + + G_TYPE_STRING, the role to use when dealing with media factories + +The default #GstRTSPAuth object uses this string in the token to find the +role of the media factory. It will then retrieve the #GstRTSPPermissions of +the media factory and retrieve the role with the same name. + + + + G_TYPE_BOOLEAN, %TRUE if the client can specify TTL, destination and + port pair in multicast. + + + + + + + + + + + + Get the current #GstRTSPContext. This object is retrieved from the +current thread that is handling the request for a client. + + a #GstRTSPContext + + + + + + + + + + Get parameters (not implemented yet) + + a #GstRTSPResult + + + + + a #GstRTSPClient + + + + a #GstRTSPContext + + + + + + Set parameters (not implemented yet) + + a #GstRTSPResult + + + + + a #GstRTSPClient + + + + a #GstRTSPContext + + + + + + Add @media specific info to @sdp. @info is used to configure the connection +information in the SDP. + + TRUE on success. + + + + + a #GstSDPMessage + + + + a #GstSDPInfo + + + + a #GstRTSPMedia + + + + + + Add info from @stream to @sdp. + + TRUE on success. + + + + + a #GstSDPMessage + + + + a #GstSDPInfo + + + + a #GstRTSPStream + + + + + + diff --git a/GstSdp-1.0.gir b/GstSdp-1.0.gir new file mode 100644 index 0000000..db78f9d --- /dev/null +++ b/GstSdp-1.0.gir @@ -0,0 +1,4309 @@ + + + + + + + + + The different cache types + + The envelope key MUST NOT be cached + + + The envelope key MUST be cached + + + The envelope key MUST be cached, but only + to be used for the specific CSB. + + + + + + The encryption algorithm used to encrypt the Encr data field + + no encryption + + + AES-CM using a 128-bit key + + + AES Key Wrap using a 128-bit key + + + + + + The key validity type + + No specific usage rule + + + The key is associated with the SPI/MKI + + + The key has a start and expiration time + + + + The type of key. + + a TEK Generation Key + + + Traffic-Encrypting Key + + + + Specifies the authentication algorithm used + + no authentication + + + HMAC-SHA-1-160 + + + + The Security policy Map item for SRTP + + The security policy applied for the stream with @ssrc + + + + the SSRC that must be used for the stream + + + + current rollover counter + + + + + Specifies the method of uniquely mapping Crypto Sessions to the security +protocol sessions. + + + + + Structure holding the information of the MIKEY message + + + + + the version + + + + the #GstMIKEYType message type + + + + verify flag + + + + a #GstMIKEYPRFFunc + + + + Identifies the Crypto Session Bundle + + + + a #GstMIKEYMapType + + + + map info array of type depending on @map_type + + + + + + the payload array of #GstMIKEYPayload + + + + + + Make a new MIKEY message. + + a new #GstMIKEYMessage on success + + + + + Make a new #GstMIKEYMessage from @bytes. + + a new #GstMIKEYMessage + + + + + a #GBytes + + + + a #GstMIKEYDecryptInfo + + + + + + Makes mikey message including: + - Security Policy Payload + - Key Data Transport Payload + - Key Data Sub-Payload + + a #GstMIKEYMessage, +or %NULL if there is no srtp information in the caps. + + + + + a #GstCaps, including SRTP parameters (srtp/srtcp cipher, authorization, key data) + + + + + + Parse @size bytes from @data into a #GstMIKEYMessage. @info contains the +parameters to decrypt and verify the data. + + a #GstMIKEYMessage on success or %NULL when parsing failed and +@error will be set. + + + + + bytes to read + + + + + + length of @data + + + + #GstMIKEYDecryptInfo + + + + + + Add a Crypto policy for SRTP to @msg. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + The security policy applied for the stream with @ssrc + + + + the SSRC that must be used for the stream + + + + current rollover counter + + + + + + Add a new payload to @msg. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + a #GstMIKEYPayload + + + + + + Add a new PKE payload to @msg with the given parameters. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + envelope key cache indicator + + + + the length of @data + + + + the encrypted envelope key + + + + + + + + Add a new RAND payload to @msg with the given parameters. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + the length of @rand + + + + random data + + + + + + + + Add a new RAND payload to @msg with @len random bytes. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + length + + + + + + Add a new T payload to @msg with the given parameters. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + specifies the timestamp type used + + + + The timestamp value of the specified @type + + + + + + + + Add a new T payload to @msg that contains the current time +in NTP-UTC format. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + + + + a #gchar, base64-encoded data + + + + + a #GstMIKEYMessage + + + + + + Find the @nth occurence of the payload with @type in @msg. + + the @nth #GstMIKEYPayload of @type. + + + + + a #GstMIKEYMessage + + + + a #GstMIKEYPayloadType + + + + payload to find + + + + + + Get the policy information of @msg at @idx. + + a #GstMIKEYMapSRTP + + + + + a #GstMIKEYMessage + + + + an index + + + + + + Get the number of crypto sessions in @msg. + + the number of crypto sessions + + + + + a #GstMIKEYMessage + + + + + + Get the number of payloads in @msg. + + the number of payloads in @msg + + + + + a #GstMIKEYMessage + + + + + + Get the #GstMIKEYPayload at @idx in @msg + + the #GstMIKEYPayload at @idx. The payload +remains valid for as long as it is part of @msg. + + + + + a #GstMIKEYMessage + + + + an index + + + + + + Insert a Crypto Session map for SRTP in @msg at @idx + +When @idx is -1, the policy will be appended. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + the index to insert at + + + + the map info + + + + + + Insert the @payload at index @idx in @msg. If @idx is -1, the payload +will be appended to @msg. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + an index + + + + a #GstMIKEYPayload + + + + + + Remove the SRTP policy at @idx. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + the index to remove + + + + + + Remove the payload in @msg at @idx + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + an index + + + + + + Replace a Crypto Session map for SRTP in @msg at @idx with @map. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + the index to insert at + + + + the map info + + + + + + Replace the payload at @idx in @msg with @payload. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + an index + + + + a #GstMIKEYPayload + + + + + + Set the information in @msg. + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + a version + + + + a #GstMIKEYType + + + + verify flag + + + + the #GstMIKEYPRFFunc function to use + + + + the Crypto Session Bundle id + + + + the #GstMIKEYCSIDMapType + + + + + + Convert @msg to a #GBytes. + + a new #GBytes for @msg. + + + + + a #GstMIKEYMessage + + + + a #GstMIKEYEncryptInfo + + + + + + + %TRUE on success + + + + + a #GstMIKEYMessage + + + + a #GstCaps to be filled with SRTP parameters (srtp/srtcp cipher, authorization, key data) + + + + + + + The PRF function that has been/will be used for key derivation + + MIKEY-1 PRF function + + + + Hold the common fields for all payloads + + + + + the payload type + + + + length of the payload + + + + Make a new #GstMIKEYPayload with @type. + + a new #GstMIKEYPayload or %NULL on failure. + + + + + a #GstMIKEYPayloadType + + + + + + Add a new sub payload to @payload. + + %TRUE on success. + + + + + a #GstMIKEYPayload + + + + a #GstMIKEYPayload to add + + + + + + Get the number of sub payloads of @payload. @payload should be of type +%GST_MIKEY_PT_KEMAC. + + the number of sub payloads in @payload + + + + + a #GstMIKEYPayload + + + + + + Get the sub payload of @payload at @idx. @payload should be of type +%GST_MIKEY_PT_KEMAC. + + the #GstMIKEYPayload at @idx. + + + + + a #GstMIKEYPayload + + + + an index + + + + + + Remove the sub payload at @idx in @payload. + + %TRUE on success. + + + + + a #GstMIKEYPayload + + + + the index to remove + + + + + + Set the KEMAC parameters. @payload should point to a %GST_MIKEY_PT_KEMAC +payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the #GstMIKEYEncAlg + + + + a #GstMIKEYMacAlg + + + + + + Set the key validity period in the %GST_MIKEY_PT_KEY_DATA @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the length of @vf_data + + + + the Valid From data + + + + + + the length of @vt_data + + + + the Valid To data + + + + + + + + Set @key_len bytes of @key_data of type @key_type as the key for the +%GST_MIKEY_PT_KEY_DATA @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + a #GstMIKEYKeyDataType + + + + the length of @key_data + + + + the key of type @key_type + + + + + + + + Set the salt key data. If @salt_len is 0 and @salt_data is %NULL, the +salt data will be removed. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the length of @salt_data + + + + the salt + + + + + + + + Set the SPI/MKI validity in the %GST_MIKEY_PT_KEY_DATA @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the length of @spi_data + + + + the SPI/MKI data + + + + + + + + Set the PKE values in @payload. @payload must be of type +%GST_MIKEY_PT_PKE. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + envelope key cache indicator + + + + the length of @data + + + + the encrypted envelope key + + + + + + + + Set the random values in a %GST_MIKEY_PT_RAND @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the length of @rand + + + + random values + + + + + + + + Add a new parameter to the %GST_MIKEY_PT_SP @payload with @type, @len +and @val. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + a type + + + + a length + + + + @len bytes of data + + + + + + + + Get the number of security policy parameters in a %GST_MIKEY_PT_SP +@payload. + + the number of parameters in @payload + + + + + a #GstMIKEYPayload + + + + + + Get the Security Policy parameter in a %GST_MIKEY_PT_SP @payload +at @idx. + + the #GstMIKEYPayloadSPParam at @idx in @payload + + + + + a #GstMIKEYPayload + + + + an index + + + + + + Remove the Security Policy parameters from a %GST_MIKEY_PT_SP +@payload at @idx. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + an index + + + + + + Set the Security Policy parameters for @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the policy number + + + + a #GstMIKEYSecProto + + + + + + Set the timestamp in a %GST_MIKEY_PT_T @payload. + + %TRUE on success + + + + + a #GstMIKEYPayload + + + + the #GstMIKEYTSType + + + + the timestamp value + + + + + + + + + A structure holding the KEMAC payload + + the common #GstMIKEYPayload + + + + the #GstMIKEYEncAlg + + + + the #GstMIKEYMacAlg + + + + the subpayloads + + + + + + + The Key data payload contains key material. It should be added as sub +payload to the KEMAC. + + the payload header + + + + + + + length of @key_data + + + + + + + the length of @salt_data, can be 0 + + + + salt data + + + + the Key Validity type + + + + length of @kv_data + + + + + + key validity data + + + + + + + The Envelope data payload contains the encrypted envelope key that is +used in the public-key transport to protect the data in the Key data +transport payload. The encryption algorithm used is implicit from +the certificate/public key used. + + the common #GstMIKEYPayload + + + + envelope key cache indicator + + + + length of @data + + + + the encrypted envelope key + + + + + The RAND payload consists of a (pseudo-)random bit-string + + the payload header + + + + the length of @rand + + + + random values + + + + + The Security Policy payload defines a set of policies that apply to a +specific security protocol + + the payload header + + + + the policy number + + + + the security protocol + + + + array of #GstMIKEYPayloadPSParam + + + + + + + A Type/Length/Value field for security paramaters + + specifies the type of the parameter + + + + specifies the length of @val + + + + specifies the value of the parameter + + + + + The timestamp payload carries the timestamp information + + the payload header + + + + a #GstMIKEYTSType + + + + the timestamp value + + + + + Different MIKEY Payload types. + + Last payload + + + Key data transport payload + + + Envelope data payload + + + DH data payload + + + Signature payload + + + Timestamp payload + + + ID payload + + + Certificate Payload + + + Cert hash payload + + + Verfication message payload + + + Security Policy payload + + + RAND payload + + + Error payload + + + Key data sub-payload + + + General Extension Payload + + + + Specifies the security protocol + + + + + This policy specifies the parameters for SRTP and SRTCP + + Encryption algorithm + + + Session Encr. key length + + + Authentication algorithm + + + Session Auth. key length + + + Session Salt key length + + + SRTP Pseudo Random Function + + + Key derivation rate + + + SRTP encryption off/on, 0 if off, 1 if on + + + SRTCP encryption off/on, 0 if off, 1 if on + + + sender's FEC order + + + SRTP authentication off/on, 0 if off, 1 if on + + + Authentication tag length + + + SRTP prefix length + + + + Specifies the timestamp type. + + an NTP time in UTC timezone + + + an NTP time + + + a counter + + + + Different MIKEY data types. + + Invalid type + + + Initiator's pre-shared key message + + + Verification message of a Pre-shared key message + + + Initiator's public-key transport message + + + Verification message of a public-key message + + + Initiator's DH exchange message + + + Responder's DH exchange message + + + Error message + + + + The supported MIKEY version 1. + + + + The contents of the SDP "a=" field which contains a key/value pair. + + the attribute key + + + + the attribute value or NULL when it was a property attribute + + + + Clear the attribute. + + @GST_SDP_OK. + + + + + a #GstSDPAttribute + + + + + + Set the attribute with @key and @value. + + @GST_SDP_OK. + + + + + a #GstSDPAttribute + + + + the key + + + + the value + + + + + + + The contents of the SDP "b=" field which specifies the proposed bandwidth to +be used by the session or media. + + the bandwidth modifier type + + + + the bandwidth in kilobits per second + + + + Reset the bandwidth information in @bw. + + a #GstSDPResult. + + + + + a #GstSDPBandwidth + + + + + + Set bandwidth information in @bw. + + a #GstSDPResult. + + + + + a #GstSDPBandwidth + + + + the bandwidth modifier type + + + + the bandwidth in kilobits per second + + + + + + + The contents of the SDP "c=" field which contains connection data. + + the type of network. "IN" is defined to have the meaning + "Internet". + + + + the type of @address. + + + + the address + + + + the time to live of the address + + + + the number of layers + + + + Clear the connection. + + @GST_SDP_OK. + + + + + a #GstSDPConnection + + + + + + Set the connection with the given parameters. + + @GST_SDP_OK. + + + + + a #GstSDPConnection + + + + the type of network. "IN" is defined to have the meaning +"Internet". + + + + the type of address. + + + + the address + + + + the time to live of the address + + + + the number of layers + + + + + + + The contents of the SDP "k=" field which is used to convey encryption +keys. + + the encryption type + + + + the encryption data + + + + + The contents of the SDP "m=" field with all related fields. + + the media type + + + + the transport port to which the media stream will be sent + + + + the number of ports or -1 if only one port was specified + + + + the transport protocol + + + + an array of #gchar formats + + + + + + the media title + + + + array of #GstSDPConnection with media connection information + + + + + + array of #GstSDPBandwidth with media bandwidth information + + + + + + the encryption key + + + + array of #GstSDPAttribute with the additional media attributes + + + + + + Add the attribute with @key and @value to @media. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + a key + + + + a value + + + + + + Add the bandwidth information with @bwtype and @bandwidth to @media. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the bandwidth modifier type + + + + the bandwidth in kilobits per second + + + + + + Add the given connection parameters to @media. + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + the type of network. "IN" is defined to have the meaning +"Internet". + + + + the type of address. + + + + the address + + + + the time to live of the address + + + + the number of layers + + + + + + Add the format information to @media. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the format + + + + + + Convert the contents of @media to a text string. + + A dynamically allocated string representing the media. + + + + + a #GstSDPMedia + + + + + + Get the number of attribute fields in @media. + + the number of attributes in @media. + + + + + a #GstSDPMedia + + + + + + Mapping of attributes of #GstSDPMedia to #GstCaps + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + a #GstCaps + + + + + + Get the number of bandwidth fields in @media. + + the number of bandwidths in @media. + + + + + a #GstSDPMedia + + + + + + Get the number of connection fields in @media. + + the number of connections in @media. + + + + + a #GstSDPMedia + + + + + + Allocate a new copy of @media and store the result in @copy. The value in +@copy should be release with gst_sdp_media_free function. + + a #GstSDPResult + + + + + a #GstSDPMedia + + + + pointer to new #GstSDPMedia + + + + + + Get the number of formats in @media. + + the number of formats in @media. + + + + + a #GstSDPMedia + + + + + + Free all resources allocated by @media. @media should not be used anymore after +this function. This function should be used when @media was dynamically +allocated with gst_sdp_media_new(). + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + + + Get the attribute at position @idx in @media. + + the #GstSDPAttribute at position @idx. + + + + + a #GstSDPMedia + + + + an index + + + + + + Get the first attribute value for @key in @media. + + the first attribute value for @key. + + + + + a #GstSDPMedia + + + + a key + + + + + + Get the @nth attribute value for @key in @media. + + the @nth attribute value. + + + + + a #GstSDPMedia + + + + a key + + + + an index + + + + + + Get the bandwidth at position @idx in @media. + + the #GstSDPBandwidth at position @idx. + + + + + a #GstSDPMedia + + + + an index + + + + + + Mapping of caps from SDP fields: + +a=rtpmap:(payload) (encoding_name)/(clock_rate)[/(encoding_params)] + +a=framesize:(payload) (width)-(height) + +a=fmtp:(payload) (param)[=(value)];... + + a #GstCaps, or %NULL if an error happened + + + + + a #GstSDPMedia + + + + a payload type + + + + + + Get the connection at position @idx in @media. + + the #GstSDPConnection at position @idx. + + + + + a #GstSDPMedia + + + + an index + + + + + + Get the format information at position @idx in @media. + + the format at position @idx. + + + + + a #GstSDPMedia + + + + an index + + + + + + Get the information of @media + + the information of @media. + + + + + a #GstSDPMedia + + + + + + Get the encryption information from @media. + + a #GstSDPKey. + + + + + a #GstSDPMedia + + + + + + Get the media description of @media. + + the media description. + + + + + a #GstSDPMedia + + + + + + Get the number of ports for @media. + + the number of ports for @media. + + + + + a #GstSDPMedia + + + + + + Get the port number for @media. + + the port number of @media. + + + + + a #GstSDPMedia + + + + + + Get the transport protocol of @media + + the transport protocol of @media. + + + + + a #GstSDPMedia + + + + + + Initialize @media so that its contents are as if it was freshly allocated +with gst_sdp_media_new(). This function is mostly used to initialize a media +allocated on the stack. gst_sdp_media_uninit() undoes this operation. + +When this function is invoked on newly allocated data (with malloc or on the +stack), its contents should be set to 0 before calling this function. + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + + + Insert the attribute to @media at @idx. When @idx is -1, +the attribute is appended. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPAttribute + + + + + + Insert the bandwidth information to @media at @idx. When @idx is -1, +the bandwidth is appended. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPBandwidth + + + + + + Insert the connection information to @media at @idx. When @idx is -1, +the connection is appended. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPConnection + + + + + + Insert the format information to @media at @idx. When @idx is -1, +the format is appended. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + the format + + + + + + Creates a new #GstMIKEYMessage after parsing the key-mgmt attribute +from a #GstSDPMedia. + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + pointer to new #GstMIKEYMessage + + + + + + Remove the attribute in @media at @idx. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + + + Remove the bandwidth information in @media at @idx. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + + + Remove the connection information in @media at @idx. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + + + Remove the format information in @media at @idx. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + + + Replace the attribute in @media at @idx with @attr. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPAttribute + + + + + + Replace the bandwidth information in @media at @idx with @bw. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPBandwidth + + + + + + Replace the connection information in @media at @idx with @conn. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + a #GstSDPConnection + + + + + + Replace the format information in @media at @idx with @format. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + an index + + + + the format + + + + + + Set the media information of @media to @information. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the media information + + + + + + Adds the encryption information to @media. + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + the encryption type + + + + the encryption data + + + + + + Set the media description of @media to @med. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the media description + + + + + + Set the port information in @media. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the port number + + + + the number of ports + + + + + + Set the media transport protocol of @media to @proto. + + #GST_SDP_OK. + + + + + a #GstSDPMedia + + + + the media transport protocol + + + + + + Free all resources allocated in @media. @media should not be used anymore after +this function. This function should be used when @media was allocated on the +stack and initialized with gst_sdp_media_init(). + + a #GstSDPResult. + + + + + a #GstSDPMedia + + + + + + Allocate a new GstSDPMedia and store the result in @media. + + a #GstSDPResult. + + + + + pointer to new #GstSDPMedia + + + + + + Mapping of caps to SDP fields: + +a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)] + +a=framesize:(payload) (width)-(height) + +a=fmtp:(payload) (param)[=(value)];... + +a=rtcp-fb:(payload) (param1) [param2]... + + a #GstSDPResult. + + + + + a #GstCaps + + + + a #GstSDPMedia + + + + + + + The GstSDPMessage helper functions makes it easy to parse and create SDP +messages. + + the protocol version + + + + owner/creator and session identifier + + + + session name + + + + session information + + + + URI of description + + + + array of #gchar with email addresses + + + + + + array of #gchar with phone numbers + + + + + + connection information for the session + + + + array of #GstSDPBandwidth with bandwidth information + + + + + + array of #GstSDPTime with time descriptions + + + + + + array of #GstSDPZone with time zone adjustments + + + + + + encryption key + + + + array of #GstSDPAttribute with session attributes + + + + + + array of #GstSDPMedia with media descriptions + + + + + + Add the attribute with @key and @value to @msg. + + @GST_SDP_OK. + + + + + a #GstSDPMessage + + + + the key + + + + the value + + + + + + Add the specified bandwidth information to @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the bandwidth modifier type + + + + the bandwidth in kilobits per second + + + + + + Add @email to the list of emails in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an email + + + + + + Adds @media to the array of medias in @msg. This function takes ownership of +the contents of @media so that @media will have to be reinitialized with +gst_sdp_media_init() before it can be used again. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a #GstSDPMedia to add + + + + + + Add @phone to the list of phones in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a phone + + + + + + Add time information @start and @stop to @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the start time + + + + the stop time + + + + the repeat times + + + + + + + + Add time zone information to @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the NTP time that a time zone adjustment happens + + + + the offset from the time when the session was first scheduled + + + + + + Convert the contents of @msg to a text string. + + A dynamically allocated string representing the SDP description. + + + + + a #GstSDPMessage + + + + + + Get the number of attributes in @msg. + + the number of attributes in @msg. + + + + + a #GstSDPMessage + + + + + + Mapping of attributes of #GstSDPMessage to #GstCaps + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a #GstCaps + + + + + + Get the number of bandwidth information in @msg. + + the number of bandwidth information in @msg. + + + + + a #GstSDPMessage + + + + + + Allocate a new copy of @msg and store the result in @copy. The value in +@copy should be release with gst_sdp_message_free function. + + a #GstSDPResult + + + + + a #GstSDPMessage + + + + pointer to new #GstSDPMessage + + + + + + Dump the parsed contents of @msg to stdout. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get the number of emails in @msg. + + the number of emails in @msg. + + + + + a #GstSDPMessage + + + + + + Free all resources allocated by @msg. @msg should not be used anymore after +this function. This function should be used when @msg was dynamically +allocated with gst_sdp_message_new(). + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get the attribute at position @idx in @msg. + + the #GstSDPAttribute at position @idx. + + + + + a #GstSDPMessage + + + + the index + + + + + + Get the first attribute with key @key in @msg. + + the attribute value of the first attribute with @key. + + + + + a #GstSDPMessage + + + + the key + + + + + + Get the @nth attribute with key @key in @msg. + + the attribute value of the @nth attribute with @key. + + + + + a #GstSDPMessage + + + + the key + + + + the index + + + + + + Get the bandwidth at index @idx from @msg. + + a #GstSDPBandwidth. + + + + + a #GstSDPMessage + + + + the bandwidth index + + + + + + Get the connection of @msg. + + a #GstSDPConnection. The result remains valid as long as @msg is valid. + + + + + a #GstSDPMessage + + + + + + Get the email with number @idx from @msg. + + the email at position @idx. + + + + + a #GstSDPMessage + + + + an email index + + + + + + Get the information in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get the encryption information from @msg. + + a #GstSDPKey. + + + + + a #GstSDPMessage + + + + + + Get the media description at index @idx in @msg. + + a #GstSDPMedia. + + + + + a #GstSDPMessage + + + + the index + + + + + + Get the origin of @msg. + + a #GstSDPOrigin. The result remains valid as long as @msg is valid. + + + + + a #GstSDPMessage + + + + + + Get the phone with number @idx from @msg. + + the phone at position @idx. + + + + + a #GstSDPMessage + + + + a phone index + + + + + + Get the session name in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get time information with index @idx from @msg. + + a #GstSDPTime. + + + + + a #GstSDPMessage + + + + the time index + + + + + + Get the URI in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get the version in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get time zone information with index @idx from @msg. + + a #GstSDPZone. + + + + + a #GstSDPMessage + + + + the zone index + + + + + + Initialize @msg so that its contents are as if it was freshly allocated +with gst_sdp_message_new(). This function is mostly used to initialize a message +allocated on the stack. gst_sdp_message_uninit() undoes this operation. + +When this function is invoked on newly allocated data (with malloc or on the +stack), its contents should be set to 0 before calling this function. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Insert attribute into the array of attributes in @msg +at index @idx. +When -1 is given as @idx, the attribute is inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an index + + + + a #GstSDPAttribute + + + + + + Insert bandwidth parameters into the array of bandwidths in @msg +at index @idx. +When -1 is given as @idx, the bandwidth is inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an index + + + + the bandwidth + + + + + + Insert @email into the array of emails in @msg at index @idx. +When -1 is given as @idx, the email is inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an index + + + + an email + + + + + + Insert @phone into the array of phone numbers in @msg at index @idx. +When -1 is given as @idx, the phone is inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a phone index + + + + a phone + + + + + + Insert time parameters into the array of times in @msg +at index @idx. +When -1 is given as @idx, the times are inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an index + + + + a #GstSDPTime + + + + + + Insert zone parameters into the array of zones in @msg +at index @idx. +When -1 is given as @idx, the zone is inserted at the end. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an index +@zone a #GstSDPZone + + + + + + + + + Get the number of media descriptions in @msg. + + the number of media descriptions in @msg. + + + + + a #GstSDPMessage + + + + + + Creates a new #GstMIKEYMessage after parsing the key-mgmt attribute +from a #GstSDPMessage. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + pointer to new #GstMIKEYMessage + + + + + + Get the number of phones in @msg. + + the number of phones in @msg. + + + + + a #GstSDPMessage + + + + + + Remove the attribute in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + + + Remove the bandwidth information in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the bandwidth index + + + + + + Remove the email in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an email index + + + + + + Remove the phone number in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a phone index + + + + + + Remove the time information in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + + + Remove the zone information in @msg at index @idx. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + + + Replace the attribute in @msg at index @idx with @attr. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + a #GstSDPAttribute + + + + + + Replace the bandwidth information in @msg at index @idx with @bw. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the bandwidth index + + + + the bandwidth + + + + + + Replace the email in @msg at index @idx with @email. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + an email index + + + + an email + + + + + + Replace the phone number in @msg at index @idx with @phone. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + a phone index + + + + a phone + + + + + + Replace the time information in @msg at index @idx with @t. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + a #GstSDPTime + + + + + + Replace the zone information in @msg at index @idx with @zone. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the index + + + + a #GstSDPZone + + + + + + Configure the SDP connection in @msg with the given parameters. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the type of network. "IN" is defined to have the meaning +"Internet". + + + + the type of address. + + + + the address + + + + the time to live of the address + + + + the number of layers + + + + + + Set the information in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the information + + + + + + Adds the encryption information to @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the encryption type + + + + the encryption data + + + + + + Configure the SDP origin in @msg with the given parameters. + + #GST_SDP_OK. + + + + + a #GstSDPMessage + + + + the user name + + + + a session id + + + + a session version + + + + a network type + + + + an address type + + + + an address + + + + + + Set the session name in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the session name + + + + + + Set the URI in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the URI + + + + + + Set the version in @msg. + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + the version + + + + + + Get the number of time information entries in @msg. + + the number of time information entries in @msg. + + + + + a #GstSDPMessage + + + + + + Free all resources allocated in @msg. @msg should not be used anymore after +this function. This function should be used when @msg was allocated on the +stack and initialized with gst_sdp_message_init(). + + a #GstSDPResult. + + + + + a #GstSDPMessage + + + + + + Get the number of time zone information entries in @msg. + + the number of time zone information entries in @msg. + + + + + a #GstSDPMessage + + + + + + Creates a uri from @msg with the given @scheme. The uri has the format: + + \@scheme:///[#type=value *[&type=value]] + + Where each value is url encoded. + + a uri for @msg. + + + + + the uri scheme + + + + the #GstSDPMessage + + + + + + Allocate a new GstSDPMessage and store the result in @msg. + + a #GstSDPResult. + + + + + pointer to new #GstSDPMessage + + + + + + Parse the contents of @size bytes pointed to by @data and store the result in +@msg. + + #GST_SDP_OK on success. + + + + + the start of the buffer + + + + + + the size of the buffer + + + + the result #GstSDPMessage + + + + + + Parse the null-terminated @uri and store the result in @msg. + +The uri should be of the form: + + scheme://[address[:ttl=ttl][:noa=noa]]/[sessionname] + [#type=value *[&type=value]] + + where value is url encoded. This looslely resembles + http://tools.ietf.org/html/draft-fujikawa-sdp-url-01 + + #GST_SDP_OK on success. + + + + + the start of the uri + + + + the result #GstSDPMessage + + + + + + + The contents of the SDP "o=" field which gives the originator of the session +(their username and the address of the user's host) plus a session id and +session version number. + + the user's login on the originating host, or it is "-" + if the originating host does not support the concept of user ids. + + + + is a numeric string such that the tuple of @username, @sess_id, + @nettype, @addrtype and @addr form a globally unique identifier for the + session. + + + + a version number for this announcement + + + + the type of network. "IN" is defined to have the meaning + "Internet". + + + + the type of @addr. + + + + the globally unique address of the machine from which the session was + created. + + + + + Return values for the SDP functions. + + A successful return value + + + a function was given invalid parameters + + + + The contents of the SDP "t=" field which specify the start and stop times for +a conference session. + + start time for the conference. The value is the decimal + representation of Network Time Protocol (NTP) time values in seconds + + + + stop time for the conference. The value is the decimal + representation of Network Time Protocol (NTP) time values in seconds + + + + repeat times for a session + + + + + + Reset the time information in @t. + + a #GstSDPResult. + + + + + a #GstSDPTime + + + + + + Set time information @start, @stop and @repeat in @t. + + a #GstSDPResult. + + + + + a #GstSDPTime + + + + the start time + + + + the stop time + + + + the repeat times + + + + + + + + + The contents of the SDP "z=" field which allows the sender to +specify a list of time zone adjustments and offsets from the base +time. + + the NTP time that a time zone adjustment happens + + + + the offset from the time when the session was first scheduled + + + + Reset the zone information in @zone. + + a #GstSDPResult. + + + + + a #GstSDPZone + + + + + + Set zone information in @zone. + + a #GstSDPResult. + + + + + a #GstSDPZone + + + + the NTP time that a time zone adjustment happens + + + + the offset from the time when the session was first scheduled + + + + + + + The Application-Specific Maximum bandwidth modifier. + + + + The Conference Total bandwidth modifier. + + + + The extension prefix bandwidth modifier. + + + + RTCP bandwidth allocated to data receivers (RFC 3556). + + + + RTCP bandwidth allocated to active data senders (RFC 3556). + + + + Transport Independent Application Specific Maximum bandwidth (RFC 3890). + + + + Check if the given @addr is a multicast address. + + TRUE when @addr is multicast. + + + + + a network type + + + + an address type + + + + an address + + + + + + Makes key management data + + a #gchar key-mgmt data, + + + + + a #gchar URI + + + + a #gchar base64-encoded key data + + + + + + Allocate a new GstSDPMedia and store the result in @media. + + a #GstSDPResult. + + + + + pointer to new #GstSDPMedia + + + + + + Mapping of caps to SDP fields: + +a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)] + +a=framesize:(payload) (width)-(height) + +a=fmtp:(payload) (param)[=(value)];... + +a=rtcp-fb:(payload) (param1) [param2]... + + a #GstSDPResult. + + + + + a #GstCaps + + + + a #GstSDPMedia + + + + + + Creates a uri from @msg with the given @scheme. The uri has the format: + + \@scheme:///[#type=value *[&type=value]] + + Where each value is url encoded. + + a uri for @msg. + + + + + the uri scheme + + + + the #GstSDPMessage + + + + + + Allocate a new GstSDPMessage and store the result in @msg. + + a #GstSDPResult. + + + + + pointer to new #GstSDPMessage + + + + + + Parse the contents of @size bytes pointed to by @data and store the result in +@msg. + + #GST_SDP_OK on success. + + + + + the start of the buffer + + + + + + the size of the buffer + + + + the result #GstSDPMessage + + + + + + Parse the null-terminated @uri and store the result in @msg. + +The uri should be of the form: + + scheme://[address[:ttl=ttl][:noa=noa]]/[sessionname] + [#type=value *[&type=value]] + + where value is url encoded. This looslely resembles + http://tools.ietf.org/html/draft-fujikawa-sdp-url-01 + + #GST_SDP_OK on success. + + + + + the start of the uri + + + + the result #GstSDPMessage + + + + + +