webrtc_test: Add menu to set/get encoder bitrate 55/279055/6 submit/tizen/20220812.094531
authorSangchul Lee <sc11.lee@samsung.com>
Fri, 29 Jul 2022 14:34:37 +0000 (23:34 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Wed, 10 Aug 2022 08:41:09 +0000 (17:41 +0900)
[Version] 0.3.201
[Issue Type] Add

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

index f2e72c130b5e36f50901f41d2e19d9e4d32f4da5..758ca9cd827d85e2f950a1ab12589464af5ccca4 100644 (file)
@@ -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
index ecb8f3679e776c91f34024387134eeed23d771bf..739a9431eacd24d9c42441b7f116430b7d2c1d7a 100644 (file)
@@ -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();
index 38f442bbfb40e4b659f69e403f1484a1858c4553..a201976b468832228b9e0fda12b09c3b339f7430 100644 (file)
@@ -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");
index 51ac6d6ee326c7f4e852e68d900d14b2193f3c21..89fb653041bba47e6b1fbee0ff325a5a064258a6 100644 (file)
@@ -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