1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- .. SPDX-License-Identifier: GPL-2.0
- Digital TV Common functions
- ---------------------------
- Math functions
- ~~~~~~~~~~~~~~
- Provide some commonly-used math functions, usually required in order to
- estimate signal strength and signal to noise measurements in dB.
- .. kernel-doc:: include/media/dvb_math.h
- DVB devices
- ~~~~~~~~~~~
- Those functions are responsible for handling the DVB device nodes.
- .. kernel-doc:: include/media/dvbdev.h
- Digital TV Ring buffer
- ~~~~~~~~~~~~~~~~~~~~~~
- Those routines implement ring buffers used to handle digital TV data and
- copy it from/to userspace.
- .. note::
- 1) For performance reasons read and write routines don't check buffer sizes
- and/or number of bytes free/available. This has to be done before these
- routines are called. For example:
- .. code-block:: c
- /* write @buflen: bytes */
- free = dvb_ringbuffer_free(rbuf);
- if (free >= buflen)
- count = dvb_ringbuffer_write(rbuf, buffer, buflen);
- else
- /* do something */
- /* read min. 1000, max. @bufsize: bytes */
- avail = dvb_ringbuffer_avail(rbuf);
- if (avail >= 1000)
- count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize));
- else
- /* do something */
- 2) If there is exactly one reader and one writer, there is no need
- to lock read or write operations.
- Two or more readers must be locked against each other.
- Flushing the buffer counts as a read operation.
- Resetting the buffer counts as a read and write operation.
- Two or more writers must be locked against each other.
- .. kernel-doc:: include/media/dvb_ringbuffer.h
- Digital TV VB2 handler
- ~~~~~~~~~~~~~~~~~~~~~~
- .. kernel-doc:: include/media/dvb_vb2.h
|