Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Feb 1996 12:38:41 -0800
From:      "Amancio Hasty Jr." <hasty@rah.star-gate.com>
To:        hackers@FreeBSD.org
Cc:        Thomas Roell <roell@blah.a.isar.de>
Subject:   TV vs. Xinside
Message-ID:  <199602092039.MAA00892@rah.star-gate.com>

next in thread | raw e-mail | index | archive | help

As some of you are awared we have succeded into dumping raw video at
high speed to a linear frame buffer. The problem is that some of you
have a matrox meteor PCI video capture board and Xinside's Xserver.

I proposed to Thomas a small video extension which will push all
the intelligence of handling the video inside his X server. My rational
is to avoid problems with different graphic architecutres or graphic
chip revisions. At any rate, Thomas wants to give us an interface in
which he  passes us the geometry, depth, and physical location of 
the frame buffer. 

Discussions on manipulating the frame buffer, like dithering or scaling
by the cpu are beyond the scope of this discussion. In simple terms,
I am only interested in high speed video to the frame buffer.


              Have fun guys,
              Amancio




> The reason why is because I want the people who bought your Xserver and the
> authors of the matrox meteor to agree on the selected method.
> 
> With the following addition  that the interface to the special extension
> shall be :
> 0.  name     raw-video
> 
> 1.  device handle --- for now we can call this freebsd video  capture
>     device 1 for the matrox meteor.
> 
> 2.  geometry and placement of the window 
> 
> 3. hue
> 
> 4. brightness
> 
> If the current color depth is not compatible with the depth of the
> video capture board return failure 
Hmm ... I think you got my idea wrong. What you are proposing is
basically putting everything under control of let's say the XVideo
extension. What I was thinking about was having an extension with one
simple request that would return you stuff like:

typedef struct fbDesc {
  unsigned int    winAAttributes;       /* banked memory access              */
  unsigned int    winBAttributes;
  unsigned int    winGranularity;
  unsigned int    winSize;
  unsigned int    winABase;
  unsigned int    winBBase;
  unsigned int    displayOrigin;        /* byte origin origin of display     */
  unsigned int    bytesPerScanLine;     /* scanline offset in bytes          */
  unsigned int    videoMemory;
  char            bitsPerPixel;         /* device not X padding !!!          */
  char            memoryModel;
  char            colorModel;           /* color model of normal visual      */
  char            bitsRGB;              /* 0 means non modifyable            */
  char            redSize, redPosition; /* if model is direct ...            */
  char            greenSize, greenPosition;
  char            blueSize, bluePosition;
} fbDescRec, *fbDescPtr;

#define WINDOW_SUPPORTED        0x01
#define WINDOW_READABLE         0x02
#define WINDOW_WRITEABLE        0x04

#define MEMORY_TEXT             0x00
#define MEMORY_CGA              0x01
#define MEMORY_HGC              0x02
#define MEMORY_PLANAR           0x03
#define MEMORY_PACKED           0x04
#define MEMORY_RIX              0x05
#define MEMORY_DIRECTCOLOR      0x06    /* same as PACKED */
#define MEMORY_YUV              0x07

#define CMODEL_GRAY             0       /* indexed color, but only 1 LUT     */
#define CMODEL_INDEXED          1       /* indexex color, 3 LUTs (RGB)       */
#define CMODEL_DIRECT           2       /* no index table                    */





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602092039.MAA00892>