[V4L] Xv hardware scaling in xawtv

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



I've set up XFree86 4.0.1 to load the v4l module and I've compiled
xawtv against X4 libraries so that xawtv will use the Xv extensions to
perform YUV transformation on the graphics card, and stretching when
in fullscreen mode.  The former seems to work fine, as xawtv is
clearly running in Xv mode since there are no flashes or delayed
updates while moving or resizing the xawtv window.

When I switch to fullscreen mode, however, I get a thick black border
around the image, something I hoped could be avoided through the use
of hardware scaling.  My graphics card/driver combination (see notes
below) does support hardware scaling, which I frequently use for
fullscreen MPEG playback via SMPEG and SDL.  Furthermore, debug output
from xawtv agrees that hardware scaling is available, so why is it not
used for fullscreen mode?

,----[ xawtv debug output ]
| This is xawtv-3.22, running on Linux/i686 (2.2.17)
| visual: id=0x21 class=4 (TrueColor), depth=24
| visual: id=0x22 class=5 (DirectColor), depth=24
| visual: id=0x23 class=4 (TrueColor), depth=24
| visual: id=0x24 class=4 (TrueColor), depth=24
| visual: id=0x25 class=4 (TrueColor), depth=24
| visual: id=0x26 class=4 (TrueColor), depth=24
| visual: id=0x27 class=4 (TrueColor), depth=24
| visual: id=0x28 class=4 (TrueColor), depth=24
| visual: id=0x29 class=4 (TrueColor), depth=24
| x11 socket: me=localhost, server=localhost
| DGA version 2.0
| Xv: 2 adaptors available.
| Xv: video4linux: input video, ports 42-42
| Xv: NV04 Video Overlay: input image, ports 43-43
| Xv: using port 42 for video
|   XV_ENCODING get set, -1000 -> 1000
|   XV_BRIGHTNESS get set, -1000 -> 1000
|   XV_CONTRAST get set, -1000 -> 1000
|   XV_SATURATION get set, -1000 -> 1000
|   XV_HUE get set, -1000 -> 1000
|   XV_MUTE get set, 0 -> 1
|   XV_FREQ get set, 0 -> 16000
|     0x32595559 (YUY2) packed
|     0x32315659 (YV12) planar
|     0x59565955 (UYVY) packed
|     0x30323449 (I420) planar
| Xv: using port 43 for hw scaling
| x11: color depth: 24 bits, 3 bytes - pixmap: 4 bytes
| x11: color masks: red=0x00ff0000 green=0x0000ff00 blue=0x000000ff
| x11: server byte order: little endian
| x11: client byte order: little endian
| wmhooks: gnome
| Xv: getattr 3
| Xv: getattr 4
| Xv: getattr 5
| Xv: getattr 1
| cmd: "setfreqtab" "europe-west"
| cmd: "capture" "overlay"
| cmd: "setstation" "TV2"
| Xv: video: win=0x1800051, size=0x0, off
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| cmd: "fullscreen"
| turning fs on
| Xv: video: win=0x1800051, size=1024x768, on
| Xv: video: win=0x1800051, size=1024x768, on
| Xv: video: win=0x1800051, size=1024x768, on
| Xv: video: win=0x1800051, size=1024x768, on
| cmd: "fullscreen"
| turning fs off (384x288+514+371)
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| Xv: video: win=0x1800051, size=384x288, on
| keypad: timeout
| Xv: video: win=0x1800051, size=0x0, off
|   image format list for port 43
`----

The output from the "xvideo" test application included with xawtv is:

,----[ output from "xvideo" ]
|     XV_ENCODING get set, -1000 -> 1000, val=0
|     XV_BRIGHTNESS get set, -1000 -> 1000, val=0
|     XV_CONTRAST get set, -1000 -> 1000, val=0
|     XV_SATURATION get set, -1000 -> 1000, val=0
|     XV_HUE get set, -1000 -> 1000, val=0
|     XV_MUTE get set, 0 -> 1, val=0
|     XV_FREQ get set, 0 -> 16000, val=7668
|     XV_COLORKEY get set, 0 -> 16777215, val=66046
|     XV_DOUBLE_BUFFER get set, 0 -> 1, val=1
|     0x32595559 (YUY2) packed
|     0x32315659 (YV12) planar
|     0x59565955 (UYVY) packed
|     0x30323449 (I420) planar
| 2 adaptors available.
|   name:  video4linux
|   type:  input video 
|   ports: 1
|   first: 42
|   format list
|     depth=24, visual=33
|     depth=24, visual=35
|     depth=24, visual=36
|     depth=24, visual=37
|     depth=24, visual=38
|     depth=24, visual=39
|     depth=24, visual=40
|     depth=24, visual=41
|   encoding list for port 42
|     id=0, name=pal-television, size=768x576
|     id=1, name=ntsc-television, size=640x480
|     id=2, name=secam-television, size=768x576
|     id=3, name=pal-composite1, size=768x576
|     id=4, name=ntsc-composite1, size=640x480
|     id=5, name=secam-composite1, size=768x576
|     id=6, name=pal-svideo, size=768x576
|     id=7, name=ntsc-svideo, size=640x480
|     id=8, name=secam-svideo, size=768x576
|     id=9, name=pal-composite3, size=768x576
|     id=10, name=ntsc-composite3, size=640x480
|     id=11, name=secam-composite3, size=768x576
|   attribute list for port 42
|   image format list for port 42
| 
|   name:  NV04 Video Overlay
|   type:  input image 
|   ports: 1
|   first: 43
|   format list
|     depth=24, visual=33
|     depth=24, visual=35
|     depth=24, visual=36
|     depth=24, visual=37
|     depth=24, visual=38
|     depth=24, visual=39
|     depth=24, visual=40
|     depth=24, visual=41
|   encoding list for port 43
|     id=0, name=XV_IMAGE, size=2046x2047
|   attribute list for port 43
|   image format list for port 43
`----

I also tried to convince xawtv to use a different screen resolution
for fullscreen TV by setting "fullscreen = 800 x 600" in the general
section of the xawtv configuration file, but it didn't work, even
though I do have this resolution enabled in my X config and I ran
xawtv with the "-vm" switch.  The "toggle-mouse = on" setting didn't
take either.  Why?

Otherwise, xawtv is a very impressive application, easily surpassing
the Windows based Hauppauge tools in functionality, if not in glitz.

Hardware details:
Hauppauge WinTV-pci PAL with radio and NICAM stereo (bt878)
Pentium III system
NVIDIA RIVA TNT2 graphics card

Software details:
Debian GNU/Linux unstable
Kernel 2.2.17 (with i2c update)
XFree86 4.0.1d (CVS version shipped in experimental .debs)
nvidia driver 0.9-5 (binary beta version from NVIDIA)
bttv 0.7.44
xawtv 3.22
-- 
Echelon bait:
cypherpunk smuggle Nazi Peking Khaddafi constitution arrangements
quiche DES encryption Area 51 World Trade Center SEAL Team 6 NSA SDI





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux