From: Sangchul Lee Date: Tue, 30 Aug 2022 06:56:36 +0000 (+0900) Subject: webrtc_test_espp: Fix issue about calling esplusplayer_prepare_async() X-Git-Tag: submit/tizen/20220902.031026~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=deaa9e86d28a6f1c1cf0faf0524b447ae711cdd4;p=platform%2Fcore%2Fapi%2Fwebrtc.git webrtc_test_espp: Fix issue about calling esplusplayer_prepare_async() This patch fixed issues below 1. _prepare_async() function is called too early 2. Occasionally, redundant _prepare_async() function call happens [Version] 0.3.219 [Issue Type] Bug fix Change-Id: Iaca99089df929d385cf535a6accd4a0b80fc6a4c Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index d93125af..730b6aef 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.218 +Version: 0.3.219 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/test/webrtc_test.c b/test/webrtc_test.c index 1fb99e17..12235428 100644 --- a/test/webrtc_test.c +++ b/test/webrtc_test.c @@ -1875,7 +1875,6 @@ static void __track_added_cb(webrtc_h webrtc, webrtc_media_type_e type, unsigned conn->render.display_type, conn->render.display_type == WEBRTC_DISPLAY_TYPE_OVERLAY ? g_ad.win : conn->render.eo); #ifdef TIZEN_FEATURE_ESPP if (conn->render.espp.handle) { - conn->render.espp.video_track_preparing = true; if (conn->render.display_type == WEBRTC_DISPLAY_TYPE_OVERLAY) esplusplayer_set_display(conn->render.espp.handle, ESPLUSPLAYER_DISPLAY_TYPE_OVERLAY, g_ad.win); else if (conn->render.display_type == WEBRTC_DISPLAY_TYPE_EVAS) @@ -1906,10 +1905,8 @@ static void __track_added_cb(webrtc_h webrtc, webrtc_media_type_e type, unsigned int ret; g_print("Audio track is added, set stream_info[%p]\n", &conn->render.stream_info); #ifdef TIZEN_FEATURE_ESPP - if (conn->render.espp.handle) { /* TODO: apply stream info if the function is provided in espp */ - conn->render.espp.audio_track_preparing = true; + if (conn->render.espp.handle) /* TODO: apply stream info if the function is provided in espp */ return; - } #endif if (!conn->render.stream_info) { ret = sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &conn->render.stream_info); diff --git a/test/webrtc_test_espp.c b/test/webrtc_test_espp.c index cdc32f34..3290f4ab 100644 --- a/test/webrtc_test_espp.c +++ b/test/webrtc_test_espp.c @@ -45,8 +45,8 @@ void _espp_init(int index) g_mutex_init(&get_appdata()->conns[index].render.espp.mutex); g_cond_init(&get_appdata()->conns[index].render.espp.cond); - get_appdata()->conns[index].render.espp.audio_track_preparing = false; - get_appdata()->conns[index].render.espp.video_track_preparing = false; + get_appdata()->conns[index].render.espp.audio_track_preparing = true; + get_appdata()->conns[index].render.espp.video_track_preparing = true; g_print("espp create & open\n"); get_appdata()->conns[index].render.espp.handle = esplusplayer_create(); @@ -66,8 +66,8 @@ void _espp_deinit(int index) esplusplayer_destroy(get_appdata()->conns[index].render.espp.handle); get_appdata()->conns[index].render.espp.handle = NULL; - get_appdata()->conns[index].render.espp.audio_track_preparing = false; - get_appdata()->conns[index].render.espp.video_track_preparing = false; + get_appdata()->conns[index].render.espp.audio_track_preparing = true; + get_appdata()->conns[index].render.espp.video_track_preparing = true; g_mutex_clear(&get_appdata()->conns[index].render.espp.mutex); g_cond_clear(&get_appdata()->conns[index].render.espp.cond); } @@ -195,6 +195,7 @@ bool _espp_prepare_and_start(connection_s *conn, media_packet_h packet, webrtc_m bool is_audio = (type == WEBRTC_MEDIA_TYPE_AUDIO) ? true : false; bool *espp_track_preparing = is_audio ? &conn->render.espp.audio_track_preparing : &conn->render.espp.video_track_preparing; bool *espp_track_preparing_oppsite = is_audio ? &conn->render.espp.video_track_preparing : &conn->render.espp.audio_track_preparing; + bool *opposite_type_exist = is_audio ? &conn->encoded_video_frame_cb_is_set : &conn->encoded_audio_frame_cb_is_set; if (!conn) return false; @@ -214,7 +215,7 @@ bool _espp_prepare_and_start(connection_s *conn, media_packet_h packet, webrtc_m (void *)&conn->render.espp.video_info); esplusplayer_activate(conn->render.espp.handle, espp_infos[type].stream_type); - if (!(*espp_track_preparing_oppsite)) { + if (!*opposite_type_exist || !(*espp_track_preparing_oppsite)) { g_print("espp prepare async\n"); esplusplayer_prepare_async(conn->render.espp.handle);