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.

Operations on frame buffers in davinci dm6437

Other Parts Discussed in Thread: TMS320DM6437

Hello,

 I want to know how exactly how frame buffers work both at the capture end and display end. I have been trying to figure out how they work by taking the example project "video_encdec.prj". 

In the video_encdec code there are 6 buffers assigned 3 each for VPFE and VPBE. I want to know why 3? Is there any specific reason? 

Actually I am working on implementing Optical flow on DM6437. I want to  capture two frames sequentially from the camera connected at the 'video in' port, apply Lucas Kanade algorithm to it and find the optical flow between them. 

But when I capture 2 frames using FVID_exchange statements one after another, the first call gives me the correct image but the second call wont return the any image.

Why this is happening?

My code looks like this..

printf("Starting encode/decode loopback ...\n");

int * framePointer;
for (n=0;;n++) {

FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);

framePointer=frameBuffPtr->frameBufferPtr;

FVID_exchange(hGioVpbeVid0, &frameBuffPtr);

.

.

.

}

When I extract the first image from the framePointer it gives me correct result. But the second call for FVID_exchange does not return me any image. To be precise, its all '0's.

Please  help me get out of this trouble..

For your reference I have attached the original code . 

I am eagerly looking forward for some help..

Thanks and regards..

Subodh