"( " VIDEO_PIPELINE " )");
g_object_ref (factory);
gst_rtsp_mount_points_add_factory (mounts, TEST_MOUNT_POINT, GST_RTSP_MEDIA_FACTORY(factory));
- g_object_unref (mounts);
+ if (mounts) g_object_unref (mounts);
/* attach the server to the default maincontext */
if ((id = gst_rtsp_server_attach (GST_RTSP_SERVER_CAST(server), NULL)) == 0)
#define FREE_STRING(field) g_free (field); (field) = NULL
#define REPLACE_STRING(field, val) FREE_STRING(field); (field) = g_strdup (val)
-static void
-free_string (gchar ** str)
-{
- FREE_STRING (*str);
-}
-
#define INIT_ARRAY(field, type, init_func) \
G_STMT_START { \
if (field) { \
msg->uibc_capability->input_category_list.input_cat |=
GST_WFD_UIBC_INPUT_CAT_UNKNOWN;
} while (read_len < rem_len);
- v = strstr (v, "generic_cap_list");
+
+ if ((v = strstr (v, "generic_cap_list"))) {
WFD_READ_CHAR_END_STRING (tstring, '=');
if (!g_strcmp0 (tstring, "generic_cap_list")) {
gchar temp[8192];
GST_WFD_UIBC_INPUT_TYPE_UNKNOWN;
} while (read_len < rem_len);
}
- v = strstr (v, "hidc_cap_list");
+ }
+
+ if ((v = strstr (v, "hidc_cap_list"))) {
WFD_SKIP_SPACE (v);
WFD_READ_CHAR_END_STRING (tstring, '=');
if (!g_strcmp0 (tstring, "hidc_cap_list")) {
}
} while (read_len < rem_len);
}
+ }
+
if (strstr (v, "port")) {
v = strstr (v, "port");
- WFD_READ_CHAR_END_STRING (tstring, '=');
- if (!g_strcmp0 (tstring, "port")) {
- WFD_SKIP_EQUAL (v);
- WFD_READ_CHAR_END_STRING (tstring, ';');
- if (!strstr (tstring, "none")) {
- msg->uibc_capability->tcp_port = strtoul (tstring, NULL, 10);
+ if (v) {
+ WFD_READ_CHAR_END_STRING (tstring, '=');
+ if (!g_strcmp0 (tstring, "port")) {
+ WFD_SKIP_EQUAL (v);
+ WFD_READ_CHAR_END_STRING (tstring, ';');
+ if (!strstr (tstring, "none")) {
+ msg->uibc_capability->tcp_port = strtoul (tstring, NULL, 10);
+ }
}
}
}
{
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ g_return_if_fail (priv != NULL);
+
client->priv = priv;
priv->protection_enabled = FALSE;
priv->video_native_resolution = GST_WFD_VIDEO_CEA_RESOLUTION;
priv->video_resolution_supported = GST_WFD_CEA_640x480P60;
+ priv->keep_alive_flag = FALSE;
g_mutex_init (&priv->keep_alive_lock);
GST_INFO_OBJECT (client, "Client is initialized");
}
GstRTSPWFDClient *client = GST_RTSP_WFD_CLIENT (obj);
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ g_return_if_fail (GST_IS_RTSP_WFD_CLIENT (obj));
+ g_return_if_fail (priv != NULL);
+
GST_INFO ("finalize client %p", client);
g_mutex_clear (&priv->keep_alive_lock);
{
GstRTSPResult res = GST_RTSP_OK;
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+
+ g_return_if_fail (priv != NULL);
+
priv->m3_done = TRUE;
GST_INFO_OBJECT (client, "M3 done..");
break;
}
}
- break;
+ break;
+
+ default:
*cMaxWidth = 0;
*cMaxHeight = 0;
*cFramerate = 0;
GstRTSPWFDClient *_client = GST_RTSP_WFD_CLIENT (client);
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ g_return_if_fail (priv != NULL);
+
GST_INFO_OBJECT (_client, "Handling response..");
- if (!ctx)
+ if (!ctx) {
GST_ERROR_OBJECT (_client, "Context is NULL");
- if (!ctx->response)
+ goto error;
+ }
+
+ if (!ctx->response) {
GST_ERROR_OBJECT (_client, "Response is NULL");
+ goto error;
+ }
/* parsing the GET_PARAMTER response */
res = gst_rtsp_message_get_body (ctx->response, (guint8 **) & data, &size);
GST_INFO_OBJECT (_client, "SET_PARAMETER Request : %s(%d)", data, size);
if (g_strcmp0 ((const gchar *) data, "wfd_idr_request"))
send_generic_wfd_response (_client, GST_RTSP_STS_OK, ctx);
+#if 0
else
/* TODO-WFD : Handle other set param request */
send_generic_wfd_response (_client, GST_RTSP_STS_OK, ctx);
+#endif
} else {
goto bad_request;
}
GString *buf = NULL;
GstWFDMessage *msg = NULL;
GstWFDResult wfd_res = GST_WFD_EINVAL;
- GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ GstRTSPWFDClientPrivate *priv = NULL;
+ priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+
+ g_return_if_fail (priv != NULL);
buf = g_string_new ("");
+ g_return_if_fail (buf != NULL);
if (msg_type == M3_REQ_MSG) {
/* create M3 request to be sent */
{
GstRTSPResult res = GST_RTSP_OK;
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+
+ g_return_val_if_fail (priv != NULL, GST_RTSP_EINVAL);
+
priv->video_resolution_supported = supported_reso;
GST_DEBUG ("Resolution : %"G_GUINT64_FORMAT, supported_reso);
{
GstRTSPResult res = GST_RTSP_OK;
GstRTSPWFDClientPrivate *priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+
+ g_return_val_if_fail (priv != NULL, GST_RTSP_EINVAL);
+
priv->video_native_resolution = native_reso;
GST_DEBUG ("Native Resolution : %"G_GUINT64_FORMAT, native_reso);
wfd_ckeck_keep_alive_response (gpointer userdata)
{
GstRTSPWFDClient *client = (GstRTSPWFDClient *)userdata;
- GstRTSPWFDClientPrivate *priv;
+ GstRTSPWFDClientPrivate *priv = NULL;
if (!client) {
return FALSE;
}
+
priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ g_return_val_if_fail (priv != NULL, GST_RTSP_EINVAL);
+
if (priv->keep_alive_flag) {
return FALSE;
}
}
priv = GST_RTSP_WFD_CLIENT_GET_PRIVATE (client);
+ g_return_val_if_fail (priv != NULL, FALSE);
+
g_mutex_lock(&priv->keep_alive_lock);
if(!priv->keep_alive_flag) {
g_timeout_add(5000, wfd_ckeck_keep_alive_response, client);
size = gst_buffer_get_size (buffer);
f = fopen ("/root/probe.ts", "a");
- fwrite (data, size, 1, f);
- fclose (f);
+ if (f != NULL) {
+ fwrite (data, size, 1, f);
+ fclose (f);
+ }
gst_buffer_unmap (buffer, &mapinfo);
}
{
GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE (server);
+ g_return_if_fail (priv != NULL);
+
server->priv = priv;
server->priv->native_resolution = 0;
server->priv->supported_resolution = 1;
GstRTSPAuth *auth = NULL;
GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE(server);
+ g_return_val_if_fail (priv != NULL, NULL);
+
GST_INFO_OBJECT (server, "New Client is being created");
/* a new client connected, create a session to handle the client. */
GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE(server);
g_return_val_if_fail (GST_IS_RTSP_WFD_SERVER (server), GST_RTSP_ERROR);
+ g_return_val_if_fail (priv != NULL, GST_RTSP_ERROR);
GST_RTSP_WFD_SERVER_LOCK (server);
GST_RTSP_WFD_SERVER_UNLOCK (server);
return res;
}
+
GstRTSPResult
gst_rtsp_wfd_server_set_video_native_reso (GstRTSPWFDServer *server, guint64 native_reso)
{
- GstRTSPResult res = GST_RTSP_OK;
- GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE(server);
+ GstRTSPResult res = GST_RTSP_OK;
+ GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE(server);
+
+ g_return_val_if_fail (GST_IS_RTSP_WFD_SERVER (server), GST_RTSP_ERROR);
+ g_return_val_if_fail (priv != NULL, GST_RTSP_ERROR);
- g_return_val_if_fail (GST_IS_RTSP_WFD_SERVER (server), GST_RTSP_ERROR);
+ GST_RTSP_WFD_SERVER_LOCK (server);
- GST_RTSP_WFD_SERVER_LOCK (server);
+ priv->native_resolution = native_reso;
- priv->native_resolution = native_reso;
+ GST_RTSP_WFD_SERVER_UNLOCK (server);
+ return res;
+}
- GST_RTSP_WFD_SERVER_UNLOCK (server);
- return res;
+GstRTSPResult
+gst_rtsp_wfd_server_set_audio_codec (GstRTSPWFDServer *server, guint8 audio_codec)
+{
+ GstRTSPResult res = GST_RTSP_OK;
+ GstRTSPWFDServerPrivate *priv = GST_RTSP_WFD_SERVER_GET_PRIVATE(server);
+
+ g_return_val_if_fail (GST_IS_RTSP_WFD_SERVER (server), GST_RTSP_ERROR);
+ g_return_val_if_fail (priv != NULL, GST_RTSP_ERROR);
+
+ GST_RTSP_WFD_SERVER_LOCK (server);
+
+ priv->audio_codec = audio_codec;
+
+ GST_RTSP_WFD_SERVER_UNLOCK (server);
+ return res;
}
Name: gst-rtsp-server
Summary: Multimedia Framework Library
Version: 1.4.5
-Release: 0
+Release: 1
Group: System/Libraries
License: LGPLv2+
Source0: %{name}-%{version}.tar.gz