From: Sangchul Lee Date: Thu, 8 Apr 2021 08:17:15 +0000 (+0900) Subject: webrtc_test: Add missing gst_buffer_unref() X-Git-Tag: submit/tizen/20210729.023123~97 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ffe701fced4e379aca06e2735f84a68f48e85ab4;p=platform%2Fcore%2Fapi%2Fwebrtc.git webrtc_test: Add missing gst_buffer_unref() [Version] 0.1.144 [Issue Type] Test application Change-Id: I3e6b69854157ec5743475d6422605295dc26f1f5 Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index d61aa7aa..1e1efc0c 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.1.143 +Version: 0.1.144 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/test/webrtc_test.c b/test/webrtc_test.c index 005eac47..644f6a5b 100644 --- a/test/webrtc_test.c +++ b/test/webrtc_test.c @@ -1845,7 +1845,7 @@ static int __fill_gst_buffer_mapped_data_from_packet(GstBuffer *buffer, media_pa return 0; } -GstBuffer *__get_buffer_from_packet(media_packet_h packet) +GstBuffer *__alloc_buffer_from_packet(media_packet_h packet) { int ret; guchar *data_ptr; @@ -1854,13 +1854,6 @@ GstBuffer *__get_buffer_from_packet(media_packet_h packet) guint64 dts = 0; guint64 duration = 0; guint64 size = 0; - GstBuffer *buffer = NULL; - - media_packet_get_extra(packet, (void **)&buffer); - if (buffer) { - g_print("external gstbuffer[%p]\n", buffer); - return buffer; - } media_packet_get_buffer_data_ptr(packet, (void **)&data_ptr); if (data_ptr == NULL) { @@ -1933,17 +1926,25 @@ static void __stream_handoff_cb(GstElement *object, GstBuffer *buffer, GstPad *p } #ifdef __DEBUG_VALIDATE_MEDIA_PACKET_SOURCE__ - GstBuffer *buffer_from_packet = __get_buffer_from_packet(packet); - if (!buffer_from_packet) { - media_packet_destroy(packet); - g_printerr("buffer_from_packet is NULL\n"); - return; + GstBuffer *buffer_from_packet = NULL; + bool is_new_buffer = false; + media_packet_get_extra(packet, (void **)&buffer_from_packet); + if (buffer_from_packet) { + g_print("external gstbuffer[%p]\n", buffer_from_packet); + } else { + buffer_from_packet = __alloc_buffer_from_packet(packet); + if (!buffer_from_packet) { + media_packet_destroy(packet); + return; + } + is_new_buffer = true; } - GstFlowReturn gst_ret = GST_FLOW_OK; g_signal_emit_by_name(G_OBJECT(packet_source->appsrc), "push-buffer", buffer_from_packet, &gst_ret, NULL); if (gst_ret != GST_FLOW_OK) g_printerr("failed to 'push-buffer', gst_ret[0x%x]\n", gst_ret); + if (is_new_buffer) + gst_buffer_unref(buffer_from_packet); #else if (webrtc_media_packet_source_push_packet(packet_source->webrtc, packet_source->source_id, packet) != WEBRTC_ERROR_NONE) g_printerr("failed to webrtc_media_packet_source_push_packet()\n");