Difference between revisions of "Talk:VIVI"

From LinuxTVWiki
Jump to: navigation, search
(New page: (under construction. will format soon.) http://v4l.videotechnology.com/vivi.html > > I have a feeling the vivi driver is not as perfect as it claims to be, so this > > is going to be an...)
 
m (VIVI moved to Talk:VIVI: more appropriate place for the discussion)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
(under construction. will format soon.)
+
I have a feeling the vivi driver is not as perfect as it claims to be, so this  
 
+
is going to be annoying.
http://v4l.videotechnology.com/vivi.html
+
 
+
> > I have a feeling the vivi driver is not as perfect as it claims to be, so this  
+
> > is going to be annoying.
+
  
 
This is true. However, the issues you would notice on vivi will likely happen
 
This is true. However, the issues you would notice on vivi will likely happen
 
on real drivers. You're welcome to feed us with the noticed problems and/or
 
on real drivers. You're welcome to feed us with the noticed problems and/or
 
fixes for the driver code.
 
fixes for the driver code.
 +
 +
juser@vaio:~/vga2usb/tc$ v4l-info >/dev/null
 +
ioctl VIDIOCGTUNER: Invalid argument
  
> >  here is my concern:
 
> >
 
> > juser@vaio:~/vga2usb/tc$ v4l-info >/dev/null
 
> > ioctl VIDIOCGTUNER: Invalid argument
 
 
This is one missing feature on vivi: It emulates a V4L camera. So, the driver
 
This is one missing feature on vivi: It emulates a V4L camera. So, the driver
 
currently doesn't support changing channels. So, the tuner ioctls weren't
 
currently doesn't support changing channels. So, the tuner ioctls weren't
Line 21: Line 16:
 
supported or not (V4L2_CAP_TUNER).
 
supported or not (V4L2_CAP_TUNER).
  
> > ioctl VIDIOCGAUDIO: Invalid argument
+
ioctl VIDIOCGAUDIO: Invalid argument
  
 
This is also missing. There's no audio generation inside vivi driver. I'm not
 
This is also missing. There's no audio generation inside vivi driver. I'm not
Line 28: Line 23:
 
at vivi.
 
at vivi.
  
> > ioctl VIDIOCGFBUF: Invalid argument
+
ioctl VIDIOCGFBUF: Invalid argument
  
 
Vivi also doesn't implement direct output to a video frame. Modern drivers
 
Vivi also doesn't implement direct output to a video frame. Modern drivers
Line 49: Line 44:
 
Btw, those ioctls are V4L1, not V4L2.
 
Btw, those ioctls are V4L1, not V4L2.
  
> > v4l-info is about as simple as you can get, so I would think a perfect driver  
+
v4l-info is about as simple as you can get, so I would think a perfect driver  
> > should not error.
+
should not error.
  
 
Not true. The above API calls are optional. They make no sense for Webcams,
 
Not true. The above API calls are optional. They make no sense for Webcams,
 
while some of them are important for TV capture devices. It is expected that
 
while some of them are important for TV capture devices. It is expected that
 
some ioctls may fail.
 
some ioctls may fail.

Latest revision as of 00:54, 23 November 2008

I have a feeling the vivi driver is not as perfect as it claims to be, so this is going to be annoying.

This is true. However, the issues you would notice on vivi will likely happen on real drivers. You're welcome to feed us with the noticed problems and/or fixes for the driver code.

juser@vaio:~/vga2usb/tc$ v4l-info >/dev/null
ioctl VIDIOCGTUNER: Invalid argument

This is one missing feature on vivi: It emulates a V4L camera. So, the driver currently doesn't support changing channels. So, the tuner ioctls weren't implemented. It would be nice to implement tuner change there.

There's a capability field returned by VIDIOC_QUERYCAP to indicate if this is supported or not (V4L2_CAP_TUNER).

ioctl VIDIOCGAUDIO: Invalid argument

This is also missing. There's no audio generation inside vivi driver. I'm not sure if this would be valuable. If so, we would need to create a "vivi-alsa" to output some audio. Without generating audio, it makes no sense to control audio at vivi.

ioctl VIDIOCGFBUF: Invalid argument

Vivi also doesn't implement direct output to a video frame. Modern drivers aren't implementing those ioctls also. The issue here, with a real PCI driver, is that the driver should setup a PCI2PCI data transfer, to allow to move a captured stream from video capture board memory directly to the video adapter's memory. This is useful for slow machines, since it will free CPU from the data move process. All data move will happen inside the motherboard chipset. However, this is known to be unsafe on several chipsets (including VIA and ATI/AMD ones). If you do a PCI2PCI data transfer, the chipset should avoid conflicting this with a PCI2MEM one. Some chipsets don't avoid the conflicts. This may result on massive data loss at the harddisks, or at the swap memory.

Also, most modern TV applications want to do run some de-interlacing algorithm at the data, before sending to the video adapter. For transcode, this shouldn't be an issue.

At the end, this is something legacy.

Btw, those ioctls are V4L1, not V4L2.

v4l-info is about as simple as you can get, so I would think a perfect driver should not error.

Not true. The above API calls are optional. They make no sense for Webcams, while some of them are important for TV capture devices. It is expected that some ioctls may fail.