Hi Johannes,
The checkout of Gem I have seems to have both videoV4L.h and videoV4L2.h included in pix_videoNEW.cpp,
Compiling that gives the more or less the same behavior as before, the winTV works fine (but the driver tries to open it as PAL first, and I have to set the mode twice to get it to show NTSC properly.
For my cx8800/cx88xx cards I can only create a 280x272 maximum pixel size image, otherwise (280x280) I just get white and STDERR says "VIDEOCMCAPTURE1: invalid argument" over and over again.
Also it seems I need to quit PD to get things working fine, that is once I get the pix_video object into a state I can't get it to show video anymore no matter what messages I send it. (including reinstanciation it)
So I tried to comment out the videoV4L header and left just the videoV4L2 header and the compile fails with:
g++-4.0 -c -fPIC -g -O2 -freg-struct-return -O3 -fno-builtin -falign-loops=16 -funroll-loops -ffast-math -mmmx -I/usr/X11R6/include -I/usr/include/ffmpeg -I/usr/include/quicktime -I/usr/include/avifile-0.7 -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/usr/include/freetype2 pix_write.cpp -o pix_write.o pix_videoNEW.cpp: In constructor 'pix_videoNEW::pix_videoNEW()': pix_videoNEW.cpp:43: error: expected type-specifier before 'videoV4L' pix_videoNEW.cpp:43: error: cannot convert 'int*' to 'video*' in assignment pix_videoNEW.cpp:43: error: expected `;' before 'videoV4L' make[1]: *** [pix_videoNEW.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/home/bbogart/pd-stuff/Gem.v4l2/src/Pixes' make: *** [Pixes] Error 2
What else do I need to do to switch from V4L to V4L2.
As far as I can tell, with the CVS checkout from a week ago or so, having both headers included just results in the exact same behavior as my old binary running V4L.
again xawtv sees all three cards fine, and loads them all perfectly. (except the winTV again seems to think its PAL when it loads the first time.)
Thanks!
.b.
IOhannes m zmoelnig wrote:
as you might have noticed, there is already a videoV4L2.{cpp,h} in src/Pixes (CVS). in theory, you would just need (for testing), modify the pix_videoNEW to use videoV4L2 instead of videoV4L. it would be great if you could do some testing and report back. (i am not entirely sure whether it works flawlessly)