SHAPE \* MERGEFORMAT
DM6446ZWT |
TVP5147 |
ADC
|
ADC
|
S-video |
Composite |
Cam1 |
Cam2 |
VID IN |
VID OUT |
System Description:
===============
We have DM6446 with one video input port and one video output port. We also have TVP5147 in the system whose output is connected to Video IN of DM6446. On the input side of TVP5147, we intend to connect two NTSC cameras giving composite output.
Software
========
DVSDK version 2.0 and associated software packages.
Requirement
==========
Our requirement is to run both the cameras ‘cam1’ and ‘cam2’ simultaneously at run time. We expect DM6446 video input port to get frames from cam1 and cam2 alternatively.
What we do
=========
//numBufs = 3;
//Buffers allocated by kernel/driver
Capture_create(); //where internally open() is called on /dev/video0 + other init ioctls
While(1){
Capture_get(); //DQBuf
Switch input of TVP using I2C
Capture_put(); //QBuf
}
Capture_delete(); //close() + freeing of memory etc
Problem
=======
While loop runs for the first time, however second call to Capture_get() reutns ‘E_BUSY’ error.
Questions
=======
- Does the hardware configuration described above correct for our requirement
- If the hardware design above is correct, does the current V4L2 driver supplied with DVSDK 2.0 support this behaviour?
- If the hardware design above is correct and V4L2 does not support this, can you tell us in brief how we can achieve this?