diff options
author | cvs <devnull@localhost> | 2000-10-18 20:20:47 -0200 |
---|---|---|
committer | cvs <devnull@localhost> | 2000-10-18 20:20:47 -0200 |
commit | 38d73cf52c0df17ed6f3c7c505e2ab06b04e3b2f (patch) | |
tree | cf0d1b93442fba1aa7c8c95fb0a880f8a7c9b1cc /dvb-spec/API/dvb_api/video.xml | |
parent | 75b63b6d43c650fa4878b2c1671956c657dd0108 (diff) | |
download | mediapointer-dvb-s2-38d73cf52c0df17ed6f3c7c505e2ab06b04e3b2f.tar.gz mediapointer-dvb-s2-38d73cf52c0df17ed6f3c7c505e2ab06b04e3b2f.tar.bz2 |
added HTML documentation of new API
Diffstat (limited to 'dvb-spec/API/dvb_api/video.xml')
-rw-r--r-- | dvb-spec/API/dvb_api/video.xml | 666 |
1 files changed, 666 insertions, 0 deletions
diff --git a/dvb-spec/API/dvb_api/video.xml b/dvb-spec/API/dvb_api/video.xml new file mode 100644 index 000000000..18ff9aa28 --- /dev/null +++ b/dvb-spec/API/dvb_api/video.xml @@ -0,0 +1,666 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><title> + linuxtv.org|DVB Video API</title></head><body bgcolor="#000000" +link="#ffcc00" text="#ffffff" vlink="#ffdd00"><table border="0" +cellpadding="0" cellspacing="0" width="100%"><tr><td><table border="0" +cellpadding="0" cellspacing="0" width="100%"><tr><td width="610"><table +border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td><table +border="0" cellpadding="0" cellspacing="0" width="180"><tr align="right" +valign="top"><td><img height="30" src="/images/top01.gif" +width="180"></td></tr><tr><td align="center" height="38" +valign="bottom"><img border="0" height="38" src="/images/cimlogo02.gif" +width="45"></td></tr></table></td><td><table border="0" cellpadding="0" +cellspacing="0" width="50"><tr><td><img height="30" +src="/images/top02.gif" width="284"></td></tr><tr><td><img height="45" +src="/images/top06.gif" width="20"> + + </td></tr></table></td><td><table border="0" cellpadding="0" +cellspacing="0" width="170"><tr><td background="/images/squares05.gif" +colspan="2"><img height="68" src="/images/squares04.gif" +width="32"></td></tr></table></td></tr><tr><td></td></tr></table></td><td +height="68" valign="top" width="100%"><table border="0" cellpadding="0" +cellspacing="0" width="100%"><tr><td background="/images/squares05.gif" +height="68" +width="100%"> </td></tr></table></td></tr></table></td></tr><tr><td height="30"> + + </td></tr></table><table border="0" cellpadding="0" +cellspacing="0"><tr><td width="181"><table border="0" cellpadding="0" +cellspacing="0" width="181"><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td +bgcolor="#003d19" valign="top" width="19"><img height="22" +src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000" +valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a +href="http://www.convergence.de"><font color="#ffcc00" +face="arial, helvetica" size="2"><b> + convergence.de + </b></font></a></td><td align="right" bgcolor="#003d19" +valign="bottom" width="20"><img height="22" +src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td +bgcolor="#003d19" valign="top" width="19"><img height="22" +src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000" +valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a +href="http://www.cryptolabs.org"><font color="#ffcc00" +face="arial, helvetica" size="2"><b> + cryptolabs.org</b></font></a></td><td align="right" +bgcolor="#003d19" valign="bottom" width="20"><img height="22" +src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td +bgcolor="#003d19" valign="top" width="19"><img height="22" +src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000" +valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a +href="http://www.directfb.org"><font color="#ffcc00" +face="arial, helvetica" size="2"><b> + directfb.org + </b></font></a></td><td align="right" bgcolor="#003d19" +valign="bottom" width="20"><img height="22" +src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td +bgcolor="#ffcc00" valign="top" width="19"><img height="22" +src="/images/pfeilgelb.gif" width="19"></td><td bgcolor="#000000" +valign="top" width="2"></td><td bgcolor="#ffcc00" width="120"><a +href="/"><font color="#003d19" face="arial, helvetica" size="2"><b> + linuxtv.org + </b></font></a></td><td align="right" bgcolor="#ffcc00" +valign="bottom" width="20"><img height="22" src="/images/eckeswgelb.gif" +width="8"></td></tr><tr><td height="2"></td></tr></table></td><td width="20"> + + </td><td valign="top" width="500"><img height="60" +src="/images/linuxtv.gif" width="245"></td></tr><tr><td align="left" +valign="top" width="181"><table bgcolor="#ffcc00" border="0" +cellpadding="0" cellspacing="0" width="185"><tr><td bgcolor="#000000" +valign="top" width="20"><img height="22" src="/images/gleb.gif" +width="20"></td><td bgcolor="#ffcc00" width="19"><img height="22" +src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000" +width="2"></td><td bgcolor="#ffcc00" width="131"> + <a href="/"><font color="#003d19" face="helvetica" +size="2"><b>linuxtv</b></font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" colspan="5" +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td +bgcolor="#ffcc00" width="19"><img height="22" +src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000" +width="2"></td><td bgcolor="#ffcc00" width="131"> + <a href="/projects.xml"><font color="#003d19" face="helvetica" +size="2"><b>projects</b></font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" colspan="5" +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td +bgcolor="#ffcc00" width="19"><img height="22" +src="/images/arrow_main_open.gif" width="19"></td><td bgcolor="#000000" +width="2"></td><td bgcolor="#ffcc00" width="131"> + <a href="/developer/"><font color="#003d19" face="helvetica" +size="2"><b>developer</b></font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td +bgcolor="#ffcc00" width="19"> </td><td bgcolor="#000000" +width="2"></td><td width="131"><img height="13" +src="/images/arrow_sub_open.gif" width="13"> + <a href="/developer/dvb.xml"><font color="#000000" +face="helvetica" size="2">DVB</font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td +width="19"> </td><td bgcolor="#000000" width="2"></td><td width="131"> + <img height="13" src="/images/space_sub.gif" width="13"><img +height="13" src="/images/kulleropen.gif" width="13"><a +href="/developer/dvb_api.xml"><font color="#000000" face="helvetica" size="2"> + API</font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td +bgcolor="#ffcc00" width="19"> </td><td bgcolor="#000000" +width="2"></td><td width="131"><img height="13" +src="/images/arrow_sub.gif" width="13"> + <a href="/developer/dvd.xml"><font color="#000000" +face="helvetica" size="2">DVD</font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td +bgcolor="#ffcc00" width="19"> </td><td bgcolor="#000000" +width="2"></td><td width="131"><img height="13" +src="/images/arrow_sub.gif" width="13"> + <a href="/developer/mbone.xml"><font color="#000000" +face="helvetica" size="2">Mbone</font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td +bgcolor="#ffcc00" width="19"> </td><td bgcolor="#000000" +width="2"></td><td width="131"><img height="13" +src="/images/arrow_sub.gif" width="13"> + <a href="/cvs/"><font color="#000000" face="helvetica" +size="2">CVS</font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" colspan="5" +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td +bgcolor="#ffcc00" width="19"><img height="22" +src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000" +width="2"></td><td bgcolor="#ffcc00" width="131"> + <a href="/download/"><font color="#003d19" face="helvetica" +size="2"><b>download</b></font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" colspan="5" +height="2"></td></tr><tr><td bgcolor="#000000" valign="top" +width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td +bgcolor="#ffcc00" width="19"><img height="22" +src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000" +width="2"></td><td bgcolor="#ffcc00" width="131"> + <a href="/contact.xml"><font color="#003d19" face="helvetica" +size="2"><b>contact</b></font></a></td><td bgcolor="#000000" +width="9"></td></tr><tr><td bgcolor="#000000" colspan="5" +height="2"></td></tr></table></td><td width="20"> + + </td><td valign="top" width="500"><font color="#ffcc00" face="arial, helvetica"><h2>DVB Video API</h2></font> + + <p> + The DVB video device controls the MPEG2 video decoder of the DVB hardware. + It can be accessed through /dev/ost/audio. + </p> + + <p> + The include file <a href="video.h">video.h</a> describes the data + types and lists all i/o calls. + A complete explanation of all calls can be found below: + </p> + + + <p> + <font face="arial, helvetica" size="+1">Video API IO control calls</font> + + +<p> +<pre> + +int open(const char *deviceName, int flags); + + FUNCTION + + This system call opens a named video device (e.g. /dev/ost/video) for subsequent + use. + When an open() call has succeeded, the device will be ready for use. + The significance of blocking or non-blocking mode is described in the documentation + for functions where there is a difference. It does not affect the semantics of the + open() call itself. A device opened in blocking mode can later be put into non- + blocking mode (and vice versa) using the F_SETFL command of the fcntl system + call. This is a standard system call, documented in the Linux manual page for fcntl. + Only one user can open the Video Device in O_RDWR mode. All other attemts to + open the device in this mode will fail, and an errorcode will be returned. + If the Video Device is opened in O_RDONLY mode, the only ioctl call that can be used + is VIDEO_GET_STATUS. All other call will return an error code. + + + PARAMETERS + + const char *deviceName Name of specific video device. In the current + implementation, /dev/ost/video is the only + one available. + int flags A bit-wise OR of the following flags: + + O_RDONLY read-only access + + O_RDWR read/write access + + O_NONBLOCK open in non-blocking mode + (blocking mode is the default) + RETURNS + + ENODEV Device driver not loaded/available. + + EINTERNAL Internal error, possibly in the communication + with the DVB subsystem. + + EBUSY Device or resource busy. + + EINVAL Invalid argument. + + +</pre> +</p> + +<p> +<pre> + +int close(int fd); + + DESCRIPTION + + This system call closes a previously opened video device + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + RETURNS + + EBADF fd is not a valid open file descriptor + + + +</pre> +</p> + +<p> +<pre> +size_t write(int fd, const void *buf, size_t count); + + DESCRIPTION + + This system call is only provided if VIDEO_SOURCE_MEMORY is selected in the + ioctl call VIDEO_SELECT_SOURCE. The data provided shall be in PES format. + If O_NONBLOCK is not specified the function will block until buffer space + is available. The amount of data to be transferred is implied by count. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + void *buf Pointer to the buffer containing the PES data. + + size_t count Size of buf. + + RETURNS + + EPERM Mode VIDEO_SOURCE_MEMORY not selected. + + ENOMEM Attempted to write more data than the internal buffer can hold. + + EBADF fd is not a valid open file descriptor + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_STOP, boolean mode); + + FUNCTION + + This ioctl call asks the Video Device to stop playing the current stream. + Depending on the input parameter, the screen can be blanked out or + displaying the last decoded frame. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_STOP for this command. + + Boolean mode Indicates how the screen shall be handled. + + TRUE: Blank screen when stop. + FALSE: Show last decoded frame. + + RETURNS + + EBADF fd is not a valid open file descriptor + + EINTERNAL Internal error, possibly in the communication with + the DVB subsystem. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_PLAY); + + FUNCTION + + This ioctl call asks the Video Device to start playing a video stream + from the selected source. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_PLAY for this command. + + + RETURNS + + EBADF fd is not a valid open file descriptor + + EINTERNAL Internal error, possibly in the communication with + the DVB subsystem. + + + +</pre> +</p> + + +<p> +<pre> +int ioctl(int fd, int request = VIDEO_FREEZE); + + FUNCTION + + This ioctl call suspends the live video stream being played. + Decoding and playing are frozen. It is then possible to restart + the decoding and playing process of the video stream using + VIDEO_CONTINUE command. If VIDEO_SOURCE_MEMORY is selected in the + ioctl call VIDEO_SELECT_SOURCE, the DVB-subsystem will not decode + any more data until the ioctl call VIDEO_FREEZE or VIDEO_PLAY is + performed. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_FREEZE for this command. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error, possibly in the communication with + the DVB subsystem. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_CONTINUE); + + FUNCTION + + This ioctl call restarts decoding and playing processes of the video + stream which was played before a call to VIDEO_FREEZE was made. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_CONTINUE for this command. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error, possibly in the communication with + the DVB subsystem. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_SELECT_SOURCE, videoStreamSource_t source); + + FUNCTION + + This ioctl call informs the video device which source shall be used + for the input data. The possible sources are demux or memory. If + internal is selected, the data is feed to the Video Device through + the write command. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_SELECT_SOURCE for this command. + + videoStreamSource_t source + Indicates which source shall be used for the Video stream. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error, possibly in the communication with + the DVB subsystem. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_SET_BLANK, boolean mode); + + DESCRIPTION + + This ioctl call asks the Video Device to blank out the picture. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_SET_BLANK for this command. + + boolean mode TRUE: Blank screen when stop. + FALSE: Show last decoded frame. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EINVAL Illegal input parameter. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_GET_STATUS, struct videoStatus *status); + + DESCRIPTION + + This ioctl call asks the Video Device to return the current status of the device. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_GET_STATUS for this command. + + struct videoStatus Returns the current status of the Video Device. + *status + + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EFAULT status points to invalid address + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_GET_EVENT, struct videoEvent *ev); + + DESCRIPTION + + This ioctl call returns an event of type videoEvent if available. + If an event is not available, the behavior depends on whether the device is in + blocking or non-blocking mode. In the latter case, the call fails immediately + with errno set to EWOULDBLOCK. In the former case, the call blocks until an + event becomes available. + The standard Linux poll() and/or select() system calls can be used with the + device file descriptor to watch for new events. For select(), the file + descriptor should be included in the exceptfds argument, and for poll(), + POLLPRI should be specified as the wake-up condition. + Read-only permissions are sufficient for this ioctl call. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_GET_EVENT for this command. + + struct videoEvent *ev Points to the location where the event, if any, is + to be stored. + + + RETURNS + + EBADF fd is not a valid open file descriptor + + EFAULT ev points to invalid address + + EWOULDBLOCK There is no event pending, and the device is in + non-blocking mode. + + EBUFFEROVERFLOW Overflow in event queue - one or more events were lost. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_SET_DISPLAY_FORMAT, videoDisplayFormat_t format); + + DESCRIPTION + + This ioctl call asks the Video Device to select the video format to be applied + by the MPEG chip on the video. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_SET_DISPLAY_FORMAT for this command. + + videoDisplayFormat_t Selects the video format to be used. + format + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EINVAL Illegal parameter format. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_STILLPICTURE, struct videoDisplayStillPicture *sp); + + DESCRIPTION + + This ioctl call asks the Video Device to display a still picture (I-frame). + The input data shall contain an I-frame. If the pointer is NULL, then the + current displayed still picture is blanked. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_STILLPICTURE for this command. + + struct videoDisplayStillPicture *sp Pointer to a location where an I-frame + and size is stored. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EFAULT sp points to an invalid iframe. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_FAST_FORWARD, int nFrames); + + DESCRIPTION + + This ioctl call asks the Video Device to skip decoding of N number of I-frames. + This call can only be used if VIDEO_SOURCE_INTRENAL is selected. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_FAST_FORWARD for this command. + + int nFrames The number of frames to skip. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EPERM Mode VIDEO_SOURCE_MEMORY not selected. + + EINVAL Illegal parameter format. + + + +</pre> +</p> + +<p> +<pre> + +int ioctl(int fd, int request = VIDEO_SLOWMOTION, int nFrames); + + DESCRIPTION + + This ioctl call asks the Video Device to repeat decoding frames N number of times. + This call can only be used if VIDEO_SOURCE_MEMORY is selected. + + PARAMETERS + + int fd File descriptor returned by a previous call to open(). + + int request Equals VIDEO_SLOWMOTION for this command. + + int nFrames The number of frames to skip. + + RETURNS + + EBADF fd is not a valid open file descriptor. + + EINTERNAL Internal error + + EPERM Mode VIDEO_SOURCE_MEMORY not selected. + + EINVAL Illegal parameter format. + + + +</pre> +</p> + + </p> + + </td></tr></table></body></html> + +<!-- This page was served in 2210 milliseconds by Cocoon 1.7.4 --> |