From: Sangchul Lee Date: Tue, 9 Jan 2024 03:31:07 +0000 (+0900) Subject: test: Add menu for adding/removing transceiver encoding X-Git-Tag: accepted/tizen/unified/20240215.130027~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ee22a7e6b61f25ea0509c3a8a129123c99ccfa9b;p=platform%2Fcore%2Fapi%2Fwebrtc.git test: Add menu for adding/removing transceiver encoding [Version] 0.4.39 [Issue Type] Test application Change-Id: I3a89ca3ae6828f063ab564bd8a3931879e572fdb Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 50292edd..4eb04cec 100644 --- a/packaging/capi-media-webrtc.spec +++ b/packaging/capi-media-webrtc.spec @@ -1,6 +1,6 @@ Name: capi-media-webrtc Summary: A WebRTC library in Tizen Native API -Version: 0.4.38 +Version: 0.4.39 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/test/webrtc_test.c b/test/webrtc_test.c index 7531fec5..ccb02a7f 100644 --- a/test/webrtc_test.c +++ b/test/webrtc_test.c @@ -1168,6 +1168,24 @@ static void _webrtc_media_source_set_payload_type(int index, unsigned int source source_id, g_webrtc_media_type_str[media_type], value); } +static void _webrtc_media_source_add_transceiver_encoding(int index, unsigned int source_id, webrtc_media_type_e media_type, const char *rid, int target_bitrate, int w, int h) +{ + int ret = webrtc_media_source_add_transceiver_encoding(g_ad.conns[index].webrtc, source_id, media_type, rid, target_bitrate, w, h); + RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret); + + g_print("webrtc_media_source_add_transceiver_encoding() success, source_id[%u], media_type[%s], rid[%s], target_bitrate[%d], [%dx%d]\n", + source_id, g_webrtc_media_type_str[media_type], rid, target_bitrate, w, h); +} + +static void _webrtc_media_source_remove_transceiver_encoding(int index, unsigned int source_id, webrtc_media_type_e media_type, const char *rid) +{ + int ret = webrtc_media_source_remove_transceiver_encoding(g_ad.conns[index].webrtc, source_id, media_type, rid); + RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret); + + g_print("webrtc_media_source_remove_transceiver_encoding() success, source_id[%u], media_type[%s], rid[%s]\n", + source_id, g_webrtc_media_type_str[media_type], rid); +} + static void __offer_created_cb(webrtc_h webrtc, const char *description, void *user_data) { connection_s *conn = (connection_s *)user_data; @@ -3593,6 +3611,73 @@ static void test_webrtc_media_source(char *cmd) } break; } + case CURRENT_STATUS_MEDIA_SOURCE_ADD_TRANSCEIVER_ENCODING: { + static unsigned int id; + static unsigned int media_type; + static char *rid = NULL; + static int target_bitrate; + static int w; + + 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: + rid = strdup(cmd); + g_ad.input_count++; + return; + case 3: + if (media_type == WEBRTC_MEDIA_TYPE_AUDIO) { + _webrtc_media_source_add_transceiver_encoding(0, id, media_type, rid, value, 0, 0); + id = media_type = 0; + free(rid); + rid = NULL; + g_ad.input_count = 0; + break; + } + target_bitrate = value; + g_ad.input_count++; + return; + case 4: + w = value; + g_ad.input_count++; + return; + case 5: + _webrtc_media_source_add_transceiver_encoding(0, id, media_type, rid, target_bitrate, w, value); + id = media_type = target_bitrate = w = 0; + free(rid); + rid = NULL; + g_ad.input_count = 0; + break; + } + break; + } + case CURRENT_STATUS_MEDIA_SOURCE_REMOVE_TRANSCEIVER_ENCODING: { + static unsigned int id; + static unsigned int media_type; + + 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_remove_transceiver_encoding(0, id, media_type, cmd); + id = media_type = 0; + g_ad.input_count = 0; + break; + } + break; + } } reset_menu_state(); diff --git a/test/webrtc_test_menu.c b/test/webrtc_test_menu.c index 46d20f10..6812ff5d 100644 --- a/test/webrtc_test_menu.c +++ b/test/webrtc_test_menu.c @@ -78,6 +78,8 @@ menu_info_s g_menu_infos[] = { { "ucs", CURRENT_STATUS_SCREEN_SOURCE_UNSET_CROP, true }, { "spt", CURRENT_STATUS_MEDIA_SOURCE_SET_PAYLOAD_TYPE, true }, { "gpt", CURRENT_STATUS_MEDIA_SOURCE_GET_PAYLOAD_TYPE, true }, + { "ae", CURRENT_STATUS_MEDIA_SOURCE_ADD_TRANSCEIVER_ENCODING, true }, + { "re", CURRENT_STATUS_MEDIA_SOURCE_REMOVE_TRANSCEIVER_ENCODING, true }, /* webrtc media render */ { "dt", CURRENT_STATUS_SET_DISPLAY_TYPE, true }, { "dm", CURRENT_STATUS_SET_DISPLAY_MODE, true }, @@ -248,6 +250,8 @@ void display_menu_main(void) g_print("tp. Stop pushing packet to media packet source\n"); g_print("scs. *Set screen source crop\t"); g_print("ucs. *Unset screen source crop\n"); + g_print("ae. *Add transceiver encoding\t"); + g_print("re. *Remove transceiver encoding\n"); g_print("------------------------------------- Media Render --------------------------------------\n"); g_print("dt. Set display type\t"); g_print("dm. Set display mode\t"); @@ -510,6 +514,28 @@ void display_menu_webrtc_media_source(void) else if (get_appdata()->input_count == 1) g_print("*** input media type.(1:audio 2:video)\n"); break; + case CURRENT_STATUS_MEDIA_SOURCE_ADD_TRANSCEIVER_ENCODING: + 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 rid.\n"); + else if (get_appdata()->input_count == 3) + g_print("*** input target bitrate.(e.g., 64000 for OPUS, 256000 for VP8, and so on.\n"); + else if (get_appdata()->input_count == 4) + g_print("*** input width.\n"); + else if (get_appdata()->input_count == 5) + g_print("*** input height.\n"); + break; + case CURRENT_STATUS_MEDIA_SOURCE_REMOVE_TRANSCEIVER_ENCODING: + 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 rid.\n"); + break; } g_print(" >>> "); } diff --git a/test/webrtc_test_priv.h b/test/webrtc_test_priv.h index 1dac28ab..2b4ca714 100644 --- a/test/webrtc_test_priv.h +++ b/test/webrtc_test_priv.h @@ -117,6 +117,8 @@ enum { CURRENT_STATUS_SCREEN_SOURCE_UNSET_CROP = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1D, CURRENT_STATUS_MEDIA_SOURCE_SET_PAYLOAD_TYPE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1E, CURRENT_STATUS_MEDIA_SOURCE_GET_PAYLOAD_TYPE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1F, + CURRENT_STATUS_MEDIA_SOURCE_ADD_TRANSCEIVER_ENCODING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x21, + CURRENT_STATUS_MEDIA_SOURCE_REMOVE_TRANSCEIVER_ENCODING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x22, /* webrtc media render */ CURRENT_STATUS_SET_DISPLAY_TYPE = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x01, CURRENT_STATUS_SET_DISPLAY_MODE = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x02,