Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: V4L issues with linux dvb driver



Hello Billy,

I'll have a look at this later today and test the "dvb-kernel" driver with "tvtime" and come back to you later.
Ok, I see that "tvterm" uses plain v4l, so it should work through the compatibility layer.

Unfortunately, the driver does not support the "old-style-mmap()-interface" through the compatiblity layer. 8-(

"Old style" means, that all capture buffers are mmap()ed in a single call, the buffers are separated by offsets. Using v4l2, you mmap() every single buffer individually. For the compatibility layer to work, you need some extra hooks, that are not present in the current driver.

This is the reason, why "tvtime" only gets one capture buffer and that's why the performance sucks.

Two solutions:
1) Add these extra hooks to the driver, so the compatiblity layer is satisfied.

I don't like this solution, because there are many more problems regarding the interaction between saa7146 and v4l. One example: your driver expects hue/brightness/colour/contrast, while the saa7146 delivers brightness/constrast/saturation only...

2) Switch to v4l2. Drivers are available for all common chipsets (bt8x8, saa7134, saa7146), they will be part of the 2.6.x kernel by default.

To support this, I made a quick-and-dirty hack porting "tvtime" to v4l2. I fixed most stuff to PAL and threw out everything that's not needed. Some quirks were necessary to squeeze the v4l1 capture scheme to the way v4l2 works. The subsystem should be redesigned though.

I attached a diff to the current CVS to this mail. You need to put "videodev2.h" for example to /usr/include/linux.

CU
Michael.

Attachment: tvtime_v4l2.diff.gz
Description: GNU Zip compressed data


Home | Main Index | Thread Index