Move the time to send STOP message 21/66521/2 accepted/tizen/common/20160420.141250 accepted/tizen/ivi/20160420.044443 accepted/tizen/mobile/20160420.044403 accepted/tizen/tv/20160420.044427 submit/tizen/20160420.002949
authorHyunsoo, Park <hance.park@samsung.com>
Tue, 19 Apr 2016 09:05:20 +0000 (18:05 +0900)
committerHyunsoo, Park <hance.park@samsung.com>
Tue, 19 Apr 2016 11:19:49 +0000 (20:19 +0900)
Change-Id: Ib659085f85012b5977530c87a4a363db149591c6
Signed-off-by: Hyunsoo, Park <hance.park@samsung.com>
miracast_server/miracast_server_impl.c
packaging/capi-media-screen-mirroring.spec

index 62e1fac978b9df230d0ad1e8d98a8374c1a5f479..4d3dde0a1a1566dc7611f1152a01c57c7e678f80 100755 (executable)
@@ -497,12 +497,18 @@ ERROR:
 
 
 static void
-__client_closed(GstRTSPClient *client)
+__client_closed(GstRTSPClient *client, gpointer user_data)
 {
-       if (client == NULL) return;
+       if (client == NULL || user_data == NULL) return;
+
+       MiracastServer *server_obj = (MiracastServer *)user_data;
+       MiracastServerClass *klass;
+       klass = MIRACAST_SERVER_GET_CLASS(server_obj);
 
        scmirroring_debug("client %p: connection closed", client);
 
+       klass->send_response(server_obj,"OK:STOP");
+
        return;
 }
 
@@ -568,7 +574,7 @@ static void __miracast_server_client_connected_cb(GstRTSPServer *server, GstRTSP
        server_obj->client = (void *)client;
 
        g_signal_connect(G_OBJECT(client), "teardown-request", G_CALLBACK(__teardown_req), NULL);
-       g_signal_connect(G_OBJECT(client), "closed", G_CALLBACK(__client_closed), NULL);
+       g_signal_connect_after(G_OBJECT(client), "closed", G_CALLBACK(__client_closed), server_obj);
        g_signal_connect(G_OBJECT(client), "new-session", G_CALLBACK(__new_session), NULL);
        g_signal_connect(G_OBJECT(client), "check-requirements", G_CALLBACK(__check_requirements_cb), NULL);
        g_signal_connect(G_OBJECT(client), "wfd-playing-done", G_CALLBACK(__playing_done), server_obj);
@@ -813,7 +819,6 @@ void __miracast_server_interpret(MiracastServer *server, gchar *buf)
                klass->send_response(server, "OK:RESUME");
        } else if (g_strrstr(buf, SCMIRRORING_STATE_CMD_STOP)) {
                gst_rtsp_wfd_server_trigger_request(GST_RTSP_SERVER(server->server), WFD_TRIGGER_TEARDOWN);
-               klass->send_response(server, "OK:STOP");
        } else if (g_strrstr(buf, SCMIRRORING_STATE_CMD_DESTROY)) {
                klass->quit_server(server);
        }
index 0233000834929a577ebf9609016269067c29b1f2..ea1265381573f09a6f27cf9560614e3e96d7ff4c 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-screen-mirroring
 Summary:    A screen mirroring library in Tizen C API
-Version:    0.1.47
+Version:    0.1.48
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0