From 7434997a1b11213e6f7d10718685b62b49fe3925 Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Fri, 29 Jul 2022 23:34:37 +0900 Subject: [PATCH] webrtc_test: Add menu to set/get encoder bitrate [Version] 0.3.201 [Issue Type] Add Change-Id: Ie860534ca58d2c31db6a49208e916a141023c0fc Signed-off-by: Sangchul Lee --- packaging/capi-media-webrtc.spec | 2 +- test/webrtc_test.c | 37 ++++++++++++++++++++++++++------ test/webrtc_test_menu.c | 18 ++++++++++++++++ test/webrtc_test_priv.h | 36 ++++++++++++++++--------------- 4 files changed, 68 insertions(+), 25 deletions(-) diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index f2e72c13..758ca9cd 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.3.200 +Version: 0.3.201 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/test/webrtc_test.c b/test/webrtc_test.c index ecb8f367..739a9431 100644 --- a/test/webrtc_test.c +++ b/test/webrtc_test.c @@ -1024,6 +1024,25 @@ static void _webrtc_media_source_get_mute(int index, unsigned int source_id, web source_id, g_webrtc_media_type_str[media_type], muted); } +static void _webrtc_media_source_set_encoder_bitrate(int index, unsigned int source_id, webrtc_media_type_e media_type, int bitrate) +{ + int ret = webrtc_media_source_set_encoder_bitrate(g_ad.conns[index].webrtc, source_id, media_type, bitrate); + RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret); + + g_print("webrtc_media_source_set_encoder_bitrate() success, source_id[%d], media_type[%s], bitrate[%d]\n", + source_id, g_webrtc_media_type_str[media_type], bitrate); +} + +static void _webrtc_media_source_get_encoder_bitrate(int index, unsigned int source_id, webrtc_media_type_e media_type) +{ + int bitrate; + int ret = webrtc_media_source_get_encoder_bitrate(g_ad.conns[index].webrtc, source_id, media_type, &bitrate); + RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret); + + g_print("webrtc_media_source_get_encoder_bitrate() success, source_id[%d], media_type[%s], bitrate[%d]\n", + source_id, g_webrtc_media_type_str[media_type], bitrate); +} + static void _webrtc_screen_source_set_crop(int index, unsigned int source_id, int x, int y, int w, int h, int is_vertical, int *width, int *height) { int ret = WEBRTC_ERROR_NONE; @@ -3162,10 +3181,10 @@ static void test_webrtc_media_source(char *cmd) break; } case CURRENT_STATUS_MEDIA_SOURCE_SET_PAUSE: - case CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE: { + case CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE: + case CURRENT_STATUS_MEDIA_SOURCE_SET_ENCODER_BITRATE: { static unsigned int id; static unsigned int media_type; - int new_state; value = atoi(cmd); switch (g_ad.input_count) { @@ -3178,11 +3197,12 @@ static void test_webrtc_media_source(char *cmd) g_ad.input_count++; break; case 2: - new_state = value; if (g_ad.menu_status == CURRENT_STATUS_MEDIA_SOURCE_SET_PAUSE) - _webrtc_media_source_set_pause(0, id, media_type, new_state); + _webrtc_media_source_set_pause(0, id, media_type, value); + else if (g_ad.menu_status == CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE) + _webrtc_media_source_set_mute(0, id, media_type, value); else - _webrtc_media_source_set_mute(0, id, media_type, new_state); + _webrtc_media_source_set_encoder_bitrate(0, id, media_type, value); id = media_type = 0; g_ad.input_count = 0; reset_menu_state(); @@ -3191,7 +3211,8 @@ static void test_webrtc_media_source(char *cmd) break; } case CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE: - case CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE: { + case CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE: + case CURRENT_STATUS_MEDIA_SOURCE_GET_ENCODER_BITRATE: { static unsigned int id; value = atoi(cmd); @@ -3203,8 +3224,10 @@ static void test_webrtc_media_source(char *cmd) case 1: if (g_ad.menu_status == CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE) _webrtc_media_source_get_pause(0, id, value - 1); - else + else if (g_ad.menu_status == CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE) _webrtc_media_source_get_mute(0, id, value - 1); + else + _webrtc_media_source_get_encoder_bitrate(0, id, value - 1); id = 0; g_ad.input_count = 0; reset_menu_state(); diff --git a/test/webrtc_test_menu.c b/test/webrtc_test_menu.c index 38f442bb..a201976b 100644 --- a/test/webrtc_test_menu.c +++ b/test/webrtc_test_menu.c @@ -58,6 +58,8 @@ menu_info_s g_menu_infos[] = { { "o", CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE, true }, { "mu", CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE, true }, { "mg", CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE, true }, + { "sb", CURRENT_STATUS_MEDIA_SOURCE_SET_ENCODER_BITRATE, true }, + { "gb", CURRENT_STATUS_MEDIA_SOURCE_GET_ENCODER_BITRATE, true }, { "v", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION, true }, { "l", CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_RESOLUTION, true }, { "f", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_FRAMERATE, true }, @@ -217,6 +219,8 @@ void display_menu_main(void) g_print("o. Get the media source pause\n"); g_print("mu. Mute/unmute media source\t"); g_print("mg. Get the media source mute\n"); + g_print("sb. Set encoder bitrate\t"); + g_print("gb. Get encoder bitrate\n"); g_print("v. Set video resolution\t"); g_print("l. Get video resolution\n"); g_print("f. Set video framerate\t"); @@ -353,6 +357,20 @@ 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_SET_ENCODER_BITRATE: + 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 target bitrate.\n"); + break; + case CURRENT_STATUS_MEDIA_SOURCE_GET_ENCODER_BITRATE: + 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; case CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION: if (get_appdata()->input_count == 0) g_print("*** input source id.\n"); diff --git a/test/webrtc_test_priv.h b/test/webrtc_test_priv.h index 51ac6d6e..89fb6530 100644 --- a/test/webrtc_test_priv.h +++ b/test/webrtc_test_priv.h @@ -97,22 +97,24 @@ enum { CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x09, CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0A, CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0B, - CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0C, - CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_RESOLUTION = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0D, - CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_FRAMERATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0E, - CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_FRAMERATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0F, - CURRENT_STATUS_CAMERA_SOURCE_SET_DEVICE_ID = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x10, - CURRENT_STATUS_CAMERA_SOURCE_GET_DEVICE_ID = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x11, - CURRENT_STATUS_FILE_SOURCE_SET_PATH = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x12, - CURRENT_STATUS_FILE_SOURCE_SET_LOOPING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x13, - CURRENT_STATUS_FILE_SOURCE_GET_LOOPING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x14, - CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_FORMAT = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x15, - CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_BUFFER_STATE_CHANGED_CB = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x16, - CURRENT_STATUS_MEDIA_PACKET_SOURCE_UNSET_BUFFER_STATE_CHANGED_CB = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x17, - CURRENT_STATUS_START_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x18, - CURRENT_STATUS_STOP_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x19, - CURRENT_STATUS_SCREEN_SOURCE_SET_CROP = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1A, - CURRENT_STATUS_SCREEN_SOURCE_UNSET_CROP = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1B, + CURRENT_STATUS_MEDIA_SOURCE_SET_ENCODER_BITRATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0C, + CURRENT_STATUS_MEDIA_SOURCE_GET_ENCODER_BITRATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0D, + CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0E, + CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_RESOLUTION = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x0F, + CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_FRAMERATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x10, + CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_FRAMERATE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x11, + CURRENT_STATUS_CAMERA_SOURCE_SET_DEVICE_ID = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x12, + CURRENT_STATUS_CAMERA_SOURCE_GET_DEVICE_ID = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x13, + CURRENT_STATUS_FILE_SOURCE_SET_PATH = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x14, + CURRENT_STATUS_FILE_SOURCE_SET_LOOPING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x15, + CURRENT_STATUS_FILE_SOURCE_GET_LOOPING = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x16, + CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_FORMAT = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x17, + CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_BUFFER_STATE_CHANGED_CB = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x18, + CURRENT_STATUS_MEDIA_PACKET_SOURCE_UNSET_BUFFER_STATE_CHANGED_CB = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x19, + CURRENT_STATUS_START_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1A, + CURRENT_STATUS_STOP_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1B, + CURRENT_STATUS_SCREEN_SOURCE_SET_CROP = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1C, + CURRENT_STATUS_SCREEN_SOURCE_UNSET_CROP = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x1D, /* 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, @@ -363,4 +365,4 @@ void _websocket_send_text_for_room(connection_s *conn, int remote_peer_id, const } #endif /* __cplusplus */ -#endif \ No newline at end of file +#endif -- 2.34.1