ArTLabO

WaterworkS


lien : http://waterworks.sourceforge.net
Mettre à jour la paquetage libnetpbm9-devel
tentative d'installation
Configuration: portable VAIO GR114MK
Mandrake 10.1 avec mise à jour de sécurité.
Webcam sur port USB (webcam labtec)
Détectée par Gnomeeting QuickCam? USB
Téléchargement de Waterworks.
Premier make: message affiché:
g -g -O3 -I/usr/include/SDL -march=i686 -c -o WaterWorks.o WaterWorks.cpp
In file included from ww.h:36,
from WaterWorks.cpp:1:
wwDisplaySDL.h:5:17: SDL.h: No such file or directory
In file included from ww.h:36,
from WaterWorks.cpp:1:
wwDisplaySDL.h:17: error: ISO C forbids declaration of `SDL_Surface' with no type
wwDisplaySDL.h:17: error: expected `;' before '*' token
make: [WaterWorks.o] Erreur 1
Installation de SDL
[root@sony waterworks-0.2.0]# urpmi sdl
Les paquetages suivants contiennent sdl :
libSDL1.2
libSDL_gfx11
libSDL_image1.2
libSDL_mixer1.2
libSDL_net1.2
libSDL_ttf2.0
perl-SDL
Après avoir remis à jour les médias (urpmi addmedia)
on obtient:
SDLcam
gnuboy-SDL
xmess-SDL
Mise à jour approfondie pour cause de pb de paquetage.
Liste des mises à jour depuis: http://www.ze-linux.org/ze-linux__mise-a-jour(urgent)__6_46049.html
[root@sony waterworks-0.2.0]# urpmi libnet
installation de /var/cache/urpmi/rpms/libnet-1.1.2.1-1mdk.i586.rpm
Préparation...
1:libnet
[root@sony waterworks-0.2.0]# urpmi libnetpbm9
Tout est déjà installé
[root@sony waterworks-0.2.0]# urpmi libnetpbm9-devel
installation de /var/cache/urpmi/rpms/libnetpbm9-devel-9.24-8mdk.i586.rpm
Préparation...
1:libnetpbm9-devel
[root@sony waterworks-0.2.0]#

Toujours le pb de SDL.h

Installation de libSDL1.2-devel1.2.7... nécessitant l'install de 24 dépendances... (automatique avec urpmi ou sous kde).
Installation de ocaml-SDL
Installation de libSDL_image1.2-test

Dès lors le make fonctionne

[root@sony waterworks-0.2.0]# make
g -g -O3 -I/usr/include/SDL -march=i686 -c -o WaterWorks.o WaterWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwDisplaySDL.o wwDisplaySDL.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwCameraV4L.o wwCameraV4L.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwLocator.o wwLocator.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwGamma.o wwGamma.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMapColor.o wwMapColor.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMapValue.o wwMapValue.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFireRender.o wwFireRender.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterSimulator.o wwWaterSimulator.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterSpigot.o wwWaterSpigot.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMapVector.o wwMapVector.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterRender.o wwWaterRender.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwBloodRender.o wwBloodRender.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterSpigotRandom.o wwWaterSpigotRandom.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterSpigotMultiRandom.o wwWaterSpigotMultiRandom.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwBloodWorks.o wwBloodWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMain.o wwMain.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwSlimeWorks.o wwSlimeWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwSlimeRender.o wwSlimeRender.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwTimeBlur.o wwTimeBlur.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwBlurBox.o wwBlurBox.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwGhostWorks.o wwGhostWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMapGray.o wwMapGray.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWaterWorks.o wwWaterWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwTimer.o wwTimer.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwBlurFast.o wwBlurFast.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFireWorks.o wwFireWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFilePPM.o wwFilePPM.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwNoisePerlin.o wwNoisePerlin.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMapPointer.o wwMapPointer.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwSlope.o wwSlope.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwWarp.o wwWarp.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwStretch.o wwStretch.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwSkinny.o wwSkinny.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFatty.o wwFatty.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwSplit.o wwSplit.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMerge.o wwMerge.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwRemapGray.o wwRemapGray.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwRemapGrayColor.o wwRemapGrayColor.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwColorize.o wwColorize.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwRub.o wwRub.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwProto.o wwProto.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwMultiply.o wwMultiply.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwGradientFilePPM.o wwGradientFilePPM.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwToonWorks.o wwToonWorks.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFileInPPM.o wwFileInPPM.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwBurn.o wwBurn.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwConvert.o wwConvert.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwAdd.o wwAdd.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwAddClipped.o wwAddClipped.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwScale.o wwScale.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwInvert.o wwInvert.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwOverlay.o wwOverlay.cpp
g -g -O3 -I/usr/include/SDL -march=i686 -c -o wwFireSimulator.o wwFireSimulator.cpp
cc -g -O3 -I/usr/include/SDL -march=i686 -c -o perlin.o perlin.c
ar cr libww.a wwDisplaySDL.o wwCameraV4L.o wwLocator.o wwGamma.o wwMapColor.o wwMapValue.o wwFireRender.o wwWaterSimulator.o wwWaterSpigot.o wwMapVector.o wwWaterRender.o wwBloodRender.o wwWaterSpigotRandom.o wwWaterSpigotMultiRandom.o wwBloodWorks.o wwMain.o wwSlimeWorks.o wwSlimeRender.o wwTimeBlur.o wwBlurBox.o wwGhostWorks.o wwMapGray.o wwWaterWorks.o wwTimer.o wwBlurFast.o wwFireWorks.o wwFilePPM.o wwNoisePerlin.o wwMapPointer.o wwSlope.o wwWarp.o wwStretch.o wwSkinny.o wwFatty.o wwSplit.o wwMerge.o wwRemapGray.o wwRemapGrayColor.o wwColorize.o wwRub.o wwProto.o wwMultiply.o wwGradientFilePPM.o wwToonWorks.o wwFileInPPM.o wwBurn.o wwConvert.o wwAdd.o wwAddClipped.o wwScale.o wwInvert.o wwOverlay.o wwFireSimulator.o perlin.o
g -o WaterWorks WaterWorks.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o BloodWorks?.o BloodWorks?.cpp
g -o BloodWorks? BloodWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o SlimeWorks?.o SlimeWorks?.cpp
g -o SlimeWorks? SlimeWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o GhostWorks?.o GhostWorks?.cpp
g -o GhostWorks? GhostWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o TimeWorks?.o TimeWorks?.cpp
g -o TimeWorks? TimeWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o FireWorks?.o FireWorks?.cpp
g -o FireWorks? FireWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o Skinny.o Skinny.cpp
g -o Skinny Skinny.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o Fatty.o Fatty.cpp
g -o Fatty Fatty.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o ToonWorks?.o ToonWorks?.cpp
g -o ToonWorks? ToonWorks?.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o proto.o proto.cpp
g -o proto proto.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o timer.o timer.cpp
g -o timer timer.o libww.a -lSDL -lpthread -lpbm -lppm
g -g -O3 -I/usr/include/SDL -march=i686 -c -o c.o c.cpp
g -o c c.o libww.a -lSDL -lpthread -lpbm -lppm
chmod a rX *

Lancement de l'executable

On obtient l'erreur suivante:
[root@sony waterworks-0.2.0]# ./WaterWorks
V4L ioctl(VIDEOCSCHAN): Invalid argument
terminate called after throwing an instance of 'i'
Aborted (core dumped)
On continue à y croire et comme apparemment le pb vient de V4L j'installe un front-end graphique pour mieux comprendre ce qui se passe au niveau de V4L. (vidéo for linux)
[root@sony root]# urpmi gv4l
Pour satisfaire les dépendances, les 18 paquetages suivants vont être installés (16 Mo):
gv4l-2.2.4-1plf.i586
liba52dec0-0.7.4-6mdk.i586
libavifile0.7-0.7.39-0.20041117.1plf.i586
libaviplayavcodec0.7-0.7.39-0.20041117.1plf.i586
libdvdread3-0.9.4-3mdk.i586
libfaad2_0-2.0-7plf.i586
libfame0.9_1-0.9.1-5plf.i586
libffmpeg0-0.4.9-0.pre1.0.101.2plf.i586
liblame0-3.96.1-1plf.i586
liblzo1-1.08-4mdk.i586
libquicktime-0.9.3-1mdk.i586
libquicktime0-0.9.3-1mdk.i586
libzvbi0-0.2.8-3mdk.i586
transcode-0.6.14-4plf.i586
tv-fonts-1.1-1mdk.i586
xawtv-3.93-3mdk.i586
xawtv-common-3.93-3mdk.i586
xawtv-control-3.93-3mdk.i586
Est-ce correct ? (O/n) o
et cela donne un joli paquet de librairies installées...
mais cela ne fonctionne toujours pas.
Comme je suis du genre têtu, j'utilise la fonction v4l-info pour savoir ce que v4l a dans le ventre:
[root@sony bin]# v4l-info
# video4linux device info [/dev/video0] #
general info
VIDIOCGCAP
name : "Logitech USB Camera"
type : 0x201 [CAPTURE,SUBCAPTURE]
channels : 1
audios : 0
maxwidth : 352
maxheight : 292
minwidth : 32
minheight : 32
channels
VIDIOCGCHAN(0)
channel : 0
name : "Camera"
tuners : 0
flags : 0x0 []
type : CAMERA
norm : 0
tuner
ioctl VIDIOCGTUNER: Invalid argument
audio
ioctl VIDIOCGAUDIO: Invalid argument
picture
VIDIOCGPICT
brightness : 32768
hue : 32768
colour : 32768
contrast : 32768
whiteness : 0
depth : 24
palette : RGB24
buffer
VIDIOCGFBUF
base : (nil)
height : 0
width : 0
depth : 0
bytesperline : 0
window
VIDIOCGWIN
x : 1532713819
y : 1532713819
width : 176
height : 144
chromakey : 1532713819
flags : 524288
Je trouve cela étrange car en lieu et place de video il marque vidio...
Ceci dit tout laisse à penser que WaterWorks fonctionne pour une entrée vidéo, mais pas pour une entrée webcam.
Dans ce cas cela pose pas mal de pb.
Par ailleurs tout laisse à penser également qu'il s'agit de caméra analogique et non pas de caméra DV.
Cela signifierait qu'il peut récupérer un flux d'un carte vidéo tuner, cam analogique et puis c'est tout...
[root@sony waterworks-0.2.0]# v4l-conf
v4l-conf: using X11 display :0.0
dga: version 2.0
mode: 1024x768, depth=24, bpp=32, bpl=4096, base=0xd8000000
/dev/video0 [v4l2]: ioctl VIDIOC_QUERYCAP: Unknown error 515
/dev/video0 [v4l]: no overlay support
[root@sony waterworks-0.2.0]#
Pour essayer de comprendre -enfin- d'où viennent les pbs on essaie d'abord de faire fonctionner xawtv qui utilise V4L.
[root@sony /]# .usr/bin/xawtv
This is xawtv-3.93, running on Linux/i686 (2.6.8.1-12mdk)
/dev/video0 [v4l]: no overlay support
v4l-conf had some trouble, trying to continue anyway
ioctl: VIDIOC_QUERYCAP(driver=;card=;bus_info=;version=0.0.0;capabilities=0x0 []): Unknown error 515 v4l: timeout (got SIGALRM), hardware/driver problems? ioctl: VIDIOCSYNC(int=0): Interrupted system call ioctl: VIDIOCMCAPTURE(frame=0;height=32;width=48;format=15): Invalid argument ioctl: VIDIOCMCAPTURE(frame=0;height=32;width=48;format=9): Invalid argument v4l: timeout (got SIGALRM), hardware/driver problems? ioctl: VIDIOCSYNC(int=0): Interrupted system call v4l: timeout (got SIGALRM), hardware/driver problems? ioctl: VIDIOCSYNC(int=0): Interrupted system call v4l: timeout (got SIGALRM), hardware/driver problems? ioctl: VIDIOCSYNC(int=0): Interrupted system call v4l: timeout (got SIGALRM), hardware/driver problems? ioctl: VIDIOCSYNC(int=0): Interrupted system call no way to get: 384x288 32 bit TrueColor (LE: bgr-) game over Apparemment on constate qu'il n'y a pas que WaterWorks qui galère avec V4L Donc on va essayer de résoudre... Apparemment un souci de driver n'est pas à exclure... http://www.ee.oulu.fi/~tuukkat/quickcam/quickcam.html Mais apparemment c'est plus un pb de configuration de xawtv... v4l-conf renvoie: [root@sony /]# v4l-conf v4l-conf: using X11 display :0.0 dga: version 2.0 mode: 1024x768, depth=24, bpp=32, bpl=4096, base=0xd8000000 /dev/video0 [v4l2]: ioctl VIDIOC_QUERYCAP: Unknown error 515 /dev/video0 [v4l]: no overlay support Manifestement c'est pas gagné: [root@sony /]# xawtv -hwscan This is xawtv-3.93, running on Linux/i686 (2.6.8.1-12mdk) looking for available devices port 61-61 type : Xvideo, image scaler name : ATI Radeon Video Overlay ioctl: VIDIOC_QUERYCAP(driver=;card=;bus_info=;version=0.0.0;capabilities=0x0 []): Unknown error 515
/dev/video0: OK [ -device /dev/video0 ]
type : v4l
name : Logitech USB Camera
flags: capture
on va essayer cela:
On Fri, 25 Feb 2005, Bill Paxton wrote:

> ioctl: VIDIOC_QUERYCAP(driver=;card=;bus_info="";version=0.0.0;capabilities=0x0 []):
Unknown
> error 515
>
> This is driving me nuts. Note that the driver works, xawtv works, etc. But as a general
V4L
> device, it almost always fails with some version of the above error message.

515 = ENOIOCTLCMD

Actually, from
/usr/src/linux-2.4.29/include/linux/errno.h:
>>>>
/* Should never be seen by user programs */
...
#define ENOIOCTLCMD 515 /* No ioctl command */
<<<<
So that if the user programs displays error 515,
it might actually be a bug. But all other camera drivers
return also ENOIOCTLCMD for unknown ioctl, and qc-usb
does the same.

If it really annoys you, try editing qc-driver.c
line 2950 and change
retval = -ENOIOCTLCMD;
to e.g.
retval = -EINVAL;
( http://sourceforge.net/mailarchive/forum.php?forum_id=4334
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]