From: Eunhwa Kang Date: Fri, 27 Sep 2024 00:29:34 +0000 (+0900) Subject: don't release tbm surface if h/w codec case, add STV0 X-Git-Tag: accepted/tizen/9.0/unified/20241125.180024~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F86%2F320786%2F1;p=platform%2Fcore%2Fapi%2Fwebrtc.git don't release tbm surface if h/w codec case, add STV0 Change-Id: Ief66d638f32f95fd115934bbce32cbc44797d8cf --- diff --git a/src/webrtc_display.c b/src/webrtc_display.c index ba00d7d2..07ccb26c 100644 --- a/src/webrtc_display.c +++ b/src/webrtc_display.c @@ -57,6 +57,7 @@ static int __get_pixel_format(unsigned int fourcc) switch (fourcc) { case GST_MAKE_FOURCC('S', 'N', '1', '2'): case GST_MAKE_FOURCC('N', 'V', '1', '2'): + case GST_MAKE_FOURCC('S', 'T', 'V', '0'): return MM_PIXEL_FORMAT_NV12; case GST_MAKE_FOURCC('S', 'T', '1', '2'): return MM_PIXEL_FORMAT_NV12T; @@ -492,18 +493,19 @@ static int __media_packet_finalize_cb(media_packet_h m_packet, int error_code, v RET_VAL_IF(m_packet == NULL, MEDIA_PACKET_FINALIZE, "m_packet is NULL"); RET_VAL_IF(finalize_data == NULL, MEDIA_PACKET_FINALIZE, "finalize_data is NULL"); - if (media_packet_get_tbm_surface(m_packet, &ts) != MEDIA_PACKET_ERROR_NONE) + if (finalize_data->info->internal_buffer) { + gst_buffer_unref((GstBuffer *)finalize_data->info->internal_buffer); + } else { /* sw codec */ + if (media_packet_get_tbm_surface(m_packet, &ts) != MEDIA_PACKET_ERROR_NONE) LOG_ERROR("failed to media_packet_get_tbm_surface()"); - if (ts) { - LOG_VERBOSE("tbm surface[%p] is destroyed", ts); - tbm_surface_destroy(ts); - } + if (ts) { + LOG_VERBOSE("tbm surface[%p] is destroyed", ts); + tbm_surface_destroy(ts); + } - if (finalize_data->info->internal_buffer) { - gst_buffer_unref((GstBuffer *)finalize_data->info->internal_buffer); - } else if (finalize_data->info->bo[0]) { /* sw codec */ - _release_tbm_bo(finalize_data->tbm, finalize_data->info->bo[0]); + if (finalize_data->info->bo[0]) + _release_tbm_bo(finalize_data->tbm, finalize_data->info->bo[0]); } g_free(finalize_data->info);