This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM36X Accessing Video RAW data buffer outside the av capture

Hi All,

We are integrating an application, in that we need to feed the app with RAW video frames.Can we access RAW data outside the av_capture. Is it possible to do so? Also, from where we can get the RAW frames?

Thank you in advance.

  • Hi Aditya,

    What is the software release that you are using here?

    BR
    -Kaushal
  • Hi Kaushal,

    Thanks for the prompt reply.

    We are using ipnc_rdk_dm36x_5.1 based SDK
  • Hi Aditya,

    I forwarded this question to the experts. They will reply to this thread

    Thank you !

    BR
    -Kaushal
  • I think in DM365 IPNC RDK framework, the buffer comes to user space before going to compression engine HDVICP. So you copy your RAW frames at that point of time before providing to the compressor engine.
  • Hello Aditya,

    I'll answer your questions briefly and sequentially in the following paragraphs.

    Is it possible?

    There are multiple ways of accessing raw video data from AV_Capture into a second process. Essentially, you will have to install an Inter-Process Communication mechanism through the Linux Kernel.

    How can it be done?

    One way of doing this is to use Appro's framework. This is a general collection of Shared Memories and Message Queues with appropriate locking mechanisms, such as Semaphores that could be used between any processes.

    In particular, it offers several methods to handle video content. For example, wireless streaming uses this framework for accessing video content from AV_Capture and HID devices can use this to send video control commands (Brightness / Contrast / Zoom change) into AV_Capture.

    However, the suitability of Appro's framework depends on your use case. At times, it may compromise the stability of your apps if used inappropriately. For this reason, I would also suggest building a customized IPC as a solution that is basically what goes on inside Appro's framework.

    Where is the raw data available?

    In the AV_Capture repository, pick the video handling thread that delivers the video you are interested in. At the end of that process' run, it copies video into AV_Capture's buffers. You may intercept this data and send a duplicate copy into your shared memory.

    Thanks,

    Anirudh