78 lines · plain
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later2.. c:namespace:: DTV.dmx3 4.. _dmx_fread:5 6=======================7Digital TV demux read()8=======================9 10Name11----12 13Digital TV demux read()14 15Synopsis16--------17 18.. c:function:: size_t read(int fd, void *buf, size_t count)19 20Arguments21---------22 23``fd``24 File descriptor returned by a previous call to :c:func:`open()`.25 26 ``buf``27 Buffer to be filled28 29``count``30 Max number of bytes to read31 32Description33-----------34 35This system call returns filtered data, which might be section or Packetized36Elementary Stream (PES) data. The filtered data is transferred from37the driver's internal circular buffer to ``buf``. The maximum amount of data38to be transferred is implied by count.39 40.. note::41 42 if a section filter created with43 :c:type:`DMX_CHECK_CRC <dmx_sct_filter_params>` flag set,44 data that fails on CRC check will be silently ignored.45 46Return Value47------------48 49On success 0 is returned.50 51On error -1 is returned, and the ``errno`` variable is set52appropriately.53 54.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|55 56.. flat-table::57 :header-rows: 058 :stub-columns: 059 :widths: 1 1660 61 - - ``EWOULDBLOCK``62 - No data to return and ``O_NONBLOCK`` was specified.63 64 - - ``EOVERFLOW``65 - The filtered data was not read from the buffer in due time,66 resulting in non-read data being lost. The buffer is flushed.67 68 - - ``ETIMEDOUT``69 - The section was not loaded within the stated timeout period.70 See ioctl :ref:`DMX_SET_FILTER` for how to set a timeout.71 72 - - ``EFAULT``73 - The driver failed to write to the callers buffer due to an74 invalid \*buf pointer.75 76The generic error codes are described at the77:ref:`Generic Error Codes <gen-errors>` chapter.78