modify S420 format caps nego, add bo handle in mm_video_buf 50/153750/2
authorKwangCheol Lee <kclee@dignsys.com>
Fri, 29 Sep 2017 08:51:36 +0000 (17:51 +0900)
committerKwangCheol Lee <kclee@dignsys.com>
Mon, 16 Oct 2017 04:03:40 +0000 (13:03 +0900)
Change-Id: I90f719aca2aa61dd312ac9b374c91c0dffcbde6d
Signed-off-by: KwangCheol Lee <kclee@dignsys.com>
src/Makefile.am
src/gstnxvideodec.c

index 6e49c9d5ee169e6ace2d1e6d8d58bb76956ba0ae..9542366a25258839fd5317863c408b9a0581c012 100644 (file)
@@ -17,6 +17,7 @@ libgstnxvideodec_la_SOURCES = gstnxvideodec.c decoder.c
 libgstnxvideodec_la_CFLAGS = \
        $(GST_CFLAGS)           \
        $(MM_COMMON_CFLAGS)     \
+       -DTIZEN_FEATURE_ARTIK530 \
        -I$(includedir)
 
 libgstnxvideodec_la_LIBADD = \
index 252dafa45e727c569f561cf483e4bf3356cd0208..fdc4e5b8f09ca483efd898128e304fda35d4f803 100644 (file)
@@ -70,7 +70,7 @@
 
 // This SUPPORT_NO_MEMORY_COPY function is disabled now.
 // if the video decoder mmap is supported this function, it will be enabled.
-#define SUPPORT_NO_MEMORY_COPY 0
+#define SUPPORT_NO_MEMORY_COPY 1
 
 GST_DEBUG_CATEGORY_STATIC (gst_nxvideodec_debug_category);
 #define GST_CAT_DEFAULT gst_nxvideodec_debug_category
@@ -138,7 +138,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("video/x-raw, "
-        "format = (string) { I420 }, "
+        "format = (string) { S420 }, "
         "width = (int) [ 64, 1920 ], " "height = (int) [ 64, 1088 ] ")
 
     );
@@ -465,12 +465,12 @@ gst_nxvideodec_set_format (GstVideoDecoder * pDecoder,
   }
 
   pOutputState =
-      gst_video_decoder_set_output_state (pDecoder, GST_VIDEO_FORMAT_I420,
+      gst_video_decoder_set_output_state (pDecoder, GST_VIDEO_FORMAT_S420,
       pDecHandle->width, pDecHandle->height, pNxVideoDec->pInputState);
 
   pOutputState->caps = gst_caps_new_simple ("video/x-raw",
       "format", G_TYPE_STRING,
-      gst_video_format_to_string (GST_VIDEO_FORMAT_I420), "width", G_TYPE_INT,
+      gst_video_format_to_string (GST_VIDEO_FORMAT_S420), "width", G_TYPE_INT,
       pDecHandle->width, "height", G_TYPE_INT, pDecHandle->height, "framerate",
       GST_TYPE_FRACTION, pDecHandle->fpsNum, pDecHandle->fpsDen, NULL);
 
@@ -935,9 +935,11 @@ nxvideodec_mmvideobuf_copy (NX_V4L2DEC_OUT * pDecOut)
     pMMVideoBuf->size[0] = pDecOut->hImg.size[0];
     pMMVideoBuf->data[0] = pDecOut->hImg.pBuffer[0];
     pMMVideoBuf->handle_num = 1;
-    /* TODO need to convert from gem name to bo
-    pMMVideoBuf->handle.bo[0] = pDecOut->hImg.flink[0];
-    */
+#ifdef TIZEN_FEATURE_ARTIK530
+    pMMVideoBuf->handle.bo[0] = pDecOut->hImg.bo[0];
+    if (!pMMVideoBuf->handle.bo[0])
+      GST_ERROR ("bo = null\n");
+#endif
   } else if (3 == pDecOut->hImg.planes) {
     pMMVideoBuf->type = MM_VIDEO_BUFFER_TYPE_TBM_BO;
     pMMVideoBuf->format = MM_PIXEL_FORMAT_I420;
@@ -954,11 +956,17 @@ nxvideodec_mmvideobuf_copy (NX_V4L2DEC_OUT * pDecOut)
     pMMVideoBuf->data[1] = pDecOut->hImg.pBuffer[1];
     pMMVideoBuf->data[2] = pDecOut->hImg.pBuffer[2];
     pMMVideoBuf->handle_num = 3;
-    /* TODO need to convert from gem name to bo
-    pMMVideoBuf->handle.bo[0] = pDecOut->hImg.flink[0];
-    pMMVideoBuf->handle.bo[1] = pDecOut->hImg.flink[1];
-    pMMVideoBuf->handle.bo[2] = pDecOut->hImg.flink[2];
-    */
+#ifdef TIZEN_FEATURE_ARTIK530
+    pMMVideoBuf->handle.bo[0] = pDecOut->hImg.bo[0];
+    pMMVideoBuf->handle.bo[1] = pDecOut->hImg.bo[1];
+    pMMVideoBuf->handle.bo[2] = pDecOut->hImg.bo[2];
+    if (!pMMVideoBuf->handle.bo[0])
+      GST_ERROR ("bo[0] = null\n");
+    if (!pMMVideoBuf->handle.bo[1])
+      GST_ERROR ("bo[1] = null\n");
+    if (!pMMVideoBuf->handle.bo[2])
+      GST_ERROR ("bo[2] = null\n");
+#endif
   }
 
   pMeta = gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,