From: Sangchul Lee Date: Tue, 30 Aug 2022 08:22:38 +0000 (+0900) Subject: webrtc_sink/source: Fix resource leaks X-Git-Tag: submit/tizen/20220902.031026~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fcbaa71461e76ae0e9ee14981430980ea491bb9f;p=platform%2Fcore%2Fapi%2Fwebrtc.git webrtc_sink/source: Fix resource leaks [Version] 0.3.221 [Issue Type] Coverity defect Change-Id: I318bcb7d6e962df59c36988d02d89d785dc23a7b Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 5a64d5ce..ef5b4e98 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.220 +Version: 0.3.221 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc_sink.c b/src/webrtc_sink.c index bdad118e..a34e5335 100644 --- a/src/webrtc_sink.c +++ b/src/webrtc_sink.c @@ -175,10 +175,14 @@ static int __build_videosink(webrtc_s *webrtc, GstElement *decodebin, GstPad *sr /* FIXME: The order of setting property and display is important when 'use-tbm' is true. The reverse does not work */ gst_video_overlay_set_wl_window_wl_surface_id(GST_VIDEO_OVERLAY(videosink), sink->display->overlay_surface_id); - RET_VAL_IF(!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "display-geometry-method"), - WEBRTC_ERROR_INVALID_OPERATION, "could not find 'display-geometry-method' property"); - RET_VAL_IF(!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "visible"), - WEBRTC_ERROR_INVALID_OPERATION, "could not find 'visible' property"); + if (!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "display-geometry-method")) { + LOG_ERROR("could not find 'display-geometry-method' property"); + goto exit; + } + if (!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "visible")) { + LOG_ERROR("could not find 'visible' property"); + goto exit; + } } else if (sink->display->type == WEBRTC_DISPLAY_TYPE_EVAS) { GstCaps *caps; diff --git a/src/webrtc_source.c b/src/webrtc_source.c index 429aab11..ad9b4ba0 100644 --- a/src/webrtc_source.c +++ b/src/webrtc_source.c @@ -2280,10 +2280,14 @@ static int __build_loopback_videosink(webrtc_gst_slot_s *source, GstElement *lin if (source->display->type == WEBRTC_DISPLAY_TYPE_OVERLAY || source->display->type == WEBRTC_DISPLAY_TYPE_ECORE_WL) { gst_video_overlay_set_wl_window_wl_surface_id(GST_VIDEO_OVERLAY(videosink), source->display->overlay_surface_id); - RET_VAL_IF(!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "display-geometry-method"), - WEBRTC_ERROR_INVALID_OPERATION, "could not find 'display-geometry-method' property"); - RET_VAL_IF(!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "visible"), - WEBRTC_ERROR_INVALID_OPERATION, "could not find 'visible' property"); + if (!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "display-geometry-method")) { + LOG_ERROR("could not find 'display-geometry-method' property"); + goto exit; + } + if (!g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(videosink)), "visible")) { + LOG_ERROR("could not find 'visible' property"); + goto exit; + } g_object_set(G_OBJECT(videosink), "display-geometry-method", (gint)source->display->mode, /* 0: letter box, 1: origin size, 2: full screen */ "visible", (gboolean)source->display->visible,