1 .. -*- coding: utf-8; mode: rst -*-
3 .. _media-controller-types:
5 Types and flags used to represent the media graph elements
6 ==========================================================
11 .. flat-table:: Media entity types
18 .. _MEDIA-ENT-F-UNKNOWN:
19 .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN:
21 - ``MEDIA_ENT_F_UNKNOWN`` and ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``
23 - Unknown entity. That generally indicates that a driver didn't
24 initialize properly the entity, with is a Kernel bug
28 .. _MEDIA-ENT-F-IO-V4L:
30 - ``MEDIA_ENT_F_IO_V4L``
32 - Data streaming input and/or output entity.
36 .. _MEDIA-ENT-F-IO-VBI:
38 - ``MEDIA_ENT_F_IO_VBI``
40 - V4L VBI streaming input or output entity
44 .. _MEDIA-ENT-F-IO-SWRADIO:
46 - ``MEDIA_ENT_F_IO_SWRADIO``
48 - V4L Software Digital Radio (SDR) streaming input or output entity
52 .. _MEDIA-ENT-F-IO-DTV:
54 - ``MEDIA_ENT_F_IO_DTV``
56 - DVB Digital TV streaming input or output entity
60 .. _MEDIA-ENT-F-DTV-DEMOD:
62 - ``MEDIA_ENT_F_DTV_DEMOD``
64 - Digital TV demodulator entity.
68 .. _MEDIA-ENT-F-TS-DEMUX:
70 - ``MEDIA_ENT_F_TS_DEMUX``
72 - MPEG Transport stream demux entity. Could be implemented on
73 hardware or in Kernelspace by the Linux DVB subsystem.
77 .. _MEDIA-ENT-F-DTV-CA:
79 - ``MEDIA_ENT_F_DTV_CA``
81 - Digital TV Conditional Access module (CAM) entity
85 .. _MEDIA-ENT-F-DTV-NET-DECAP:
87 - ``MEDIA_ENT_F_DTV_NET_DECAP``
89 - Digital TV network ULE/MLE desencapsulation entity. Could be
90 implemented on hardware or in Kernelspace
94 .. _MEDIA-ENT-F-CONN-RF:
96 - ``MEDIA_ENT_F_CONN_RF``
98 - Connector for a Radio Frequency (RF) signal.
102 .. _MEDIA-ENT-F-CONN-SVIDEO:
104 - ``MEDIA_ENT_F_CONN_SVIDEO``
106 - Connector for a S-Video signal.
110 .. _MEDIA-ENT-F-CONN-COMPOSITE:
112 - ``MEDIA_ENT_F_CONN_COMPOSITE``
114 - Connector for a RGB composite signal.
118 .. _MEDIA-ENT-F-CAM-SENSOR:
120 - ``MEDIA_ENT_F_CAM_SENSOR``
122 - Camera video sensor entity.
126 .. _MEDIA-ENT-F-FLASH:
128 - ``MEDIA_ENT_F_FLASH``
130 - Flash controller entity.
134 .. _MEDIA-ENT-F-LENS:
136 - ``MEDIA_ENT_F_LENS``
138 - Lens controller entity.
142 .. _MEDIA-ENT-F-ATV-DECODER:
144 - ``MEDIA_ENT_F_ATV_DECODER``
146 - Analog video decoder, the basic function of the video decoder is
147 to accept analogue video from a wide variety of sources such as
148 broadcast, DVD players, cameras and video cassette recorders, in
149 either NTSC, PAL, SECAM or HD format, separating the stream into
150 its component parts, luminance and chrominance, and output it in
151 some digital video standard, with appropriate timing signals.
155 .. _MEDIA-ENT-F-TUNER:
157 - ``MEDIA_ENT_F_TUNER``
159 - Digital TV, analog TV, radio and/or software radio tuner, with
160 consists on a PLL tuning stage that converts radio frequency (RF)
161 signal into an Intermediate Frequency (IF). Modern tuners have
162 internally IF-PLL decoders for audio and video, but older models
163 have those stages implemented on separate entities.
167 .. _MEDIA-ENT-F-IF-VID-DECODER:
169 - ``MEDIA_ENT_F_IF_VID_DECODER``
171 - IF-PLL video decoder. It receives the IF from a PLL and decodes
172 the analog TV video signal. This is commonly found on some very
173 old analog tuners, like Philips MK3 designs. They all contain a
174 tda9887 (or some software compatible similar chip, like tda9885).
175 Those devices use a different I2C address than the tuner PLL.
179 .. _MEDIA-ENT-F-IF-AUD-DECODER:
181 - ``MEDIA_ENT_F_IF_AUD_DECODER``
183 - IF-PLL sound decoder. It receives the IF from a PLL and decodes
184 the analog TV audio signal. This is commonly found on some very
185 old analog hardware, like Micronas msp3400, Philips tda9840,
186 tda985x, etc. Those devices use a different I2C address than the
187 tuner PLL and should be controlled together with the IF-PLL video
192 .. _MEDIA-ENT-F-AUDIO-CAPTURE:
194 - ``MEDIA_ENT_F_AUDIO_CAPTURE``
196 - Audio Capture Function Entity.
200 .. _MEDIA-ENT-F-AUDIO-PLAYBACK:
202 - ``MEDIA_ENT_F_AUDIO_PLAYBACK``
204 - Audio Playback Function Entity.
208 .. _MEDIA-ENT-F-AUDIO-MIXER:
210 - ``MEDIA_ENT_F_AUDIO_MIXER``
212 - Audio Mixer Function Entity.
216 .. _MEDIA-ENT-F-PROC-VIDEO-COMPOSER:
218 - ``MEDIA_ENT_F_PROC_VIDEO_COMPOSER``
220 - Video composer (blender). An entity capable of video
221 composing must have at least two sink pads and one source
222 pad, and composes input video frames onto output video
223 frames. Composition can be performed using alpha blending,
224 color keying, raster operations (ROP), stitching or any other
229 .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-FORMATTER:
231 - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER``
233 - Video pixel formatter. An entity capable of pixel formatting
234 must have at least one sink pad and one source pad. Read
235 pixel formatters read pixels from memory and perform a subset
236 of unpacking, cropping, color keying, alpha multiplication
237 and pixel encoding conversion. Write pixel formatters perform
238 a subset of dithering, pixel encoding conversion and packing
239 and write pixels to memory.
243 .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-ENC-CONV:
245 - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV``
247 - Video pixel encoding converter. An entity capable of pixel
248 enconding conversion must have at least one sink pad and one
249 source pad, and convert the encoding of pixels received on
250 its sink pad(s) to a different encoding output on its source
251 pad(s). Pixel encoding conversion includes but isn't limited
252 to RGB to/from HSV, RGB to/from YUV and CFA (Bayer) to RGB
257 .. _MEDIA-ENT-F-PROC-VIDEO-LUT:
259 - ``MEDIA_ENT_F_PROC_VIDEO_LUT``
261 - Video look-up table. An entity capable of video lookup table
262 processing must have one sink pad and one source pad. It uses
263 the values of the pixels received on its sink pad to look up
264 entries in internal tables and output them on its source pad.
265 The lookup processing can be performed on all components
266 separately or combine them for multi-dimensional table
271 .. _MEDIA-ENT-F-PROC-VIDEO-SCALER:
273 - ``MEDIA_ENT_F_PROC_VIDEO_SCALER``
275 - Video scaler. An entity capable of video scaling must have
276 at least one sink pad and one source pad, and scale the
277 video frame(s) received on its sink pad(s) to a different
278 resolution output on its source pad(s). The range of
279 supported scaling ratios is entity-specific and can differ
280 between the horizontal and vertical directions (in particular
281 scaling can be supported in one direction only). Binning and
282 skipping are considered as scaling.
286 .. _MEDIA-ENT-F-PROC-VIDEO-STATISTICS:
288 - ``MEDIA_ENT_F_PROC_VIDEO_STATISTICS``
290 - Video statistics computation (histogram, 3A, ...). An entity
291 capable of statistics computation must have one sink pad and
292 one source pad. It computes statistics over the frames
293 received on its sink pad and outputs the statistics data on
297 .. _media-entity-flag:
299 .. flat-table:: Media entity flags
306 .. _MEDIA-ENT-FL-DEFAULT:
308 - ``MEDIA_ENT_FL_DEFAULT``
310 - Default entity for its type. Used to discover the default audio,
311 VBI and video devices, the default camera sensor, ...
315 .. _MEDIA-ENT-FL-CONNECTOR:
317 - ``MEDIA_ENT_FL_CONNECTOR``
319 - The entity represents a data conector
325 .. flat-table:: Media interface types
332 .. _MEDIA-INTF-T-DVB-FE:
334 - ``MEDIA_INTF_T_DVB_FE``
336 - Device node interface for the Digital TV frontend
338 - typically, /dev/dvb/adapter?/frontend?
342 .. _MEDIA-INTF-T-DVB-DEMUX:
344 - ``MEDIA_INTF_T_DVB_DEMUX``
346 - Device node interface for the Digital TV demux
348 - typically, /dev/dvb/adapter?/demux?
352 .. _MEDIA-INTF-T-DVB-DVR:
354 - ``MEDIA_INTF_T_DVB_DVR``
356 - Device node interface for the Digital TV DVR
358 - typically, /dev/dvb/adapter?/dvr?
362 .. _MEDIA-INTF-T-DVB-CA:
364 - ``MEDIA_INTF_T_DVB_CA``
366 - Device node interface for the Digital TV Conditional Access
368 - typically, /dev/dvb/adapter?/ca?
372 .. _MEDIA-INTF-T-DVB-NET:
374 - ``MEDIA_INTF_T_DVB_NET``
376 - Device node interface for the Digital TV network control
378 - typically, /dev/dvb/adapter?/net?
382 .. _MEDIA-INTF-T-V4L-VIDEO:
384 - ``MEDIA_INTF_T_V4L_VIDEO``
386 - Device node interface for video (V4L)
388 - typically, /dev/video?
392 .. _MEDIA-INTF-T-V4L-VBI:
394 - ``MEDIA_INTF_T_V4L_VBI``
396 - Device node interface for VBI (V4L)
398 - typically, /dev/vbi?
402 .. _MEDIA-INTF-T-V4L-RADIO:
404 - ``MEDIA_INTF_T_V4L_RADIO``
406 - Device node interface for radio (V4L)
408 - typically, /dev/vbi?
412 .. _MEDIA-INTF-T-V4L-SUBDEV:
414 - ``MEDIA_INTF_T_V4L_SUBDEV``
416 - Device node interface for a V4L subdevice
418 - typically, /dev/v4l-subdev?
422 .. _MEDIA-INTF-T-V4L-SWRADIO:
424 - ``MEDIA_INTF_T_V4L_SWRADIO``
426 - Device node interface for Software Defined Radio (V4L)
428 - typically, /dev/swradio?
432 .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE:
434 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE``
436 - Device node interface for ALSA PCM Capture
438 - typically, /dev/snd/pcmC?D?c
442 .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK:
444 - ``MEDIA_INTF_T_ALSA_PCM_PLAYBACK``
446 - Device node interface for ALSA PCM Playback
448 - typically, /dev/snd/pcmC?D?p
452 .. _MEDIA-INTF-T-ALSA-CONTROL:
454 - ``MEDIA_INTF_T_ALSA_CONTROL``
456 - Device node interface for ALSA Control
458 - typically, /dev/snd/controlC?
462 .. _MEDIA-INTF-T-ALSA-COMPRESS:
464 - ``MEDIA_INTF_T_ALSA_COMPRESS``
466 - Device node interface for ALSA Compress
468 - typically, /dev/snd/compr?
472 .. _MEDIA-INTF-T-ALSA-RAWMIDI:
474 - ``MEDIA_INTF_T_ALSA_RAWMIDI``
476 - Device node interface for ALSA Raw MIDI
478 - typically, /dev/snd/midi?
482 .. _MEDIA-INTF-T-ALSA-HWDEP:
484 - ``MEDIA_INTF_T_ALSA_HWDEP``
486 - Device node interface for ALSA Hardware Dependent
488 - typically, /dev/snd/hwC?D?
492 .. _MEDIA-INTF-T-ALSA-SEQUENCER:
494 - ``MEDIA_INTF_T_ALSA_SEQUENCER``
496 - Device node interface for ALSA Sequencer
498 - typically, /dev/snd/seq
502 .. _MEDIA-INTF-T-ALSA-TIMER:
504 - ``MEDIA_INTF_T_ALSA_TIMER``
506 - Device node interface for ALSA Timer
508 - typically, /dev/snd/timer
514 .. flat-table:: Media pad flags
521 .. _MEDIA-PAD-FL-SINK:
523 - ``MEDIA_PAD_FL_SINK``
525 - Input pad, relative to the entity. Input pads sink data and are
530 .. _MEDIA-PAD-FL-SOURCE:
532 - ``MEDIA_PAD_FL_SOURCE``
534 - Output pad, relative to the entity. Output pads source data and
535 are origins of links.
539 .. _MEDIA-PAD-FL-MUST-CONNECT:
541 - ``MEDIA_PAD_FL_MUST_CONNECT``
543 - If this flag is set and the pad is linked to any other pad, then
544 at least one of those links must be enabled for the entity to be
545 able to stream. There could be temporary reasons (e.g. device
546 configuration dependent) for the pad to need enabled links even
547 when this flag isn't set; the absence of the flag doesn't imply
551 One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
552 must be set for every pad.
557 .. flat-table:: Media link flags
564 .. _MEDIA-LNK-FL-ENABLED:
566 - ``MEDIA_LNK_FL_ENABLED``
568 - The link is enabled and can be used to transfer media data. When
569 two or more links target a sink pad, only one of them can be
574 .. _MEDIA-LNK-FL-IMMUTABLE:
576 - ``MEDIA_LNK_FL_IMMUTABLE``
578 - The link enabled state can't be modified at runtime. An immutable
579 link is always enabled.
583 .. _MEDIA-LNK-FL-DYNAMIC:
585 - ``MEDIA_LNK_FL_DYNAMIC``
587 - The link enabled state can be modified during streaming. This flag
588 is set by drivers and is read-only for applications.
592 .. _MEDIA-LNK-FL-LINK-TYPE:
594 - ``MEDIA_LNK_FL_LINK_TYPE``
596 - This is a bitmask that defines the type of the link. Currently,
597 two types of links are supported:
599 .. _MEDIA-LNK-FL-DATA-LINK:
601 ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads
603 .. _MEDIA-LNK-FL-INTERFACE-LINK:
605 ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an
606 interface and an entity