omxbufferpool: Fixed fd leak 23/221423/7 accepted/tizen/unified/20200113.130644 submit/tizen/20200110.030320
authorGilbok Lee <gilbok.lee@samsung.com>
Thu, 2 Jan 2020 08:03:55 +0000 (17:03 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Fri, 3 Jan 2020 05:40:32 +0000 (14:40 +0900)
- Replace gst_buffer_get_memory() by gst_buffer_peek_memory()

Change-Id: I9bb7725f189bdb7e10cd4bd6e63ddbb4264d3777

omx/gstomxbufferpool.c

index 0177f7f..da84dbf 100644 (file)
@@ -132,7 +132,7 @@ gst_omx_video_memory_map (GstVideoMeta * meta, guint plane, GstMapInfo * info,
   gint err;
   tbm_surface_info_s surface_info;
   GstBuffer *buffer = meta->buffer;
-  GstMemory *mem = gst_buffer_get_memory (buffer, 0);
+  GstMemory *mem = gst_buffer_peek_memory (buffer, 0);
 
   if (!gst_is_tizen_memory (mem)) {
     GST_ERROR ("Invalid memory");
@@ -145,6 +145,8 @@ gst_omx_video_memory_map (GstVideoMeta * meta, guint plane, GstMapInfo * info,
     return FALSE;
   }
 
+  tbm_surface_unmap (((GstTizenMemory *)mem)->surface);
+
   if (surface_info.num_planes <= plane) {
     GST_ERROR ("Invalid format");
     return FALSE;
@@ -153,8 +155,6 @@ gst_omx_video_memory_map (GstVideoMeta * meta, guint plane, GstMapInfo * info,
   *data = surface_info.planes[plane].ptr;
   *stride = surface_info.planes[plane].stride;
 
-  tbm_surface_unmap (((GstTizenMemory *)mem)->surface);
-
   GST_DEBUG ("_video_memory_map -> plane : %d, data : %p, stride : %d",
       plane, *data, *stride);
 
@@ -165,7 +165,7 @@ gboolean
 gst_omx_video_memory_unmap (GstVideoMeta * meta, guint plane, GstMapInfo * info)
 {
   GstBuffer *buffer = meta->buffer;
-  GstMemory *mem = gst_buffer_get_memory (buffer, 0);
+  GstMemory *mem = gst_buffer_peek_memory (buffer, 0);
 
   if (!gst_is_tizen_memory (mem)) {
     GST_ERROR ("Invalid memory");
@@ -173,6 +173,7 @@ gst_omx_video_memory_unmap (GstVideoMeta * meta, guint plane, GstMapInfo * info)
   }
 
   GST_DEBUG ("_video_memory_unmap -> plane : %d", plane);
+
   return TRUE;
 }
 #endif