[PD] Gem and ieee1394 firewire cam on linux debian

Tim Boykett tim at timesup.org
Tue Aug 21 22:28:11 CEST 2007



Hello Linux / DV users,

Summary: I think I have a fix for the problem with pix_video that
has effected several people on some linux distributions. Please
read on if this matters to you.

Note: this is probably for the pd-dev list, but I am not on it, so I  
hope
that one of the PD-dev people can pick up on this and say "aha! I can
do this!"

I am using a machine with udev on it, so the device names are
not the ones expected by the pix_video object. In particular around
line 213 of videoDV4L.cpp I see that /dev/ieee1394/dv/host0/PAL/in is  
being looked at, then
/dev/dv1394.

The error that I think I am seeing is that buf is being set to /dev/ 
ieee1394/dv/host0/PAL/in
then this is not working (it doesn't exist) and the next attempt to  
access /dev/dv1394
is finding that this is a directory (on my machine). So I get the  
nonsensical
error:
/dev/ieee1394/dv/host0/PAL/in: Is a directory

On my machine at least, the
devices are  /dev/dv1394/0 and /dev/dv1394/1. When I make a link from
/dev/ieee1394/dv/host0/PAL/in to /dev/dv1394/0 then all is well.

Suggested solution: add more possibilities in this series of tests.

     snprintf(buf, 32, "/dev/ieee1394/dv/host%d/%s/in", devnum,  
(m_norm==NTSC)?"NTSC":"PAL");
     if ((fd = open(buf, O_RDWR)) < 0)    {
       if ((fd=open("/dev/dv1394", O_RDWR)) < 0)    {
         snprintf(buf, 32, "/dev/dv1394/%d", devnum);   /* new for  
debian udev */
         if ((fd=open(buf, O_RDWR)) < 0)    {
           perror(buf);
           return -1;
         }
       }
     }

I am sorry that I am not currently a developer and cannot do this
myself. I am sure someone else out there is clever enough to make it  
work
quickly!

I am sure there is a more elegant way to go about this, but I cannot  
work
out how to locate the appropriate devices using the "ever so clever"  
udev
system. It seems that people who want to should be able to set up udev
to have special names for special devices. One possibly solution  
would be to allow
a message to pass a device name to pix_video, then this device name  
would be
used instead of pix_video trying to guess. In that case I might have  
been able to
use a openpanel to point pix_video at the correct /dev/dv1394/0.

Perhaps other people who cannot get this to work can try to find out  
what
the correct name on their machine is. The names that might work are like
/dev/dv1394, if I ls -l /dev/1394/0 on my machine I see

crw-rw---- 1 root video 171, 32 2007-08-22 03:42 /dev/dv1394/0

which means I am the right place: the c at the start tells me that this
is a "special character" device and the "major number" 171 tells me  
(I think!)
that this is a video device.

So if you want to find some other devices that should be looked at in
this opening routine, then perhaps suggest them now so that someone
can add them to the source...

I am also not sure that this way of working through the list of possible
places for the camera and reporting an error about the last one that was
tried and failed is the best. But that's something for another day.

Cheers,

   Tim






On 15/08/2007, at 2:55 PM, Joseph Barrows wrote:

> Hi,
> I'm having the same problem under fedore core 6 - there is no /dev/ 
> video
>
> any advice?  (there is no /dev/ieee1394 either
>
> (kino see the camera fine)
>
> thanks,
> Joseph
>
> On 15/08/07, Tim Boykett <tim at timesup.org> wrote:
> Hi Kids!
>
>    Time for a new adventure. I would like to have a working
> firewire camera input for manipulation in Gem on a linux
> box that is sitting here purring at me. The cam works
> fine with Kino and dvgrab, so the linux-firewire connection
> is all well.
>
> But I am having no luck with pix_video or pdp_v4l. The main problem
> seems to be that (apparently) recently the naming conventions
> in debian and possibly linux in general were changed. So there is
> no more /dev/video0 for the v4l mode, and for pix_video trying to
> work directly with ieee1394, I get complaints that /dev/ieee1394/dv/
> host/PAL/in
> "Is a directory".
>
> Has anyone had more luck? Do I need to going from stable to testing in
> some parts of debian? Do I need to use some special somethings?
>
> Looking forward to the d'Oh moment,
>
>    Tim
>
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
> listinfo/pd-list
>
>
>
> -- 
> Joseph Barrows
> live video performance; web site design; new media artist
> jjbarrows.artwww.net
> jjbarrows at artwww.net
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
> listinfo/pd-list





More information about the Pd-list mailing list