tizencamerasrc: Set delta unit flag for encoded frame 84/263684/3
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 8 Sep 2021 06:19:21 +0000 (15:19 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Fri, 10 Sep 2021 02:11:40 +0000 (02:11 +0000)
[Version] 1.16.2-39
[Issue Type] Update

Change-Id: Ib7242e29e17831b0f372571ab0f9db01a1f479fc
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/gst-plugins-tizen.spec
tizencamerasrc/src/gsttizencamerasrc.c

index c487c73..bb073ae 100644 (file)
@@ -5,7 +5,7 @@
 Name:       gst-plugins-tizen
 Version:    1.16.2
 Summary:    GStreamer tizen plugins (common)
-Release:    38
+Release:    39
 Group:      Multimedia/Framework
 Url:        http://gstreamer.freedesktop.org/
 License:    LGPL-2.1+
index 0d6daca..a1df46a 100644 (file)
@@ -235,7 +235,7 @@ static gboolean gst_tizencamerasrc_capture_start(GstTizenCameraSrc *camerasrc);
 static gboolean gst_tizencamerasrc_capture_stop(GstTizenCameraSrc *camerasrc);
 static void gst_tizencamerasrc_error_handler(GstTizenCameraSrc *camerasrc, int ret);
 static GstBuffer *gst_tizencamerasrc_buffer_new(GstTizenCameraSrc *camerasrc,
-    camera_buffer_s *buffer, GstTizenCameraBufferType type, int stream_id);
+  camera_buffer_s *buffer, GstTizenCameraBufferType type, int stream_id, gboolean is_delta_frame);
 static void gst_tizencamerasrc_buffer_finalize(GstTizenCameraBuffer *buffer);
 static void gst_tizencamerasrc_set_video_format(GstTizenCameraSrc *camerasrc);
 static void gst_tizencamerasrc_set_capture_format(GstTizenCameraSrc *camerasrc);
@@ -260,7 +260,7 @@ GST_IMPLEMENT_TIZENCAMERASRC_CONTROL_METHODS(GstTizenCameraSrc, gst_tizencamera_
  * Implementations
  *******************************************************************************/
 static GstBuffer *gst_tizencamerasrc_buffer_new(GstTizenCameraSrc *camerasrc,
-    camera_buffer_s *buffer, GstTizenCameraBufferType type, int stream_id)
+  camera_buffer_s *buffer, GstTizenCameraBufferType type, int stream_id, gboolean is_delta_frame)
 {
   GstTizenCameraBuffer *new_buffer = NULL;
   GstMemory *memory = NULL;
@@ -279,7 +279,7 @@ static GstBuffer *gst_tizencamerasrc_buffer_new(GstTizenCameraSrc *camerasrc,
   if (buffer->num_bos > 0)
     is_tbm_used = TRUE;
 
-  GST_DEBUG_OBJECT(camerasrc, "is_tbm_used : %d", is_tbm_used);
+  GST_DEBUG_OBJECT(camerasrc, "is_tbm[%d], is_delta[%d]", is_tbm_used, is_delta_frame);
 
   /* allocate new buffer */
   new_buffer = g_new0(GstTizenCameraBuffer, 1);
@@ -294,6 +294,11 @@ static GstBuffer *gst_tizencamerasrc_buffer_new(GstTizenCameraSrc *camerasrc,
     goto _BUFFER_NEW_FAILED;
   }
 
+  if (is_delta_frame)
+    GST_BUFFER_FLAG_SET(new_buffer->buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+  else
+    GST_BUFFER_FLAG_UNSET(new_buffer->buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+
   /* set timestamp info */
   gst_tizencamerasrc_get_timeinfo(camerasrc, new_buffer->buffer);
 
@@ -807,7 +812,8 @@ static int __camera_preview_frame_cb(camera_buffer_s *buffer, camera_metadata_s
   }
 
   /* create new buffer */
-  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer, BUFFER_TYPE_PREVIEW, -1);
+  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer,
+    BUFFER_TYPE_PREVIEW, -1, (meta ? meta->is_delta_frame : FALSE));
   if (!gst_buffer) {
     GST_ERROR_OBJECT(camerasrc, "new buffer allocation failed. size %u", buffer->total_size);
     hal_camera_release_preview_buffer(camerasrc->hal_handle, buffer->index);
@@ -869,7 +875,8 @@ static int __camera_extra_preview_frame_cb(camera_buffer_s *buffer, camera_metad
   }
 
   /* create new buffer and sample */
-  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer, BUFFER_TYPE_EXTRA_PREVIEW, stream_id);
+  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer,
+    BUFFER_TYPE_EXTRA_PREVIEW, stream_id, (meta ? meta->is_delta_frame : FALSE));
   if (!gst_buffer) {
     GST_ERROR("new buffer allocation failed. size %u", buffer->total_size);
     goto _EXTRA_PREVIEW_FRAME_CB_DONE;
@@ -929,7 +936,8 @@ static int __camera_video_frame_cb(camera_buffer_s *buffer, camera_metadata_s *m
   }
 
   /* create new buffer and sample */
-  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer, BUFFER_TYPE_VIDEO, -1);
+  gst_buffer = gst_tizencamerasrc_buffer_new(camerasrc, buffer,
+    BUFFER_TYPE_VIDEO, -1, (meta ? meta->is_delta_frame : FALSE));
   if (!gst_buffer) {
     GST_ERROR("new buffer allocation failed. size %u", buffer->total_size);
     goto _VIDEO_FRAME_CB_DONE;