diff options
author | rjkm <devnull@localhost> | 2001-09-16 22:25:40 -0300 |
---|---|---|
committer | rjkm <devnull@localhost> | 2001-09-16 22:25:40 -0300 |
commit | c2ca96fee8c574074c67c9da023e4165f2f9b2e3 (patch) | |
tree | 6ce6470efd83dec7aa93bbbaed704cee9e13472e /dvb-spec/API/dvb_api/demux.xml | |
parent | fe468b0b8c98736ad218453c397cb062897e8a35 (diff) | |
download | mediapointer-dvb-s2-c2ca96fee8c574074c67c9da023e4165f2f9b2e3.tar.gz mediapointer-dvb-s2-c2ca96fee8c574074c67c9da023e4165f2f9b2e3.tar.bz2 |
removed old API docs
Diffstat (limited to 'dvb-spec/API/dvb_api/demux.xml')
-rw-r--r-- | dvb-spec/API/dvb_api/demux.xml | 568 |
1 files changed, 0 insertions, 568 deletions
diff --git a/dvb-spec/API/dvb_api/demux.xml b/dvb-spec/API/dvb_api/demux.xml deleted file mode 100644 index b15824d0b..000000000 --- a/dvb-spec/API/dvb_api/demux.xml +++ /dev/null @@ -1,568 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><title> - linuxtv.org|DVB Demux 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 Demux API</h2></font> - - <p> - The DVB demux device lets you set TS, PID and section filters in the DVB - device. This is internally accomplished through calls to the - <a href="demux_mod.xml">demux kernel module</a>. - The demux device can be accessed through /dev/ost/demux. - </p> - - <p> - The function calls defined in the include file - <a href="dmx.h">dmx.h</a> are described in detail below: - </p> - - <p> - <font face="arial, helvetica" size="+1">Demux API IO control calls</font> - -<p> -<pre> - -int open(const char *deviceName, int flags); - - DESCRIPTION - - This system call, used with a device name of /dev/ost/demuxn, where n - denotes the specific demux device to be opened, allocates a new filter - and returns a handle which can be used for subsequent control of that - filter. This call has to be made for each filter to be used, i.e. every - returned file descriptor is a reference to a single filter. - /dev/ost/dvrn is a logical device to be used for retrieving Transport - Streams for digital video recording. n identifies the physical demux - device that provides the actual DVR functionlaity. When reading from - this device a transport stream containing the packets from all PES - filters set in the corresponfing demux device (/dev/osst/demuxn) having the output set to DMX_OUT_TS_TAP. A recorded Transport Stream - is replayed by writing to this device. - This device can only be opened in read-write mode. - 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. - - - PARAMETERS - - const char *deviceName I Name of the demux device, which should be - /dev/ost/demuxn where n denotes the - specific demux device to be opened, or the - name of a logical DVR device, /dev/ost/dvrn. - - int flags I A bit-wise OR of the following flags: - O_RDWR read/write access. - O_NONBLOCK open in non-blocking mode - (blocking mode is the default). - - RETURNS - - ENODEV Device driver not loaded/available. - - EINVAL Invalid argument. - - EMFILE "Too many open files", i.e. no more filters available. - - ENOMEM The driver failed to allocate enough memory. - - - -</pre> -</p> - -<p> -<pre> - -int close(int fd); - - DESCRIPTION - - This system call deactivates and deallocates a filter that was previously - allocated via the open() call. - - PARAMETERS - - int fd I 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 read(int fd, void *buf, size_t count); - - DESCRIPTION - - This system call returns filtered data, which might be section or PES - data. The filtered data is transferred from the driver's internal circular - buffer to buf. The maximum amount of data to be transferred is implied by - count. - - When returning section data the driver always tries to return a complete - single section (even though buf would provide buffer space for more data). - If the size of the buffer is smaller than the section as much as possible - will be returned, and the remaining data will be provided in subsequent - calls. - The size of the internal buffer is 2 * 4096 bytes (the size of two maximum - sized sections) by default. The size of this buffer may be changed by - using the DMX_SET_BUFFER_SIZE function. If the buffer is not large enough, - or if the read operations are not performed fast enough, this may result - in a buffer overflow error. In this case EBUFFEROVERFLOW will be returned, - and the circular buffer will be emptied. - This call is blocking if there is no data to return, i.e. the process - will be put to sleep waiting for data, unless the O_NONBLOCK flag is - specified. - Note that in order to be able to read, the filtering process has to be - started by defining either a section or a PES filter by means of the - ioctl functions, and then starting the filtering process via the DMX_START - ioctl function or by setting the DMX_IMMEDIATE_START flag. - If the reading is done from a logical DVR demux device, the data will - constitute a Transport Stream including the packets from all PES filters - in the corresponding demux device /dev/ost/demuxn having the output set - to DMX_OUT_TS_TAP. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - void *buf O Pointer to the buffer to be used for returned filtered data. - - size_t count I Size of buf. - - RETURNS - - EWOULDBLOCK No data to return and O_NONBLOCK was specified. - - EBADF fd is not a valid open file descriptor - - ECRC Last section had a CRC error ­ no data - returned. The buffer is flushed. - - EBUFFEROVERFLOW The filtered data was not read from the buffer in - due time, resulting in non-read data being lost. - The buffer is flushed. - - ETIMEDOUT The section was not loaded within the stated - timeout period. See ioctl DMX_SET_FILTER for - how to set a timeout. - - EFAULT The driver failed to write to the callers buffer - due to an invalid *buf pointer. - - - -</pre> -</p> - -<p> -<pre> - -ssize_t write(int fd, const void *buf, size_t count); - - DESCRIPTION - - This system call is only provided by the logical device /dev/ost/dvrn, - where n identifies the physical demux device that provides the actual - DVR functionality. It is used for replay of a digitally recorded - Transport Stream. Matching filters have to be defined in the - corresponding physical demux device, /dev/ost/demuxn. - The amount of data to be transferred is implied by count. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - void *buf I Pointer to the buffer containing the Transport Stream. - - size_t count I Size of buf. - - RETURNS - - EWOULDBLOCK No data was written. This might happen if - O_NONBLOCK was specified and there is no more - buffer space available (if O_NONBLOCK is not - specified the function will block until buffer - space is available). - - EBUSY This error code indicates that there are - conflicting requests. The corresponding demux - device is setup to receive data from the front- - end. Make sure that these filters are stopped - and that the filters with input set to DMX_IN_DVR - are started. - - EBADF fd is not a valid open file descriptor - - - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_START); - - DESCRIPTION - - This ioctl call is used to start the actual filtering operation - defined via the ioctl calls DMX_SET_FILTER or DMX_SET_PES_FILTER. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_START for this command. - - RETURNS - - EBADF fd is not a valid file descriptor - - EINVAL Invalid argument, i.e. no filtering parameters - provided via the DMX_SET_FILTER or - DMX_SET_PES_FILTER functions. - - EBUSY This error code indicates that there are - conflicting requests. There are active filters - filtering data from another input source. Make - sure that these filters are stopped before starting - this filter. - - - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_STOP); - - DESCRIPTION - - This ioctl call is used to stop the actual filtering operation defined - via the ioctl calls DMX_SET_FILTER or DMX_SET_PES_FILTER and started via - the DMX_START command. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_STOP for this command. - - RETURNS - - EBADF fd is not a valid file descriptor - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_SET_FILTER, struct dmxSctFilterParams *params); - - DESCRIPTION - - This ioctl call sets up a filter according to the filter and mask - parameters provided. A timeout may be defined stating number of seconds - to wait for a section to be loaded. A value of 0 means that no timeout - should be applied. Finally there is a flag field where it is possible to - state whether a section should be CRC-checked, whether the filter should - be a "one-shot" filter, i.e. if the filtering operation should be stopped - after the first section is received, and whether the filtering operation - should be started immediately (without waiting for a DMX_START ioctl call). - If a filter was previously set-up, this filter will be cancelled, and the - receive buffer will be flushed. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_SET_FILTER for this command. - - struct I Pointer to structure containing filter - - dmxSctFilterParams parameters. - *params - - RETURNS - - EBADF fd is not a valid file descriptor - - EINVAL Invalid argument. - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_SET_PES_FILTER, struct dmxPesFilterParams *params); - - DESCRIPTION - - This ioctl call sets up a PES filter according to the parameters provided. - By a PES filter is meant a filter that is based just on the packet - identifier (PID), i.e. no PES header or payload filtering capability is - supported. - The transport stream destination for the filtered output may be set. Also - the PES type may be stated in order to be able to e.g. direct a video - stream directly to the video decoder. Finally there is a flag field where - it is possible to state whether the filtering operation should be started - immediately (without waiting for a DMX_START ioctl call). - If a filter was previously set-up, this filter will be cancelled, and the - receive buffer will be flushed. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_SET_PES_FILTER for this command. - - struct I Pointer to structure containing filter - - dmxPesFilterParams parameters. - *params - - RETURNS - - EBADF fd is not a valid file descriptor - - EINVAL Invalid argument. - - EBUSY This error code indicates that there are - conflicting requests. There are active filters - filtering data from another input source. Make - sure that these filters are stopped before starting - this filter. - - - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_SET_BUFFER_SIZE, unsigned long size); - - DESCRIPTION - - This ioctl call is used to set the size of the circular buffer used - for filtered data. The default size is two maximum sized sections, i.e. - if this function is not called a buffer size of 2 * 4096 bytes will be - used. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_SET_BUFFER_SIZE for this command. - - unsigned long size I Size of circular buffer. - - RETURNS - - EBADF fd is not a valid file descriptor. - - ENOMEM The driver was not able to allocate a buffer of the requested size. - - - -</pre> -</p> - -<p> -<pre> - -int ioctl( int fd, int request = DMX_GET_EVENT, struct dmxEvent *ev); - - DESCRIPTION - - This ioctl call returns an event 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. - Only the latest event for each filter is saved. - - PARAMETERS - - int fd I File descriptor returned by a previous call to open(). - - int request I Equals DMX_SET_BUFFER_SIZE for this command. - - struct dmxEvent *ev O Pointer to the location where the event is to be stored. - - RETURNS - - EBADF fd is not a valid file descriptor. - - EFAULT ev points to an invalid address. - - EWOULDBLOCK There is no event pending, and the device is in non-blocking mode. - - - -</pre> -</p> - </p> - - </td></tr></table></body></html> - -<!-- This page was served in 1643 milliseconds by Cocoon 1.7.4 --> |