summaryrefslogtreecommitdiff
path: root/dvb-spec/dvbapi/demux.tex
diff options
context:
space:
mode:
Diffstat (limited to 'dvb-spec/dvbapi/demux.tex')
-rw-r--r--dvb-spec/dvbapi/demux.tex101
1 files changed, 51 insertions, 50 deletions
diff --git a/dvb-spec/dvbapi/demux.tex b/dvb-spec/dvbapi/demux.tex
index c74b133ec..dd032f58d 100644
--- a/dvb-spec/dvbapi/demux.tex
+++ b/dvb-spec/dvbapi/demux.tex
@@ -1,16 +1,14 @@
\devsec{DVB Demux Device}
The DVB demux device controls the filters of the DVB hardware/software.
-It can be accessed through \texttt{/dev/ost/demux}.
+It can be accessed through \texttt{/dev/adapter0/demux0}.
+Data types and and ioctl definitions can be accessed by including
+\texttt{linux/dvb/dmx.h} in your application.
\devsubsec{Demux Data Types}
-\begin{verbatim}
-typedef uint16_t uint16_t;
-\end{verbatim}
-
-\devsubsubsec{dmxOutput\_t}
+\devsubsubsec{dmx\_output\_t}
\label{dmxoutput}
\begin{verbatim}
@@ -19,26 +17,30 @@ typedef enum
DMX_OUT_DECODER,
DMX_OUT_TAP,
DMX_OUT_TS_TAP
-} dmx\_output_t;
+} dmx_output_t;
\end{verbatim}
-/* Output multiplexed into a new TS */
-/* (to be retrieved by reading from the */
-/* logical DVR device). */
+
+\noindent\texttt{DMX\_OUT\_TAP} delivers the stream output to the demux device
+on which the ioctl is called.
+
+\noindent\texttt{DMX\_OUT\_TS\_TAP} routes output to the logical DVR device
+\texttt{/dev/dvb/adapter0/dvr0}, which delivers a TS multiplexed from
+all filters for which \texttt{DMX\_OUT\_TS\_TAP} was specified.
-\devsubsubsec{dmxInput\_t}
+\devsubsubsec{dmx\_input\_t}
\label{dmxinput}
\begin{verbatim}
typedef enum
{
- DMX_IN_FRONTEND, /* Input from a front-end device. */
- DMX_IN_DVR /* Input from the logical DVR device. */
-} dmx\_input_t;
+ DMX_IN_FRONTEND,
+ DMX_IN_DVR
+} dmx_input_t;
\end{verbatim}
-\devsubsubsec{dmxPesType\_t}
+\devsubsubsec{dmx\_pes\_type\_t}
\label{dmxpestype}
\begin{verbatim}
@@ -50,7 +52,7 @@ typedef enum
DMX_PES_SUBTITLE,
DMX_PES_PCR,
DMX_PES_OTHER
-} dmx\_pes\_type_t;
+} dmx_pes_type_t;
\end{verbatim}
@@ -62,11 +64,11 @@ typedef enum
{
DMX_SCRAMBLING_EV,
DMX_FRONTEND_EV
-} dmx\_event_t;
+} dmx_event_t;
\end{verbatim}
-\devsubsubsec{dmxScramblingStatus\_t}
+\devsubsubsec{dmx\_scrambling\_status\_t}
\label{dmxscramblingstatus}
\begin{verbatim}
@@ -74,32 +76,32 @@ typedef enum
{
DMX_SCRAMBLING_OFF,
DMX_SCRAMBLING_ON
-} dmx\_scrambling_status_t;
+} dmx_scrambling_status_t;
\end{verbatim}
-\devsubsubsec{dmx\_filter\_t}
+\devsubsubsec{struct dmx\_filter}
\label{dmxfilter}
\begin{verbatim}
-typedef struct dmx\_filter
+typedef struct dmx_filter
{
uint8_t filter[DMX_FILTER_SIZE];
uint8_t mask[DMX_FILTER_SIZE];
-} dmx\_filter\_t;
+} dmx_filter_t;
\end{verbatim}
-\devsubsubsec{dmx\_sct\_filter\_params}
+\devsubsubsec{struct dmx\_sct\_filter\_params}
\label{dmxsctfilterparams}
\begin{verbatim}
-struct dmx\_sct\_filter\_params
+struct dmx_sct_filter_params
{
- uint16_t pid;
- dmx\_filter\_t filter;
- uint32_t timeout;
- uint32_t flags;
+ uint16_t pid;
+ dmx_filter_t filter;
+ uint32_t timeout;
+ uint32_t flags;
#define DMX_CHECK_CRC 1
#define DMX_ONESHOT 2
#define DMX_IMMEDIATE_START 4
@@ -107,32 +109,32 @@ struct dmx\_sct\_filter\_params
\end{verbatim}
-\devsubsubsec{dmx\_pes\_filter\_params}
+\devsubsubsec{struct dmx\_pes\_filter\_params}
\label{dmxpesfilterparams}
\begin{verbatim}
-struct dmx\_pes\_filter\_params
+struct dmx_pes_filter_params
{
- uint16_t pid;
- dmx\_input_t input;
- dmx\_output_t output;
- dmx\_pes\_type_t pes\_type;
- uint32_t flags;
+ uint16_t pid;
+ dmx_input_t input;
+ dmx_output_t output;
+ dmx_pes_type_t pes_type;
+ uint32_t flags;
};
\end{verbatim}
-\devsubsubsec{dmx\_event}
+\devsubsubsec{struct dmx\_event}
\label{dmxevent}
\begin{verbatim}
-struct dmx\_event
+struct dmx_event
{
- dmx\_event_t event;
- time_t timeStamp;
+ dmx_event_t event;
+ time_t timeStamp;
union
{
- dmx\_scrambling_status_t scrambling;
+ dmx_scrambling_status_t scrambling;
} u;
};
\end{verbatim}
@@ -142,16 +144,15 @@ struct dmx\_event
\devsubsec{Demux Function Calls}
\function{open()}{
int open(const char *deviceName, int flags);}{
- 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
+ This system call, used with a device name of /dev/dvb/adapter0/demux0,
+ 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 functionality. When reading from
+ /dev/dvb/adapter0/dvr0 is a logical device to be used for retrieving Transport
+ Streams for digital video recording. When reading from
this device a transport stream containing the packets from all PES
- filters set in the corresponding demux device (/dev/ost/demuxn)
+ filters set in the corresponding demux device (/dev/dvb/adapter0/demux0)
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.
@@ -211,7 +212,7 @@ struct dmx\_event
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
+ in the corresponding demux device /dev/dvb/adapter0/demux0 having the output set
to DMX\_OUT\_TS\_TAP.
}{
int fd & File descriptor returned by a previous call to open().\\
@@ -236,11 +237,11 @@ struct dmx\_event
\function{write()}{
ssize\_t write(int fd, const void *buf, size\_t count);
}{
- This system call is only provided by the logical device /dev/ost/dvrn,
- where n identifies the physical demux device that provides the actual
+ This system call is only provided by the logical device /dev/dvb/adapter0/dvr0,
+ associated with 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.
+ corresponding physical demux device, /dev/dvb/adapter0/demux0.
The amount of data to be transferred is implied by count.
}{
int fd & File descriptor returned by a previous call to open().\\