![]() |
![]() |
![]() |
GStreamer Base Plugins 0.10 Library Reference Manual | ![]() |
---|---|---|---|---|
#include <gst/rtsp/gstrtspmessage.h> enum GstRTSPMsgType; GstRTSPMessage; GstRTSPResult gst_rtsp_message_new (GstRTSPMessage **msg); GstRTSPResult gst_rtsp_message_init (GstRTSPMessage *msg); GstRTSPResult gst_rtsp_message_unset (GstRTSPMessage *msg); GstRTSPResult gst_rtsp_message_free (GstRTSPMessage *msg); GstRTSPMsgType gst_rtsp_message_get_type (GstRTSPMessage *msg); GstRTSPResult gst_rtsp_message_new_request (GstRTSPMessage **msg, GstRTSPMethod method, const gchar *uri); GstRTSPResult gst_rtsp_message_init_request (GstRTSPMessage *msg, GstRTSPMethod method, const gchar *uri); GstRTSPResult gst_rtsp_message_parse_request (GstRTSPMessage *msg, GstRTSPMethod *method, const gchar **uri, GstRTSPVersion *version); GstRTSPResult gst_rtsp_message_new_response (GstRTSPMessage **msg, GstRTSPStatusCode code, const gchar *reason, const GstRTSPMessage *request); GstRTSPResult gst_rtsp_message_init_response (GstRTSPMessage *msg, GstRTSPStatusCode code, const gchar *reason, const GstRTSPMessage *request); GstRTSPResult gst_rtsp_message_parse_response (GstRTSPMessage *msg, GstRTSPStatusCode *code, const gchar **reason, GstRTSPVersion *version); GstRTSPResult gst_rtsp_message_new_data (GstRTSPMessage **msg, guint8 channel); GstRTSPResult gst_rtsp_message_init_data (GstRTSPMessage *msg, guint8 channel); GstRTSPResult gst_rtsp_message_parse_data (GstRTSPMessage *msg, guint8 *channel); GstRTSPResult gst_rtsp_message_add_header (GstRTSPMessage *msg, GstRTSPHeaderField field, const gchar *value); GstRTSPResult gst_rtsp_message_remove_header (GstRTSPMessage *msg, GstRTSPHeaderField field, gint indx); GstRTSPResult gst_rtsp_message_get_header (const GstRTSPMessage *msg, GstRTSPHeaderField field, gchar **value, gint indx); GstRTSPResult gst_rtsp_message_append_headers (const GstRTSPMessage *msg, GString *str); GstRTSPResult gst_rtsp_message_set_body (GstRTSPMessage *msg, const guint8 *data, guint size); GstRTSPResult gst_rtsp_message_take_body (GstRTSPMessage *msg, guint8 *data, guint size); GstRTSPResult gst_rtsp_message_get_body (const GstRTSPMessage *msg, guint8 **data, guint *size); GstRTSPResult gst_rtsp_message_steal_body (GstRTSPMessage *msg, guint8 **data, guint *size); GstRTSPResult gst_rtsp_message_dump (GstRTSPMessage *msg);
typedef enum { GST_RTSP_MESSAGE_INVALID, GST_RTSP_MESSAGE_REQUEST, GST_RTSP_MESSAGE_RESPONSE, GST_RTSP_MESSAGE_DATA, } GstRTSPMsgType;
The type of a message.
typedef struct { GstRTSPMsgType type; union { struct { GstRTSPMethod method; gchar *uri; GstRTSPVersion version; } request; struct { GstRTSPStatusCode code; gchar *reason; GstRTSPVersion version; } response; struct { guint8 channel; } data; } GstRTSPMessage;
An RTSP message containing request, response or data messages. Depending on the type, the appropriate structure may be accessed.
GstRTSPMsgType type; | the message type |
GstRTSPResult gst_rtsp_message_new (GstRTSPMessage **msg);
Create a new initialized GstRTSPMessage.
msg : | a location for the new GstRTSPMessage |
Returns : | a GstRTSPResult. Free with gst_rtsp_message_free(). |
GstRTSPResult gst_rtsp_message_init (GstRTSPMessage *msg);
Initialize msg. This function is mostly used when msg is allocated on the stack. The reverse operation of this is gst_rtsp_message_unset().
msg : | a GstRTSPMessage |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_unset (GstRTSPMessage *msg);
Unset the concents 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.
msg : | a GstRTSPMessage |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_free (GstRTSPMessage *msg);
Free the memory used by msg.
msg : | a GstRTSPMessage |
Returns : | a GstRTSPResult. |
GstRTSPMsgType gst_rtsp_message_get_type (GstRTSPMessage *msg);
Get the message type of msg.
msg : | a GstRTSPMessage |
Returns : | the message type. |
GstRTSPResult gst_rtsp_message_new_request (GstRTSPMessage **msg, GstRTSPMethod method, const gchar *uri);
Create a new GstRTSPMessage with method and uri and store the result request message in msg.
msg : | a location for the new GstRTSPMessage |
method : | the request method to use |
uri : | the uri of the request |
Returns : | a GstRTSPResult. Free with gst_rtsp_message_free(). |
GstRTSPResult gst_rtsp_message_init_request (GstRTSPMessage *msg, GstRTSPMethod method, const gchar *uri);
Initialize msg as a request message with method and uri. To clear msg again, use gst_rtsp_message_unset().
msg : | a GstRTSPMessage |
method : | the request method to use |
uri : | the uri of the request |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_parse_request (GstRTSPMessage *msg, GstRTSPMethod *method, const gchar **uri, GstRTSPVersion *version);
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.
msg : | a GstRTSPMessage |
method : | location to hold the method |
uri : | location to hold the uri |
version : | location to hold the version |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_new_response (GstRTSPMessage **msg, GstRTSPStatusCode code, const gchar *reason, const GstRTSPMessage *request);
Create a new response GstRTSPMessage with code and reason and store the result message in msg.
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.
msg : | a location for the new GstRTSPMessage |
code : | the status code |
reason : | the status reason or NULL |
request : | the request that triggered the response or NULL |
Returns : | a GstRTSPResult. Free with gst_rtsp_message_free(). |
GstRTSPResult gst_rtsp_message_init_response (GstRTSPMessage *msg, GstRTSPStatusCode code, const gchar *reason, const GstRTSPMessage *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.
msg : | a GstRTSPMessage |
code : | the status code |
reason : | the status reason or NULL |
request : | the request that triggered the response or NULL |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_parse_response (GstRTSPMessage *msg, GstRTSPStatusCode *code, const gchar **reason, GstRTSPVersion *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.
msg : | a GstRTSPMessage |
code : | location to hold the status code |
reason : | location to hold the status reason |
version : | location to hold the version |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_new_data (GstRTSPMessage **msg, guint8 channel);
Create a new data GstRTSPMessage with channel and store the result message in msg.
msg : | a location for the new GstRTSPMessage |
channel : | the channel |
Returns : | a GstRTSPResult. Free with gst_rtsp_message_free(). |
GstRTSPResult gst_rtsp_message_init_data (GstRTSPMessage *msg, guint8 channel);
Initialize a new data GstRTSPMessage for channel.
msg : | a GstRTSPMessage |
channel : | a channel |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_parse_data (GstRTSPMessage *msg, guint8 *channel);
Parse the data message msg and store the channel in channel.
msg : | a GstRTSPMessage |
channel : | location to hold the channel |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_add_header (GstRTSPMessage *msg, GstRTSPHeaderField field, const gchar *value);
Add a header with key field and value to msg.
msg : | a GstRTSPMessage |
field : | a GstRTSPHeaderField |
value : | the value of the header |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_remove_header (GstRTSPMessage *msg, GstRTSPHeaderField field, gint indx);
Remove the indx header with key field from msg. If indx equals -1, all headers will be removed.
msg : | a GstRTSPMessage |
field : | a GstRTSPHeaderField |
indx : | the index of the header |
Returns : | a GstRTSPResult. |
GstRTSPResult gst_rtsp_message_get_header (const GstRTSPMessage *msg, GstRTSPHeaderField field, gchar **value, gint indx);
Get the indx header value with key field from msg.
msg : | a GstRTSPMessage |
field : | a GstRTSPHeaderField |
value : | pointer to hold the result |
indx : | the index of the header |
Returns : | GST_RTSP_OK when field was found, GST_RTSP_ENOTIMPL if the key was not found. |
GstRTSPResult gst_rtsp_message_append_headers (const GstRTSPMessage *msg, GString *str);
Append the currently configured headers in msg to the GString str suitable for transmission.
msg : | a GstRTSPMessage |
str : | a string |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_set_body (GstRTSPMessage *msg, const guint8 *data, guint size);
Set the body of msg to a copy of data.
msg : | a GstRTSPMessage |
data : | the data |
size : | the size of data |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_take_body (GstRTSPMessage *msg, guint8 *data, guint size);
Set the body of msg to data and size. This method takes ownership of data.
msg : | a GstRTSPMessage |
data : | the data |
size : | the size of data |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_get_body (const GstRTSPMessage *msg, guint8 **data, guint *size);
Get the body of msg. data remains valid for as long as msg is valid and unchanged.
msg : | a GstRTSPMessage |
data : | location for the data |
size : | location for the size of data |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_steal_body (GstRTSPMessage *msg, guint8 **data, guint *size);
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.
msg : | a GstRTSPMessage |
data : | location for the data |
size : | location for the size of data |
Returns : | GST_RTSP_OK. |
GstRTSPResult gst_rtsp_message_dump (GstRTSPMessage *msg);
Dump the contents of msg to stdout.
msg : | a GstRTSPMessage |
Returns : | GST_RTSP_OK. |