Xv(ideo) and Video4Linux on i810, bttv

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



I am trying to use the Xv / Xvideo extension along with Video4Linux.
The card works fine when I have it DMA RGB data directly to the frame
buffer, using DGA.  I am now trying to use Xvideo, which has very little
documentation, so I'm guessing as to what should work.

My program creates a 640 x 480 window, then calls XvPutVideo, specifying
that window as the drawable.  I specify the port associated with the
input card; in this case 34 (see below log output).  I specify encoding
(XV_ENCODING) 1 - note that it shows up as set in below log output.  I
set the background color of the window (and verified same with xwd and
gimp) to 0x101fe, which is the value of XV_COLOR_KEY, and I assume that
pixels with different values would block the video.

I don't get any video; the window is all the background (color key)
color.  Is there something more I have to do?

I couldn't get xawtv to configure and recognize Xv so it would support
it.  Does anyone have a simpler program that tests XvPutVideo?  The
program  testxv.c from http://www.cs.uni-potsdam.de/~wertmann/xv/ works
and demonstrates that the output YUV buffer (I810 Video Overlay below)
works.  But that program does not test XvPutVideo.

Another question: the tuning frequency (below) shows:

     'XV_FREQ': 0 to 16000 gettable settable

Can anyone tell me what units the frequency is in - KHz? 1/10 MHz?
Also, does anyone know of a document that describes that?  The
"Wertmann" URL above describes the new functions (e.g.
XvQueryPortAttributes), but not what any of the new attribute values
are.

Thanks for any help.
Peter Kaczowka


--------------------------------------
Here is the output from xawtv, loaded from a Debian package.  I tried
compiling xawtv on the target machine so it would enable Xv support, but
couldn't get my packages right.  Note that xawtv on this machine using
DGA doesn't work right.  To make my DGA-based code work right I had to
hack a bit, because DGA thinks it's 32-bit but it's really 24-bit.

This is xawtv-3.06, running on Linux/i686 (2.4.0)
visual: id=0x21 class=4 (TrueColor), depth=24
x11: 640x480, 32 bit/pixel, 4096 byte/scanline, DGA, VidMode
waitpid: No child processes
waitpid: No child processes
v4l: 640x480, 32 bit/pixel, 4096 byte/scanline
Warning: Cannot convert string
"-*-ledfixed-medium-r-semicondensed--39-*" to type FontStruct




-------------------------------------------
Here is the "debug" output from my program:

XvQueryExtension: ret 2 ver 2 rel 142 reqBase 75 evBase 152 errBase
-1073743020

XvQueryAdaptors: 2 adaptors:
  video4linux: 1 port first 34 input video
    1 format:
      depth 24 visual id 0x21

    Info for port 34: 12 encodings:
      id 0 name 'pal-television' size 768 x 576
      id 1 name 'ntsc-television' size 640 x 480
      id 2 name 'secam-television' size 768 x 576
      id 3 name 'pal-composite1' size 768 x 576
      id 4 name 'ntsc-composite1' size 640 x 480
      id 5 name 'secam-composite1' size 768 x 576
      id 6 name 'pal-svideo' size 768 x 576
      id 7 name 'ntsc-svideo' size 640 x 480
      id 8 name 'secam-svideo' size 768 x 576
      id 9 name 'pal-composite3' size 768 x 576
      id 10 name 'ntsc-composite3' size 640 x 480
      id 11 name 'secam-composite3' size 768 x 576

    7 attributes:
     'XV_ENCODING': -1000 to 1000 gettable settable
        value 1 (0x1)
     'XV_BRIGHTNESS': -1000 to 1000 gettable settable
        value 0 (0x0)
     'XV_CONTRAST': -1000 to 1000 gettable settable
        value 0 (0x0)
     'XV_SATURATION': -1000 to 1000 gettable settable
        value 0 (0x0)
     'XV_HUE': -1000 to 1000 gettable settable
        value 0 (0x0)
     'XV_MUTE': 0 to 1 gettable settable
        value 0 (0x0)
     'XV_FREQ': 0 to 16000 gettable settable
        value 39 (0x27)

    (no image formats)


  I810 Video Overlay: 1 port first 35 input image
    1 format:
      depth 24 visual id 0x21

    Info for port 35: 1 encoding:
      id 0 name 'XV_IMAGE' size 720 x 576

    3 attributes:
     'XV_COLORKEY': 0 to 16777215 gettable settable
        value 66046 (0x101fe)
     'XV_BRIGHTNESS': -128 to 127 gettable settable
        value 0 (0x0)
     'XV_CONTRAST': 0 to 255 gettable settable
        value 64 (0x40)

    4 image formats:
      YUY2 bits 16 planes 1 YUV packed
        'YUYV' top down yuv bits: 8 8 8 h: 1 2 2 v: 1 1 1
      YV12 bits 12 planes 3 YUV planar
        'YVU' top down yuv bits: 8 8 8 h: 1 2 2 v: 1 2 2
      I420 bits 12 planes 3 YUV planar
        'YUV' top down yuv bits: 8 8 8 h: 1 2 2 v: 1 2 2
      UYVY bits 16 planes 1 YUV packed
        'UYVY' top down yuv bits: 8 8 8 h: 1 2 2 v: 1 1 1



---------------------------------------------

Here is part of the output from X when I run it:

XFree86 Version 4.0.2 / X Window System
(protocol Version 11, revision 0, vendor release 6400)
Release Date: 18 December 2000
Operating System: Linux 2.2.16-3smp i686 [ELF]
(II) v4l driver for Video4Linux
(**) I810(0): Depth 24, (--) framebuffer bpp 24
(==) I810(0): RGB weight 888
(==) I810(0): Default visual is TrueColor
(--) I810(0): Chipset: "i810e"
(--) I810(0): Linear framebuffer at 0xEC000000
(--) I810(0): IO registers at addr 0xFFA80000
(==) I810(0): Will alloc AGP framebuffer: 8192 kByte
(==) I810(0): Using gamma correction (1.0, 1.0, 1.0)






[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