No image on monitor during running nvsipl_camera based application

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
2.1.0
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Issue Description
Hello,
I’m working on the nvsiple_camera based application and slightly modified the example code under ../nvmedia/nvsipl/test/camera/main.cpp.
As I run the application as host client, it has it’s own executable and the excutable triggers the Init function which was main function in main.cpp.

(before)
int main(int argc, char *argv)

(after)
int PhantomSipl::Init(CCmdLineParser& params)

In this implementation, it worked well with the AR0820 camera which is connected to a1 port. I was able to see the images from ISP0,1,2 on the monitor.

Then, I changed the code again to add a callback function into the Init function in main.cpp

(before)
int PhantomSipl::Init(CCmdLineParser& params)

(After)
int PhantomSipl::Init(CCmdLineParser& params, std::function<void(NvSciBufObj* buffer)> callback_fnptr)

And modified CNvSIPLConsumer.hpp to insert the code below in OnFrameAvailable function.
(right above auto status = m_pComposite->Post(m_uID, pNvMBuffer);)

    if (m_pUserFunction != nullptr) {
      NvSciBufObj buffer = pNvMBuffer->GetNvSciBufImage();
      m_pUserFunction(m_uID, &buffer);

After this chage, I can see that the callback is hooked properly even it returns without any operation, but suddenly none of images on the monitor.

Can you help me out to figure out what makes the image on the monitor disappeared?

Dear @wooseok.won,
Is it possible to share repro code?

Dear @SivaRamaKrishnaNV, please find the attached file.
It contains the nvsipl_camera example code for “before” and “after”
nvsipl_camera.tar.gz (19.9 KB)

It’s resolved by put upComposite.get() into the 1st argument in CNvSIPLConsumer’s Init.

            status = upCons->Init(upComposite.get(),
                                  nullptr,
                                  callback_fnptr,
                                  uID,
                                  uSensor,
                                  eOutput,
                                  pProfiler,
                                  pFrameFeeder,
                                  cmdline_.sFiledumpPrefix,
                                  cmdline_.uNumSkipFrames,
                                  cmdline_.uNumWriteFrames);

the application implementation was

            status = upCons->Init(nullptr,
                                  nullptr,
                                  callback_fnptr,
                                  uID,
                                  uSensor,
                                  eOutput,
                                  pProfiler,
                                  pFrameFeeder,
                                  cmdline_.sFiledumpPrefix,
                                  cmdline_.uNumSkipFrames,
                                  cmdline_.uNumWriteFrames);

Can you please explain briefly about the mechanism how the code change(upComposite.get()) makes displaying images?