test: Add menu for setting transceiver receiving data drop 25/308225/1 accepted/tizen/unified/20240327.141705 accepted/tizen/unified/x/20240401.142540
authorSangchul Lee <sc11.lee@samsung.com>
Tue, 19 Mar 2024 01:44:54 +0000 (10:44 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Wed, 20 Mar 2024 03:38:09 +0000 (03:38 +0000)
Two items have been added as below.

srd. Set transceiver recv drop
grd. Get transceiver recv drop

[Version] 0.4.55
[Issue Type] Test application

Change-Id: I1f42282761c8a786ec26a3fa7b62062584a2911b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
(cherry picked from commit e895b88fff02c8355943d13ba4c17eae6f11e18d)

packaging/capi-media-webrtc.spec
test/webrtc_test.c
test/webrtc_test_menu.c
test/webrtc_test_priv.h

index e01d5e1ada05cb05471b6b01fafecb1e5732ca7e..e991a9d462c327bf3e537a42cadb440ba411021e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.4.54
+Version:    0.4.55
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 3fe2a75bdf596615dc490d7468ab42a09e63ede0..da57b202ab4d5fdce7f0cec0e585cfd57facdaf4 100644 (file)
@@ -1003,6 +1003,25 @@ static void _webrtc_media_source_unset_video_loopback(int index, unsigned int so
        g_print("webrtc_media_source_unset_video_loopback() success, source_id[%u]\n", source_id);
 }
 
+static void _webrtc_media_source_set_transceiver_recv_drop(int index, unsigned int source_id, webrtc_media_type_e media_type, int drop)
+{
+       int ret = webrtc_media_source_set_transceiver_recv_drop(g_ad.conns[index].webrtc, source_id, media_type, (bool)drop);
+       RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret);
+
+       g_print("_webrtc_media_source_set_transceiver_recv_drop() success, source_id[%u], media_type[%d], drop[%d]\n", source_id, media_type, (bool)drop);
+}
+
+static void _webrtc_media_source_get_transceiver_recv_drop(int index, unsigned int source_id, webrtc_media_type_e media_type)
+{
+       int ret = WEBRTC_ERROR_NONE;
+       bool dropped;
+
+       ret = webrtc_media_source_get_transceiver_recv_drop(g_ad.conns[index].webrtc, source_id, media_type, &dropped);
+       RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret);
+
+       g_print("_webrtc_media_source_get_transceiver_recv_drop() success, source_id[%u], media_type[%d], dropped[%d]\n", source_id, media_type, dropped);
+}
+
 static void _webrtc_data_channel_send_string(const char *string, bool send_as_bytes)
 {
        int ret;
@@ -3880,6 +3899,44 @@ static void test_webrtc_media_render(char *cmd)
                value = atoi(cmd);
                _webrtc_media_source_unset_video_loopback(0, value);
                break;
+       case CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_RECV_DROP: {
+               static unsigned int id;
+               static unsigned int media_type;
+               value = atoi(cmd);
+
+               switch (g_ad.input_count) {
+               case 0:
+                       id = value;
+                       g_ad.input_count++;
+                       return;
+               case 1:
+                       media_type = value - 1;
+                       g_ad.input_count++;
+                       return;
+               case 2:
+                       _webrtc_media_source_set_transceiver_recv_drop(0, id, media_type, value);
+                       id = media_type = 0;
+                       g_ad.input_count = 0;
+                       break;
+               }
+               break;
+       }
+       case CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_RECV_DROP: {
+               static unsigned int id;
+               value = atoi(cmd);
+
+               switch (g_ad.input_count) {
+               case 0:
+                       id = value;
+                       g_ad.input_count++;
+                       return;
+               case 1:
+                       _webrtc_media_source_get_transceiver_recv_drop(0, id, value - 1);
+                       id = 0;
+                       g_ad.input_count = 0;
+                       break;
+               }
+       }
        }
 
        reset_menu_state();
index 9fbc657fb50f1347bda4b1af1a00d854716c58b2..c51e132da5982d4cc13bd35974b6d207b9a5a745 100644 (file)
@@ -100,6 +100,8 @@ menu_info_s g_menu_infos[] = {
        { "ual", CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK, true },
        { "vl", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK, true },
        { "uvl", CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK, true },
+       { "srd", CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_RECV_DROP, true },
+       { "grd", CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_RECV_DROP, true },
        /* webrtc data channel */
        { "cd", CURRENT_STATUS_DATA_CHANNEL_CREATE, false },
        { "dd", CURRENT_STATUS_DATA_CHANNEL_DESTROY, false },
@@ -274,6 +276,8 @@ void display_menu_main(void)
        g_print("ua. Unset encoded audio frame callback\n");
        g_print("sv. Set encoded video frame callback\t");
        g_print("uv. Unset encoded video frame callback\n");
+       g_print("srd. *Set transceiver recv drop\t");
+       g_print("grd. *Get transceiver recv drop\n");
        g_print("------------------------------------- Data Channel --------------------------------------\n");
        g_print("cd. Create data channel\t");
        g_print("dd. Destroy data channel\n");
@@ -591,6 +595,20 @@ void display_menu_webrtc_media_render(void)
        case CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK:
                g_print("*** input source id.\n");
                break;
+       case CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_RECV_DROP:
+               if (get_appdata()->input_count == 0)
+                       g_print("*** input source id.\n");
+               else if (get_appdata()->input_count == 1)
+                       g_print("*** input media type.(1:audio 2:video)\n");
+               else if (get_appdata()->input_count == 2)
+                       g_print("*** input drop.(1:true 0:false)\n");
+               break;
+       case CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_RECV_DROP:
+               if (get_appdata()->input_count == 0)
+                       g_print("*** input source id.\n");
+               else if (get_appdata()->input_count == 1)
+                       g_print("*** input media type.(1:audio 2:video)\n");
+               break;
        }
        g_print(" >>> ");
 }
index 172bd1397b86dc0e2042f2bf88ec1b3cd88faa6f..2073eb2ceccf2365495572015fd6a64af6ce210d 100644 (file)
@@ -139,6 +139,8 @@ enum {
        CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x0F,
        CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x10,
        CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x11,
+       CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_RECV_DROP = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x12,
+       CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_RECV_DROP = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x13,
        /* webrtc data channel */
        CURRENT_STATUS_DATA_CHANNEL_CREATE = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x01,
        CURRENT_STATUS_DATA_CHANNEL_DESTROY = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x02,