Do not keep the non-zero-copy buffer 75/266575/2 accepted/tizen/unified/20211125.003814 submit/tizen/20211123.105159
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 15 Nov 2021 10:34:59 +0000 (19:34 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 16 Nov 2021 09:46:05 +0000 (18:46 +0900)
- The zero-copy buffer should not be released until it's returned from user,
  because if it's released, it could be updated while it's being used.
  On the other hand, the non-zero-copy buffer is copied,
  so we don't need to keep it not to be released.

[Version] 0.3.50
[Issue Type] Improvement

Change-Id: I27461808f5c1e9ab4b0a1f692ca715d3e273de41
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index 0a30fc2..3766013 100644 (file)
@@ -5758,17 +5758,16 @@ muse_camera_export_data *camera_export_data_new_from_stream(MMCamcorderVideoStre
                                break;
                        }
                }
+
+               /* The buffer will be released once returned from the user. */
+               if (stream->internal_buffer)
+                       export_data->internal_buffer = gst_buffer_ref((GstBuffer *)export_data->internal_buffer);
        }
 
        CAM_LOG_DEBUG("bo[%p/%p], bo_fd[%d/%d], buffer_fd[%d/%d/%d]",
                export_data->bo, export_data->data_bo, export_data->fd, export_data->data_fd,
                export_data->buffer_fd[0], export_data->buffer_fd[1], export_data->buffer_fd[2]);
 
-       if (stream->internal_buffer) {
-               export_data->internal_buffer = stream->internal_buffer;
-               gst_buffer_ref((GstBuffer *)export_data->internal_buffer);
-       }
-
        return export_data;
 //LCOV_EXCL_START
 _EXPORT_DATA_ERROR:
index 533214f..b421d2d 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.49
+Version:    0.3.50
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0