Hi,
We don’t observe the issue by applying following patch to 13_multi_camera:
diff --git a/multimedia_api/ll_samples/samples/13_multi_camera/main.cpp b/multimedia_api/ll_samples/samples/13_multi_camera/main.cpp
index 49a9ab8..0613f0b 100644
--- a/multimedia_api/ll_samples/samples/13_multi_camera/main.cpp
+++ b/multimedia_api/ll_samples/samples/13_multi_camera/main.cpp
@@ -39,6 +39,8 @@
#include <stdio.h>
#include <stdlib.h>
+#include <opencv2/opencv.hpp>
+
using namespace Argus;
using namespace EGLStream;
@@ -259,7 +261,7 @@ bool ConsumerThread::threadInitialize()
input_params.width = STREAM_SIZE.width();
input_params.height = STREAM_SIZE.height();
input_params.layout = NvBufferLayout_Pitch;
- input_params.colorFormat = NvBufferColorFormat_NV12;
+ input_params.colorFormat = NvBufferColorFormat_ABGR32;
input_params.nvbuf_tag = NvBufferTag_VIDEO_CONVERT;
NvBufferCreateEx (&m_compositedFrame, &input_params);
@@ -333,8 +335,8 @@ bool ConsumerThread::threadExecute()
if (!m_dmabufs[i])
{
m_dmabufs[i] = iNativeBuffer->createNvBuffer(iEglOutputStreams[i]->getResolution(),
- NvBufferColorFormat_YUV420,
- NvBufferLayout_BlockLinear);
+ NvBufferColorFormat_ABGR32,
+ NvBufferLayout_Pitch);
if (!m_dmabufs[i])
CONSUMER_PRINT("\tFailed to create NvBuffer\n");
}
@@ -349,7 +351,21 @@ bool ConsumerThread::threadExecute()
{
// Composite multiple input to one frame
NvBufferComposite(m_dmabufs, m_compositedFrame, &m_compositeParam);
- g_renderer->render(m_compositedFrame);
+ void *pdata = NULL;
+
+ NvBufferMemMap(m_compositedFrame, 0, NvBufferMem_Read, &pdata);
+ NvBufferMemSyncForCpu(m_compositedFrame, 0, &pdata);
+
+ cv::Mat imgbuf = cv::Mat(STREAM_SIZE.height(),
+ STREAM_SIZE.width(),
+ CV_8UC4, pdata);
+ cv::Mat display_img;
+ cvtColor(imgbuf, display_img, CV_RGBA2BGR);
+
+ NvBufferMemUnMap(m_compositedFrame, 0, &pdata);
+
+ cv::imshow("img", display_img);
+ cv::waitKey(1);
}
else
g_renderer->render(m_dmabufs[0]);
Makefile:
+CPPFLAGS+=`pkg-config --cflags opencv`
+LDFLAGS+=`pkg-config --libs opencv`
Maybe certain parameters in NvBufferCompositeParams are not well configured in your implementation?