webrtc_test: Revise setting remote description 49/243649/8
authorSangchul Lee <sc11.lee@samsung.com>
Wed, 9 Sep 2020 02:19:40 +0000 (11:19 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Fri, 18 Sep 2020 02:44:17 +0000 (11:44 +0900)
It should be set after receiving it from server.

[Version] 0.1.18
[Issue Type] Test application

Change-Id: I50f1ef6beefd24238fa2e9df1e6a890887262d43
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
packaging/capi-media-webrtc.spec
test/webrtc_test.c

index 81b422a14162f47d9b28d6bda70cf18fb0719a4b..06ebc89ac6f41faf7bfc1b2e8a7e3ffafe05d3e6 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.1.17
+Version:    0.1.18
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index fd8ab375844f6c972caee3848a8b2858f1fdd4e4..eb4995649c62291eaa49c0fe3437724c30ad42dc 100644 (file)
@@ -74,6 +74,7 @@ static appdata ad;
 static webrtc_h g_webrtc;
 static char *g_offer;
 static char *g_answer;
+static char *g_remote_desc;
 static SoupWebsocketConnection *g_ws_conn;
 static gint32 g_local_peer_id;
 static gchar g_signaling_server[MAX_STRING_LEN];
@@ -461,11 +462,11 @@ static void _webrtc_set_local_description(char *desc)
                g_print("webrtc_set_local_description() success\n");
 }
 
-static void _webrtc_set_remote_description(char *desc)
+static void _webrtc_set_remote_description(void)
 {
        int ret = WEBRTC_ERROR_NONE;
 
-       ret = webrtc_set_remote_description(g_webrtc, desc);
+       ret = webrtc_set_remote_description(g_webrtc, g_remote_desc);
        if (ret != WEBRTC_ERROR_NONE)
                g_print("failed to webrtc_set_remote_description()\n");
        else
@@ -550,7 +551,14 @@ static void __handle_json_structured_message(const gchar *text)
 {
        JsonNode *root;
        JsonObject *object;
-       JsonParser *parser = json_parser_new();
+       JsonParser *parser;
+
+       if (!text) {
+               g_printerr("text is NULL\n");
+               return;
+       }
+
+       parser = json_parser_new();
 
        if (!json_parser_load_from_data(parser, text, -1, NULL)) {
                g_printerr("unknown message [%s]\n", text);
@@ -568,7 +576,9 @@ static void __handle_json_structured_message(const gchar *text)
        object = json_node_get_object(root);
        if (json_object_has_member(object, "sdp")){
                g_print("\n[from SERVER > SDP]\n%s\n", text);
-               /* FIXME: set remote session description */
+               if (g_remote_desc)
+                       free(g_remote_desc);
+               g_remote_desc = strdup(text);
 
        } else if (json_object_has_member(object, "ice")){
                g_print("\n[from SERVER > ICE]\n%s\n", text);
@@ -695,7 +705,9 @@ void quit_program()
                _webrtc_stop();
                _webrtc_destroy();
        }
-
+       free(g_offer);
+       free(g_answer);
+       free(g_remote_desc);
        elm_exit();
 }
 
@@ -757,7 +769,7 @@ void _interpret_main_menu(char *cmd)
                        g_menu_state = CURRENT_STATUS_SET_LOCAL_DESCRIPTION;
 
                } else if (strncmp(cmd, "sr", 2) == 0) {
-                       g_menu_state = CURRENT_STATUS_SET_REMOTE_DESCRIPTION;
+                       _webrtc_set_remote_description();
 
                } else if (strncmp(cmd, "st", 2) == 0) {
                        g_menu_state = CURRENT_STATUS_SET_STUN_SERVER;
@@ -850,8 +862,6 @@ static void displaymenu()
                g_print("*** input STUN server address.\n");
        } else if (g_menu_state == CURRENT_STATUS_SET_LOCAL_DESCRIPTION) {
                g_print("*** input type of local description.(1:offer, 2:answer)\n");
-       } else if (g_menu_state == CURRENT_STATUS_SET_REMOTE_DESCRIPTION) {
-               g_print("*** input type of remote description.(1:offer, 2:answer)\n");
        } else if (g_menu_state == CURRENT_STATUS_SETTING_SIGNALING_SERVER) {
                g_print("*** input signaling server URL.\n");
        } else if (g_menu_state == CURRENT_STATUS_SETTING_PROXY) {
@@ -875,8 +885,6 @@ gboolean timeout_menu_display(void *data)
 
 gboolean timeout_quit_program(void *data)
 {
-       free(g_offer);
-       free(g_answer);
        quit_program();
        return FALSE;
 }
@@ -923,19 +931,6 @@ static void interpret(char *cmd)
                reset_menu_state();
                break;
        }
-       case CURRENT_STATUS_SET_REMOTE_DESCRIPTION: {
-               /* FIXME: Setting remote description should be set via signaling server */
-               value = atoi(cmd);
-               if (value == 1)
-                       _webrtc_set_remote_description(g_offer);
-               else if (value == 2)
-                       _webrtc_set_remote_description(g_answer);
-               else
-                       g_print("invalid value[%d]\n", value);
-
-               reset_menu_state();
-               break;
-       }
        case CURRENT_STATUS_SETTING_SIGNALING_SERVER: {
                _setting_uri(g_signaling_server, cmd);
                reset_menu_state();