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);
* 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;
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);
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);
}
/* 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);
}
/* 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;
}
/* 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;