Hi Johannes,
So now I would very much like to be able to use two of my video capture devices to work in Gem.
Right now only the wintv works fine, though a little buggy, but I can't get anything out of the cx878 boards.
xawtv works on both cards equally.
I have a hunch this may be due to an imcompatibility with the v4l wrapper v4l_compat around v4l2 drivers. (I'm using 2.6.13-ck5)
How about pix_video using v4l2 proper rather than v4l?
.b..
B. Bogart wrote:
Hi Johannes,
So now I would very much like to be able to use two of my video capture devices to work in Gem.
Right now only the wintv works fine, though a little buggy, but I can't get anything out of the cx878 boards.
xawtv works on both cards equally.
I have a hunch this may be due to an imcompatibility with the v4l wrapper v4l_compat around v4l2 drivers. (I'm using 2.6.13-ck5)
How about pix_video using v4l2 proper rather than v4l?
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)
a related question: i would like to rename pix_video.{cpp,h} to pix_videoOS.{cpp,h} and pix_videoNEW.{cpp,h} to pix_video.{cpp,h}. i think this makes most sense: "NEW" is not new any more and it makes the other implementation look so "old"; and it would better refelct the file<->object relation. (probably it would be best to change the video-objects for w32 and osX to the non OS-dependent version too, as this would probably allow to make a consistant object interface for all platforms. any objections to renaming the files?
mfg.a.sdr IOhannes
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)