GST_ERROR_OBJECT (self, "Width or height do not match");
goto done;
}
-
+#if 0
/* Same strides and everything */
if (gst_buffer_get_size (inbuf) ==
outbuf->omx_buf->nAllocLen - outbuf->omx_buf->nOffset) {
ret = TRUE;
goto done;
}
-
+#endif
/* Different strides */
switch (info->finfo->format) {
}
case GST_VIDEO_FORMAT_ST12:
case GST_VIDEO_FORMAT_SN12:{
- GstMemory* ext_memory = gst_buffer_peek_memory(inbuf, 1);
- GstMapInfo ext_info = GST_MAP_INFO_INIT;
- MMVideoBuffer *mm_vbuffer = NULL;
-
- if (!ext_memory) {
- GST_WARNING_OBJECT (self, "null MMVideoBuffer pointer in hw color format. skip this.");
- goto done;
- }
+ GstMemory* ext_memory = gst_buffer_peek_memory(inbuf, 1);
+ GstMapInfo ext_info = GST_MAP_INFO_INIT;
+ MMVideoBuffer *mm_vbuffer = NULL;
+ tbm_bo_handle handle_bo;
+
+ if (!ext_memory) {
+ GST_WARNING_OBJECT (self, "null MMVideoBuffer pointer in hw color format. skip this.");
+ goto done;
+ }
- gst_memory_map(ext_memory, &ext_info, GST_MAP_READ);
- mm_vbuffer = (MMVideoBuffer*)ext_info.data;
- gst_memory_unmap(ext_memory, &ext_info);
+ gst_memory_map(ext_memory, &ext_info, GST_MAP_READ);
+ mm_vbuffer = (MMVideoBuffer*)ext_info.data;
+ gst_memory_unmap(ext_memory, &ext_info);
- if (mm_vbuffer != NULL && mm_vbuffer->type == MM_VIDEO_BUFFER_TYPE_TBM_BO) {
+ if (mm_vbuffer != NULL && mm_vbuffer->type == MM_VIDEO_BUFFER_TYPE_TBM_BO) {
- if (mm_vbuffer->handle.dmabuf_fd[0] == 0)
- mm_vbuffer->handle.dmabuf_fd[0] = gst_omx_tbm_get_bo_fd(mm_vbuffer->handle.bo[0]);
+ if (mm_vbuffer->handle.dmabuf_fd[0] == 0) {
+ handle_bo = tbm_bo_get_handle(mm_vbuffer->handle.bo[0], TBM_DEVICE_MM);
+ mm_vbuffer->handle.dmabuf_fd[0] = handle_bo.u32;
+ }
- if (mm_vbuffer->handle.dmabuf_fd[1] == 0)
- mm_vbuffer->handle.dmabuf_fd[1] = gst_omx_tbm_get_bo_fd(mm_vbuffer->handle.bo[1]);
+ if (mm_vbuffer->handle.dmabuf_fd[1] == 0) {
+ handle_bo = tbm_bo_get_handle(mm_vbuffer->handle.bo[1], TBM_DEVICE_MM);
+ mm_vbuffer->handle.dmabuf_fd[1] = handle_bo.u32;
+ }
- if (mm_vbuffer->data[0] == NULL)
- mm_vbuffer->data[0] = gst_omx_tbm_get_bo_ptr(mm_vbuffer->handle.bo[0]);
+ if (mm_vbuffer->data[0] == NULL) {
+ handle_bo = tbm_bo_get_handle(mm_vbuffer->handle.bo[0], TBM_DEVICE_CPU);
+ mm_vbuffer->data[0] = handle_bo.ptr;
+ }
- if (mm_vbuffer->data[1] == NULL)
- mm_vbuffer->data[1] = gst_omx_tbm_get_bo_ptr(mm_vbuffer->handle.bo[1]);
+ if (mm_vbuffer->data[1] == NULL){
+ handle_bo = tbm_bo_get_handle(mm_vbuffer->handle.bo[1], TBM_DEVICE_CPU);
+ mm_vbuffer->data[1] = handle_bo.ptr;
+ }
- GST_LOG_OBJECT (self, "enc. fd[0]:%d fd[1]:%d a[0]:%p, a[1]:%p, w[0]:%d h[0]:%d %d, %d, buf_share_method:%d",
- mm_vbuffer->handle.dmabuf_fd[0], mm_vbuffer->handle.dmabuf_fd[1], mm_vbuffer->data[0], mm_vbuffer->data[1],
- mm_vbuffer->width[0], mm_vbuffer->height[0], mm_vbuffer->width[1], mm_vbuffer->height[1], mm_vbuffer->type);
- } else {
+ GST_LOG_OBJECT (self, "enc. fd[0]:%d fd[1]:%d a[0]:%p, a[1]:%p, w[0]:%d h[0]:%d %d, %d, buf_share_method:%d",
+ mm_vbuffer->handle.dmabuf_fd[0], mm_vbuffer->handle.dmabuf_fd[1], mm_vbuffer->data[0], mm_vbuffer->data[1],
+ mm_vbuffer->width[0], mm_vbuffer->height[0], mm_vbuffer->width[1], mm_vbuffer->height[1], mm_vbuffer->type);
+ } else {
GST_WARNING_OBJECT (self, "enc input buf has wrong buf_share_method[%d]", mm_vbuffer->type);
- }
+ }
- outbuf->omx_buf->nAllocLen = sizeof(MMVideoBuffer);
- outbuf->omx_buf->nFilledLen = sizeof(MMVideoBuffer);
- memcpy (outbuf->omx_buf->pBuffer, mm_vbuffer, sizeof(MMVideoBuffer));
+ outbuf->omx_buf->nAllocLen = sizeof(MMVideoBuffer);
+ outbuf->omx_buf->nFilledLen = sizeof(MMVideoBuffer);
+ memcpy (outbuf->omx_buf->pBuffer, mm_vbuffer, sizeof(MMVideoBuffer));
#ifdef CODEC_ENC_INPUT_DUMP
- gst_omx_video_enc_input_dump(mm_vbuffer);
+ gst_omx_video_enc_input_dump(mm_vbuffer);
#endif
- ret = TRUE;
- break;
+ ret = TRUE;
+ break;
}
default:
GST_ERROR_OBJECT (self, "Unsupported format");