I am using DVR RDK on dm8168. I want to know how to send a video frame to V4L2 driver. Can syslink
do this ?
I know there are a few sample in EZSDK,but it may not work under DVR_RDK .Are there any sample for this?. THANKS .
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.
I am using DVR RDK on dm8168. I want to know how to send a video frame to V4L2 driver. Can syslink
do this ?
I know there are a few sample in EZSDK,but it may not work under DVR_RDK .Are there any sample for this?. THANKS .
v4l2 is not supported in DVR RDK and we have not tried it. Can you explain why you cannot use the captureLink and want to use v4l2. Also what is meant by translate a video frame. It is not clear. If you have already captured a video frame using v4l2 in a physically contiguous buffer and want to pass it to a DVR RDK link, you can use ipcFramesOutHLOS -> ipcFramesInRTOS links.You should populate the physical address of the buffer in the frame info.
Thanks for the response..
I`m sorry that I haven`t described my question clearly.
Our application decided that we need to use v4l2 driver to transfer a video frame to/from a DVR_RDK link . I have a few more questions:
1,If I have already a video frame from VPSSM3,How can I sent it to V4L2 driver? As I know,syslink can be used in inter/intra processors communication, can syslink help me for this?
2, what do you exactly mean by “ populate the physical address of the buffer in the frame info”?
THANKS
V4L2 driver is for capture. That means you will pass an empty buffer to v4l2 and get a captured frame. Why do you want to pass a frame from VPSS m3 to v4l2 ?
Anyhow if you have v4l2 capture working, and you have a buffer captured from v4l2 and want to send it to VPSS M3 to say display link for display, you should create a chain as:
IpcFramesOutHLOS -> ipcFramesInRTOS (M3VPSS) -> DisplayLink.
The application will then have a loop like below:
--- Get Captured Frame from v4l2
--- Convert capturedFrame buffer virtual address to physical address.
For example
phyAddr = Memory_translate (usrVirt,Memory_XltFlags_Virt2Phys);
--- Create a VIDEO_FRAMEBUF_LIST_S structure populating correct information for all fields (refer /dvr_rdk/mcfw/interfaces/ti_media_common_def.h) and invoke
Vdis_putFullVideoFrames() function
--- Call Vdis_getEmptyVideoFrames() to get back the displayed frames.