Hi,
On 25 Mar 2002, Gerd Knorr wrote:
> Sounds like you are using Xvideo. The X-Server reads this info only
> once at startup. Try "-noxv" or "-c /dev/video<n>" to make xawtv talk
> to the device directly.
>
Bypassing Xvideo using "-noxv" works in 2.4.19-pre4. I'm curious though,
"v4lctl list" returns different info depending on whether it's called
directly or via Xvideo:
--- v4lctl -c /dev/video0 list -----
attribute | type | current | default | comment
-----------+--------+---------+---------+-------------------------------------
norm | choice | (null) | PAL | PAL NTSC SECAM
input | choice | Composi | Composi | Composite1 S-Video Television
audio mode | choice | stereo | mono | mono stereo lang1 lang2
bright | int | 128 | 128 | range is 0 => 255
contrast | int | 68 | 68 | range is 0 => 127
color | int | 64 | 64 | range is 0 => 127
hue | int | 0 | 0 | range is -128 => 127
volume | int | 0 | 0 | range is -15 => 15
mute | bool | on | off |
Invert | bool | off | off |
Interlace | choice | auto | auto | auto on off
Mirror | bool | off | off |
y offset o | int | 0 | 0 | range is 0 => 128
y offset e | int | 0 | 0 | range is 0 => 128
---- v4lctl list (via Xvideo) ----
attribute | type | current | default | comment
-----------+--------+---------+---------+-------------------------------------
bright | int | 3 | 0 | range is -1000 => 1000
contrast | int | 70 | 0 | range is -1000 => 1000
color | int | 7 | 0 | range is -1000 => 1000
hue | int | 3 | 0 | range is -1000 => 1000
volume | int | 0 | 0 | range is -1000 => 1000
mute | bool | on | off |
norm | choice | (null) | pal | pal ntsc secam
input | choice | (null) | composi | composite1 svideo television
-------
The ioctls in Xvideo seems static. Is this determined at compile time?
(note especially the "input" names, S-Video vs. svideo). Is this a
function of XFree86 or the video driver (in my case, NVdriver)?
> > + if (dev->ctl_mute || dev->automute)
> > + saa_andorb(SAA7134_ANALOG_IO_SELECT, 0x07, 0x00); /* LINE1 */
>
> I still think this is _wrong_.
>
Maybe in the earlier discussion where I posted this patch, it wasn't clear
that this is only needed for the FlyVideo 2000 cards due to the following:
1. It uses SAA7130 (which doesn't have internal mixer/muting capabilities)
2. All external audio paths are via LINE2 for the FlyVideo 2000/3000 cards
with appropriate GPIO switching of the HEF4052BT analog mux. LINE1
is not used (as far as I can tell), and the original FlyVideo 3000
card amux definition needs to be re-examined (Gunther Meyer says he
needs the LINE2+GPIO switch for Ext. Audio In as well).
Hence the conditional tests (ext_mute) around the use of LINE1-based
muting, and ext_mute should only be defined for FlyVideo 2000.
As for S-Video luma-control. I find that set_tvnorm() is only called
explicitly when selecting "TV Norm" in saa7134-0.1.5. Something needs to
be done in VIDIOC_S_INPUT to triggle the S-Video luma-control properly.
The following patch fixes the problem, but I think it's a little
'expensive' since set_tvnorm() is called every time we switch video
inputs. Note: it must be called after video_mux() as it depends on
dev->ctl_input being set first. The luma-control stuff should probably be
split out from set_tvnorm()?
-------------- saa7134-0.1.5-fv2k-svideo.diff ---------
diff -Naur saa7134-0.1.5/saa7134-video.c saa7134-0.1.5-fv2k/saa7134-video.c
--- saa7134-0.1.5/saa7134-video.c Tue Mar 26 14:04:43 2002
+++ saa7134-0.1.5-fv2k/saa7134-video.c Tue Mar 26 14:01:39 2002
@@ -1114,6 +1114,7 @@
return -EINVAL;
down(&dev->lock);
video_mux(dev,*i);
+ set_tvnorm(dev,dev->tvnorm);
up(&dev->lock);
return 0;
}
-------- cut here ----------
T.C.
----
Wan Tat Chee (Lecturer)
School of Computer Science, Univ. Science Malaysia,
11800 Minden, Penang, Malaysia. Ofc Ph: +604 657-7888 x 3617
Internet: [EMAIL PROTECTED] Web: http://nrg.cs.usm.my/~tcwan
GPG Key : http://nrg.cs.usm.my/~tcwan/tcw_gpg.asc
F'print : FB0F CED7 85A5 ECF9 DEF0 50E8 A550 A0D2 8638 B1EB
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list