webrtc_source: Fix invalid use of capsfilter 14/264914/1
authorbackto.kim <backto.kim@samsung.com>
Tue, 5 Oct 2021 05:13:38 +0000 (14:13 +0900)
committerbackto.kim <backto.kim@samsung.com>
Tue, 5 Oct 2021 05:13:38 +0000 (14:13 +0900)
[Version] 0.2.114
[Issue Type] Improvement

Change-Id: I98dc18b2139c767f6d917962d1e5d613a679d37b

packaging/capi-media-webrtc.spec
src/webrtc_source.c

index ae6fa979c50ca5a9eb9f119bb2c7c9521692f3c7..cf1513552e74ae48c7e499e017adce2757a60c0a 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.2.113
+Version:    0.2.114
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index aeb583d1f36322cfd3bea6f12f2e31ce649d69f6..ee5ebb2207714e4c861538dc530d0c298fdf89eb 100644 (file)
@@ -854,7 +854,7 @@ static int __create_rest_of_elements(webrtc_s *webrtc, webrtc_gst_slot_s *source
                        if ((sink_caps = __make_default_encoded_caps(source, &webrtc->ini, NULL))) {
                                PRINT_CAPS(sink_caps, "capsfilter");
                                g_object_set(G_OBJECT(capsfilter), "caps", sink_caps, NULL);
-                               gst_caps_unref(sink_caps);
+                               source->av[idx].render.appsrc_caps = sink_caps;
                        }
 
                        source->av[idx].render.need_decoding = true;
@@ -866,8 +866,10 @@ static int __create_rest_of_elements(webrtc_s *webrtc, webrtc_gst_slot_s *source
                if ((sink_caps = __make_default_raw_caps(source, &webrtc->ini))) {
                        PRINT_CAPS(sink_caps, "capsfilter");
                        g_object_set(G_OBJECT(capsfilter), "caps", sink_caps, NULL);
-                       gst_caps_unref(sink_caps);
+                       source->av[idx].render.appsrc_caps = sink_caps;
                }
+
+               __add_probe_to_pad_for_render(source, idx, gst_element_get_static_pad(capsfilter, "src"), __source_data_probe_cb);
        }
 
        if (source->type == WEBRTC_MEDIA_SOURCE_TYPE_SCREEN && !source->zerocopy_enabled) {
@@ -903,7 +905,6 @@ static int __create_rest_of_elements(webrtc_s *webrtc, webrtc_gst_slot_s *source
        g_free(encoder_name);
 
        source->av[idx].render.need_decoding = false;
-       __add_probe_to_pad_for_render(source, idx, gst_element_get_static_pad(capsfilter, "src"), __source_data_probe_cb);
 
 skip_encoder:
        CREATE_ELEMENT_FROM_REGISTRY(elem_info, GST_KLASS_NAME_PAYLOADER_RTP,
@@ -935,10 +936,6 @@ skip_encoder:
 
        g_free(media_type);
 
-       g_object_get(G_OBJECT(capsfilter), "caps", &sink_caps, NULL);
-       if (sink_caps)
-               source->av[idx].render.appsrc_caps = sink_caps;
-
        return WEBRTC_ERROR_NONE;
 
 error: