RTSP Authentication credentials a #GstRTSPAuthMethod A NULL-terminated array of #GstRTSPAuthParam The authorization for the basic schem Authentication methods, ordered by strength no authentication basic authentication digest authentication RTSP Authentication parameter The name of the parameter The value of the parameter This object manages the RTSP connection to the server. It provides function to receive and send bytes and messages. Add header to be appended to any HTTP request made by connection. If the header already exists then the old header is replaced by the new header. Only applicable in HTTP tunnel mode. a #GstRTSPConnection HTTP header name HTTP header value 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 0 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 timeout in microseconds 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. a #GstRTSPConnection a GTimeVal timeout a #GstRTSPMessage Attempt to connect to the url of @conn made with gst_rtsp_connection_create(). If @timeout is 0 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. a #GstRTSPConnection a timeout in microseconds 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 Get the ignore_x_server_reply value. returns %TRUE if the x-server-ip-address header reply will be ignored, else returns %FALSE 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. GLib guarantees that if certificate verification fails, at least one error will be set, but it does not guarantee that all possible errors will be set. Accordingly, you may not safely decide to ignore any particular type of error. For example, it would be incorrect to ignore %G_TLS_CERTIFICATE_EXPIRED if you want to allow expired certificates, because this could potentially be the only error flag set even if other problems exist with the certificate. the validation 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 Calculate the next timeout for @conn #the next timeout in microseconds a #GstRTSPConnection 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 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 0, 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 in microseconds 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 @size bytes into @data from the connected @conn, blocking up to the specified @timeout. @timeout can be 0, 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 in microseconds 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 Attempt to read into @message from the connected @conn, blocking up to the specified @timeout. @timeout can be 0, 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 0 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 Attempt to send @messages 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 messages to send the number of messages to send a timeout value or %NULL Attempt to send @messages to the connected @conn, blocking up to the specified @timeout. @timeout can be 0, in which case this function might block forever. This function can be cancelled with gst_rtsp_connection_flush(). #GST_RTSP_OK on Since. a #GstRTSPConnection the messages to send the number of messages to send a timeout value in microseconds Attempt to send @message to the connected @conn, blocking up to the specified @timeout. @timeout can be 0, 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 in microseconds Sets a custom accept-certificate function for checking certificates for validity. This will directly map to #GTlsConnection 's "accept-certificate" signal and be performed after the default checks of #GstRTSPConnection (checking against the #GTlsDatabase with the given #GTlsCertificateFlags) have failed. If no #GTlsDatabase is set on this connection, only @func will be called. a #GstRTSPConnection a #GstRTSPConnectionAcceptCertificateFunc to check certificates User data passed to @func #GDestroyNotify for @user_data 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 necessary 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 Configure @conn to use the specified Content-Length limit. Both requests and responses are validated. If content-length is exceeded, ENOMEM error will be returned. a #GstRTSPConnection Content-Length limit 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 whether to ignore the x-server-ip-address header reply or not. If the header is ignored, the original address will be used instead. a #GstRTSPConnection %TRUE to ignore the x-server-ip-address header reply or %FALSE to comply with it (%FALSE is the default). 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. GLib guarantees that if certificate verification fails, at least one error will be set, but it does not guarantee that all possible errors will be set. Accordingly, you may not safely decide to ignore any particular type of error. For example, it would be incorrect to mask %G_TLS_CERTIFICATE_EXPIRED if you want to allow expired certificates, because this could potentially be the only error flag set even if other problems exist with the certificate. 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 Attempt to write @size bytes of @data to the connected @conn, blocking up to the specified @timeout. @timeout can be 0, 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 0 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). An interface representing RTSP extensions. 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 Allocate a new copy of @msg and store the result in @copy. The value in @copy should be release with gst_rtsp_message_free function. a #GstRTSPResult a #GstRTSPMessage pointer to new #GstRTSPMessage 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. If the message body was set as a #GstBuffer before this will cause the data to be copied and stored in the message. The #GstBuffer will no longer be kept in the message. #GST_RTSP_OK. a #GstRTSPMessage location for the data location for the size of @data Get the body of @msg. @buffer remains valid for as long as @msg is valid and unchanged. If body data was set from raw memory instead of a #GstBuffer this function will always return %NULL. The caller can check if there is a body buffer by calling gst_rtsp_message_has_body_buffer(). #GST_RTSP_OK. a #GstRTSPMessage location for the buffer 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 Checks if @msg has a body and the body is stored as #GstBuffer. %TRUE if @msg has a body and it's stored as #GstBuffer, %FALSE otherwise. 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. Any existing body or body buffer will be replaced by the new body. #GST_RTSP_OK. a #GstRTSPMessage the data the size of @data Set the body of @msg to @buffer. Any existing body or body buffer will be replaced by the new body. #GST_RTSP_OK. a #GstRTSPMessage a #GstBuffer 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 Take the body of @msg and store it in @buffer. After this method, the body and size of @msg will be set to %NULL and 0 respectively. If body data was set from raw memory instead of a #GstBuffer this function will always return %NULL. The caller can check if there is a body buffer by calling gst_rtsp_message_has_body_buffer(). #GST_RTSP_OK. a #GstRTSPMessage location for the buffer Set the body of @msg to @data and @size. This method takes ownership of @data. Any existing body or body buffer will be replaced by the new body. #GST_RTSP_OK. a #GstRTSPMessage the data the size of @data Set the body of @msg to @buffer. This method takes ownership of @buffer. Any existing body or body buffer will be replaced by the new body. #GST_RTSP_OK. a #GstRTSPMessage a #GstBuffer 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 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 RTSP request is successful, but was redirected. some unspecified error occurred invalid arguments were provided to a function an operation was canceled no memory was available for the operation a host resolve error occurred function not implemented a system error occurred, errno contains more details a parsing error occurred windows networking could not start windows networking stack has wrong version end-of-file was reached a network problem occurred, h_errno contains more details the host is not an IP host a timeout occurred 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 RTSP request is temporarily redirected RTSP request is permanently redirected 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 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 Initialize @transport so that it can be used. #GST_RTSP_OK. a #GstRTSPTransport 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 Get a newly allocated string describing the request URI for @url combined with the control path for @control_path a string with the request URI combined with the control path. g_free() after usage. a #GstRTSPUrl an RTSP aggregate control path 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. version 2.0. 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 Sends @messages using the connection of the @watch. If they cannot be sent immediately, they will be queued for transmission in @watch. The contents of @messages will then be serialized and transmitted when the connection of the @watch becomes writable. In case the @messages are queued, the ID returned in @id will be non-zero and used as the ID argument in the message_sent callback once the last message is sent. The callback will only be called once for the last message. #GST_RTSP_OK on success. a #GstRTSPWatch the messages to send the number of messages to send 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 Wait until there is place in the backlog queue, @timeout is reached or @watch is set to flushing. If @timeout is 0 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 timeout in microseconds 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. callback when a message was received callback when a message was sent callback when the connection is closed callback when an error occurred a client started a tunneled connection. The tunnelid of the connection must be saved. a client finished a tunneled connection. In this callback you usually pair the tunnelid of this connection with the saved one using gst_rtsp_connection_do_tunnel(). callback when an error occurred with more information than the @error callback. callback when the post connection of a tunnel is closed. callback when an HTTP response to the GET request is about to be sent for a tunneled connection. The response can be modified in the callback. Since: 1.4. Macro that checks the return value of @stmt and jumps to @label when it does not equal #GST_RTSP_OK. a statement a label The default RTSP port to connect to. Provides common defines for the RTSP library. 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 Calculates the digest auth response from the values given by the server and the md5sum. See RFC2069 for details. This function is useful when the passwords are not stored in clear text, but instead in the same format as the .htdigest file. Currently only supported algorithm "md5". Authentication response or %NULL if unsupported Hash algorithm to use, or %NULL for MD5 Request method, e.g. PLAY The md5 sum of username:realm: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 Initialize @transport so that it can be used. #GST_RTSP_OK. a #GstRTSPTransport 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