| .. -*- coding: utf-8; mode: rst -*- |
| |
| .. _media-controller-types: |
| |
| Types and flags used to represent the media graph elements |
| ========================================================== |
| |
| .. tabularcolumns:: |p{8.2cm}|p{10.3cm}| |
| |
| .. _media-entity-functions: |
| .. _MEDIA-ENT-F-UNKNOWN: |
| .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN: |
| .. _MEDIA-ENT-F-IO-V4L: |
| .. _MEDIA-ENT-F-IO-VBI: |
| .. _MEDIA-ENT-F-IO-SWRADIO: |
| .. _MEDIA-ENT-F-IO-DTV: |
| .. _MEDIA-ENT-F-DTV-DEMOD: |
| .. _MEDIA-ENT-F-TS-DEMUX: |
| .. _MEDIA-ENT-F-DTV-CA: |
| .. _MEDIA-ENT-F-DTV-NET-DECAP: |
| .. _MEDIA-ENT-F-CONN-RF: |
| .. _MEDIA-ENT-F-CONN-SVIDEO: |
| .. _MEDIA-ENT-F-CONN-COMPOSITE: |
| .. _MEDIA-ENT-F-CAM-SENSOR: |
| .. _MEDIA-ENT-F-FLASH: |
| .. _MEDIA-ENT-F-LENS: |
| .. _MEDIA-ENT-F-ATV-DECODER: |
| .. _MEDIA-ENT-F-TUNER: |
| .. _MEDIA-ENT-F-IF-VID-DECODER: |
| .. _MEDIA-ENT-F-IF-AUD-DECODER: |
| .. _MEDIA-ENT-F-AUDIO-CAPTURE: |
| .. _MEDIA-ENT-F-AUDIO-PLAYBACK: |
| .. _MEDIA-ENT-F-AUDIO-MIXER: |
| .. _MEDIA-ENT-F-PROC-VIDEO-COMPOSER: |
| .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-FORMATTER: |
| .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-ENC-CONV: |
| .. _MEDIA-ENT-F-PROC-VIDEO-LUT: |
| .. _MEDIA-ENT-F-PROC-VIDEO-SCALER: |
| .. _MEDIA-ENT-F-PROC-VIDEO-STATISTICS: |
| .. _MEDIA-ENT-F-PROC-VIDEO-ENCODER: |
| .. _MEDIA-ENT-F-PROC-VIDEO-DECODER: |
| .. _MEDIA-ENT-F-VID-MUX: |
| .. _MEDIA-ENT-F-VID-IF-BRIDGE: |
| .. _MEDIA-ENT-F-DV-DECODER: |
| .. _MEDIA-ENT-F-DV-ENCODER: |
| |
| .. cssclass:: longtable |
| |
| .. flat-table:: Media entity functions |
| :header-rows: 0 |
| :stub-columns: 0 |
| |
| * - ``MEDIA_ENT_F_UNKNOWN`` and |
| ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` |
| - Unknown entity. That generally indicates that a driver didn't |
| initialize properly the entity, which is a Kernel bug |
| |
| * - ``MEDIA_ENT_F_IO_V4L`` |
| - Data streaming input and/or output entity. |
| |
| * - ``MEDIA_ENT_F_IO_VBI`` |
| - V4L VBI streaming input or output entity |
| |
| * - ``MEDIA_ENT_F_IO_SWRADIO`` |
| - V4L Software Digital Radio (SDR) streaming input or output entity |
| |
| * - ``MEDIA_ENT_F_IO_DTV`` |
| - DVB Digital TV streaming input or output entity |
| |
| * - ``MEDIA_ENT_F_DTV_DEMOD`` |
| - Digital TV demodulator entity. |
| |
| * - ``MEDIA_ENT_F_TS_DEMUX`` |
| - MPEG Transport stream demux entity. Could be implemented on |
| hardware or in Kernelspace by the Linux DVB subsystem. |
| |
| * - ``MEDIA_ENT_F_DTV_CA`` |
| - Digital TV Conditional Access module (CAM) entity |
| |
| * - ``MEDIA_ENT_F_DTV_NET_DECAP`` |
| - Digital TV network ULE/MLE desencapsulation entity. Could be |
| implemented on hardware or in Kernelspace |
| |
| * - ``MEDIA_ENT_F_CONN_RF`` |
| - Connector for a Radio Frequency (RF) signal. |
| |
| * - ``MEDIA_ENT_F_CONN_SVIDEO`` |
| - Connector for a S-Video signal. |
| |
| * - ``MEDIA_ENT_F_CONN_COMPOSITE`` |
| - Connector for a RGB composite signal. |
| |
| * - ``MEDIA_ENT_F_CAM_SENSOR`` |
| - Camera video sensor entity. |
| |
| * - ``MEDIA_ENT_F_FLASH`` |
| - Flash controller entity. |
| |
| * - ``MEDIA_ENT_F_LENS`` |
| - Lens controller entity. |
| |
| * - ``MEDIA_ENT_F_ATV_DECODER`` |
| - Analog video decoder, the basic function of the video decoder is |
| to accept analogue video from a wide variety of sources such as |
| broadcast, DVD players, cameras and video cassette recorders, in |
| either NTSC, PAL, SECAM or HD format, separating the stream into |
| its component parts, luminance and chrominance, and output it in |
| some digital video standard, with appropriate timing signals. |
| |
| * - ``MEDIA_ENT_F_TUNER`` |
| - Digital TV, analog TV, radio and/or software radio tuner, with |
| consists on a PLL tuning stage that converts radio frequency (RF) |
| signal into an Intermediate Frequency (IF). Modern tuners have |
| internally IF-PLL decoders for audio and video, but older models |
| have those stages implemented on separate entities. |
| |
| * - ``MEDIA_ENT_F_IF_VID_DECODER`` |
| - IF-PLL video decoder. It receives the IF from a PLL and decodes |
| the analog TV video signal. This is commonly found on some very |
| old analog tuners, like Philips MK3 designs. They all contain a |
| tda9887 (or some software compatible similar chip, like tda9885). |
| Those devices use a different I2C address than the tuner PLL. |
| |
| * - ``MEDIA_ENT_F_IF_AUD_DECODER`` |
| - IF-PLL sound decoder. It receives the IF from a PLL and decodes |
| the analog TV audio signal. This is commonly found on some very |
| old analog hardware, like Micronas msp3400, Philips tda9840, |
| tda985x, etc. Those devices use a different I2C address than the |
| tuner PLL and should be controlled together with the IF-PLL video |
| decoder. |
| |
| * - ``MEDIA_ENT_F_AUDIO_CAPTURE`` |
| - Audio Capture Function Entity. |
| |
| * - ``MEDIA_ENT_F_AUDIO_PLAYBACK`` |
| - Audio Playback Function Entity. |
| |
| * - ``MEDIA_ENT_F_AUDIO_MIXER`` |
| - Audio Mixer Function Entity. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_COMPOSER`` |
| - Video composer (blender). An entity capable of video |
| composing must have at least two sink pads and one source |
| pad, and composes input video frames onto output video |
| frames. Composition can be performed using alpha blending, |
| color keying, raster operations (ROP), stitching or any other |
| means. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER`` |
| - Video pixel formatter. An entity capable of pixel formatting |
| must have at least one sink pad and one source pad. Read |
| pixel formatters read pixels from memory and perform a subset |
| of unpacking, cropping, color keying, alpha multiplication |
| and pixel encoding conversion. Write pixel formatters perform |
| a subset of dithering, pixel encoding conversion and packing |
| and write pixels to memory. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV`` |
| - Video pixel encoding converter. An entity capable of pixel |
| enconding conversion must have at least one sink pad and one |
| source pad, and convert the encoding of pixels received on |
| its sink pad(s) to a different encoding output on its source |
| pad(s). Pixel encoding conversion includes but isn't limited |
| to RGB to/from HSV, RGB to/from YUV and CFA (Bayer) to RGB |
| conversions. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_LUT`` |
| - Video look-up table. An entity capable of video lookup table |
| processing must have one sink pad and one source pad. It uses |
| the values of the pixels received on its sink pad to look up |
| entries in internal tables and output them on its source pad. |
| The lookup processing can be performed on all components |
| separately or combine them for multi-dimensional table |
| lookups. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_SCALER`` |
| - Video scaler. An entity capable of video scaling must have |
| at least one sink pad and one source pad, and scale the |
| video frame(s) received on its sink pad(s) to a different |
| resolution output on its source pad(s). The range of |
| supported scaling ratios is entity-specific and can differ |
| between the horizontal and vertical directions (in particular |
| scaling can be supported in one direction only). Binning and |
| sub-sampling (occasionally also referred to as skipping) are |
| considered as scaling. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_STATISTICS`` |
| - Video statistics computation (histogram, 3A, etc.). An entity |
| capable of statistics computation must have one sink pad and |
| one source pad. It computes statistics over the frames |
| received on its sink pad and outputs the statistics data on |
| its source pad. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_ENCODER`` |
| - Video (MPEG, HEVC, VPx, etc.) encoder. An entity capable of |
| compressing video frames. Must have one sink pad and at least |
| one source pad. |
| |
| * - ``MEDIA_ENT_F_PROC_VIDEO_DECODER`` |
| - Video (MPEG, HEVC, VPx, etc.) decoder. An entity capable of |
| decompressing a compressed video stream into uncompressed video |
| frames. Must have one sink pad and at least one source pad. |
| |
| * - ``MEDIA_ENT_F_VID_MUX`` |
| - Video multiplexer. An entity capable of multiplexing must have at |
| least two sink pads and one source pad, and must pass the video |
| frame(s) received from the active sink pad to the source pad. |
| |
| * - ``MEDIA_ENT_F_VID_IF_BRIDGE`` |
| - Video interface bridge. A video interface bridge entity must have at |
| least one sink pad and at least one source pad. It receives video |
| frames on its sink pad from an input video bus of one type (HDMI, eDP, |
| MIPI CSI-2, etc.), and outputs them on its source pad to an output |
| video bus of another type (eDP, MIPI CSI-2, parallel, etc.). |
| |
| * - ``MEDIA_ENT_F_DV_DECODER`` |
| - Digital video decoder. The basic function of the video decoder is |
| to accept digital video from a wide variety of sources |
| and output it in some digital video standard, with appropriate |
| timing signals. |
| |
| * - ``MEDIA_ENT_F_DV_ENCODER`` |
| - Digital video encoder. The basic function of the video encoder is |
| to accept digital video from some digital video standard with |
| appropriate timing signals (usually a parallel video bus with sync |
| signals) and output this to a digital video output connector such |
| as HDMI or DisplayPort. |
| |
| .. tabularcolumns:: |p{5.5cm}|p{12.0cm}| |
| |
| .. _media-entity-flag: |
| .. _MEDIA-ENT-FL-DEFAULT: |
| .. _MEDIA-ENT-FL-CONNECTOR: |
| |
| .. flat-table:: Media entity flags |
| :header-rows: 0 |
| :stub-columns: 0 |
| |
| * - ``MEDIA_ENT_FL_DEFAULT`` |
| - Default entity for its type. Used to discover the default audio, |
| VBI and video devices, the default camera sensor, etc. |
| |
| * - ``MEDIA_ENT_FL_CONNECTOR`` |
| - The entity represents a connector. |
| |
| |
| .. tabularcolumns:: |p{6.5cm}|p{6.0cm}|p{5.0cm}| |
| |
| .. _media-intf-type: |
| .. _MEDIA-INTF-T-DVB-FE: |
| .. _MEDIA-INTF-T-DVB-DEMUX: |
| .. _MEDIA-INTF-T-DVB-DVR: |
| .. _MEDIA-INTF-T-DVB-CA: |
| .. _MEDIA-INTF-T-DVB-NET: |
| .. _MEDIA-INTF-T-V4L-VIDEO: |
| .. _MEDIA-INTF-T-V4L-VBI: |
| .. _MEDIA-INTF-T-V4L-RADIO: |
| .. _MEDIA-INTF-T-V4L-SUBDEV: |
| .. _MEDIA-INTF-T-V4L-SWRADIO: |
| .. _MEDIA-INTF-T-V4L-TOUCH: |
| .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE: |
| .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK: |
| .. _MEDIA-INTF-T-ALSA-CONTROL: |
| .. _MEDIA-INTF-T-ALSA-COMPRESS: |
| .. _MEDIA-INTF-T-ALSA-RAWMIDI: |
| .. _MEDIA-INTF-T-ALSA-HWDEP: |
| .. _MEDIA-INTF-T-ALSA-SEQUENCER: |
| .. _MEDIA-INTF-T-ALSA-TIMER: |
| |
| .. flat-table:: Media interface types |
| :header-rows: 0 |
| :stub-columns: 0 |
| |
| * - ``MEDIA_INTF_T_DVB_FE`` |
| - Device node interface for the Digital TV frontend |
| - typically, /dev/dvb/adapter?/frontend? |
| |
| * - ``MEDIA_INTF_T_DVB_DEMUX`` |
| - Device node interface for the Digital TV demux |
| - typically, /dev/dvb/adapter?/demux? |
| |
| * - ``MEDIA_INTF_T_DVB_DVR`` |
| - Device node interface for the Digital TV DVR |
| - typically, /dev/dvb/adapter?/dvr? |
| |
| * - ``MEDIA_INTF_T_DVB_CA`` |
| - Device node interface for the Digital TV Conditional Access |
| - typically, /dev/dvb/adapter?/ca? |
| |
| * - ``MEDIA_INTF_T_DVB_NET`` |
| - Device node interface for the Digital TV network control |
| - typically, /dev/dvb/adapter?/net? |
| |
| * - ``MEDIA_INTF_T_V4L_VIDEO`` |
| - Device node interface for video (V4L) |
| - typically, /dev/video? |
| |
| * - ``MEDIA_INTF_T_V4L_VBI`` |
| - Device node interface for VBI (V4L) |
| - typically, /dev/vbi? |
| |
| * - ``MEDIA_INTF_T_V4L_RADIO`` |
| - Device node interface for radio (V4L) |
| - typically, /dev/radio? |
| |
| * - ``MEDIA_INTF_T_V4L_SUBDEV`` |
| - Device node interface for a V4L subdevice |
| - typically, /dev/v4l-subdev? |
| |
| * - ``MEDIA_INTF_T_V4L_SWRADIO`` |
| - Device node interface for Software Defined Radio (V4L) |
| - typically, /dev/swradio? |
| |
| * - ``MEDIA_INTF_T_V4L_TOUCH`` |
| - Device node interface for Touch device (V4L) |
| - typically, /dev/v4l-touch? |
| |
| * - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE`` |
| - Device node interface for ALSA PCM Capture |
| - typically, /dev/snd/pcmC?D?c |
| |
| * - ``MEDIA_INTF_T_ALSA_PCM_PLAYBACK`` |
| - Device node interface for ALSA PCM Playback |
| - typically, /dev/snd/pcmC?D?p |
| |
| * - ``MEDIA_INTF_T_ALSA_CONTROL`` |
| - Device node interface for ALSA Control |
| - typically, /dev/snd/controlC? |
| |
| * - ``MEDIA_INTF_T_ALSA_COMPRESS`` |
| - Device node interface for ALSA Compress |
| - typically, /dev/snd/compr? |
| |
| * - ``MEDIA_INTF_T_ALSA_RAWMIDI`` |
| - Device node interface for ALSA Raw MIDI |
| - typically, /dev/snd/midi? |
| |
| * - ``MEDIA_INTF_T_ALSA_HWDEP`` |
| - Device node interface for ALSA Hardware Dependent |
| - typically, /dev/snd/hwC?D? |
| |
| * - ``MEDIA_INTF_T_ALSA_SEQUENCER`` |
| - Device node interface for ALSA Sequencer |
| - typically, /dev/snd/seq |
| |
| * - ``MEDIA_INTF_T_ALSA_TIMER`` |
| - Device node interface for ALSA Timer |
| - typically, /dev/snd/timer |
| |
| |
| .. tabularcolumns:: |p{5.5cm}|p{12.0cm}| |
| |
| .. _media-pad-flag: |
| .. _MEDIA-PAD-FL-SINK: |
| .. _MEDIA-PAD-FL-SOURCE: |
| .. _MEDIA-PAD-FL-MUST-CONNECT: |
| |
| .. flat-table:: Media pad flags |
| :header-rows: 0 |
| :stub-columns: 0 |
| |
| * - ``MEDIA_PAD_FL_SINK`` |
| - Input pad, relative to the entity. Input pads sink data and are |
| targets of links. |
| |
| * - ``MEDIA_PAD_FL_SOURCE`` |
| - Output pad, relative to the entity. Output pads source data and |
| are origins of links. |
| |
| * - ``MEDIA_PAD_FL_MUST_CONNECT`` |
| - If this flag is set and the pad is linked to any other pad, then |
| at least one of those links must be enabled for the entity to be |
| able to stream. There could be temporary reasons (e.g. device |
| configuration dependent) for the pad to need enabled links even |
| when this flag isn't set; the absence of the flag doesn't imply |
| there is none. |
| |
| |
| One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE`` |
| must be set for every pad. |
| |
| .. tabularcolumns:: |p{5.5cm}|p{12.0cm}| |
| |
| .. _media-link-flag: |
| .. _MEDIA-LNK-FL-ENABLED: |
| .. _MEDIA-LNK-FL-IMMUTABLE: |
| .. _MEDIA-LNK-FL-DYNAMIC: |
| .. _MEDIA-LNK-FL-LINK-TYPE: |
| |
| .. flat-table:: Media link flags |
| :header-rows: 0 |
| :stub-columns: 0 |
| |
| * - ``MEDIA_LNK_FL_ENABLED`` |
| - The link is enabled and can be used to transfer media data. When |
| two or more links target a sink pad, only one of them can be |
| enabled at a time. |
| |
| * - ``MEDIA_LNK_FL_IMMUTABLE`` |
| - The link enabled state can't be modified at runtime. An immutable |
| link is always enabled. |
| |
| * - ``MEDIA_LNK_FL_DYNAMIC`` |
| - The link enabled state can be modified during streaming. This flag |
| is set by drivers and is read-only for applications. |
| |
| * - ``MEDIA_LNK_FL_LINK_TYPE`` |
| - This is a bitmask that defines the type of the link. Currently, |
| two types of links are supported: |
| |
| .. _MEDIA-LNK-FL-DATA-LINK: |
| |
| ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads |
| |
| .. _MEDIA-LNK-FL-INTERFACE-LINK: |
| |
| ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an |
| interface and an entity |