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
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
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.
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.
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