1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: DTV.dmx
3
4.. _dmx_fwrite:
5
6========================
7Digital TV demux write()
8========================
9
10Name
11----
12
13Digital TV demux write()
14
15Synopsis
16--------
17
18.. c:function:: ssize_t write(int fd, const void *buf, size_t count)
19
20Arguments
21---------
22
23``fd``
24  File descriptor returned by a previous call to :c:func:`open()`.
25
26``buf``
27     Buffer with data to be written
28
29``count``
30    Number of bytes at the buffer
31
32Description
33-----------
34
35This system call is only provided by the logical device
36``/dev/dvb/adapter?/dvr?``, associated with the physical demux device that
37provides the actual DVR functionality. It is used for replay of a
38digitally recorded Transport Stream. Matching filters have to be defined
39in the corresponding physical demux device, ``/dev/dvb/adapter?/demux?``.
40The amount of data to be transferred is implied by count.
41
42Return Value
43------------
44
45On success 0 is returned.
46
47On error -1 is returned, and the ``errno`` variable is set
48appropriately.
49
50.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
51
52.. flat-table::
53    :header-rows:  0
54    :stub-columns: 0
55    :widths: 1 16
56
57    -  -  ``EWOULDBLOCK``
58       -  No data was written. This might happen if ``O_NONBLOCK`` was
59	  specified and there is no more buffer space available (if
60	  ``O_NONBLOCK`` is not specified the function will block until buffer
61	  space is available).
62
63    -  -  ``EBUSY``
64       -  This error code indicates that there are conflicting requests. The
65	  corresponding demux device is setup to receive data from the
66	  front- end. Make sure that these filters are stopped and that the
67	  filters with input set to ``DMX_IN_DVR`` are started.
68
69The generic error codes are described at the
70:ref:`Generic Error Codes <gen-errors>` chapter.
71