| |
Linux Driver Documentation
Driver Interfaces
The VideoPlex Xpress Linux device driveris
based on the driver written by Pauline Middelink. The standard video
for the Linux (V4L) interface has not been changed. Standard V4L players and
applications will work with the VideoPlex XPress card. Most changes are in the
Vaddis.c and Vaddis.h
files that add /dev/decoder* devices
and various ioctls.
To recieve an MPEG stream, the VideoPlex XPress Linux
driver uses device files in the form of /dev/decoder?_x_y.
'?' stands for the number of the board. 'x'
stands for the video sample rate (PAL or NTSC). 'y' stands for the audio sample rate (32, 44, 48). For
example, if the MPEG file 'example.mpg' is PAL encoded and audio sampled at 48
KHz, you can play it back with:
cat example.mpg
/dev/zeroes > /dev/decoder0_pal_48.
In order to flush the
MPEG file properly, it is necessary to append zeros to the end of the file.
After the MPEG file has finished playing, the file descriptor will close with
the EPIPE error. This is a correct way to play from command line. The
VPXpress.h file contains various ioctls that allow you to control the VideoPlex
Xpress. The VideoPlex
Xpress Linux SDK documents these ioctl controls.
OSD Support
The VideoPlex Xpress Linux device driver supports
OSD (On Screen Display). The OSD feature in the Linux driver uses /dev/decoder?_osd file abstract (where, '?'
stands for the number of the board). To display a bitmap, a properly
formatted file should be written to the decoder's OSD device. For
example,
cat file.osd > /dev/decoder0_osd
The VPXpress.h file contains various ioctls that allow you
to control the OSD. These ioctls and the format of the OSD bitmap are documented
in VideoPlex XPress Linux OSD SDK
Package
Limitations
The driver has been extensively tested on single-CPU machines with 9
VideoPlex Xpress boards playing simultaneously and doing OSD. It has not been
extensively tested with 10 boards. The driver will not support more than 10
boards due to a hard-coded kernel i2c limitation.
While working well with UP (uni-processor) kernels, the driver has issues
with SMP kernels. This is why provided kernel packages are configured for UP
support. The driver is SMP aware and can be used with SMP kernels (although the
player locks up ocasionally). Full SMP support will be provided in the next
release.
The driver has not been ported to the 2.4 kernel. 2.4 support will be
provided in the next release.
The driver's V4L interface has problems with sizing. When playing in a
window using v4l aplications, resizing and full screen do not work properly.
The driver uses interfaces that are not a part of the standard kernel. Thus,
custom built kernels must be used.
|