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`` and ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``
20 - Unknown entity. That generally indicates that a driver didn't
21 initialize properly the entity, with is a Kernel bug
25 - ``MEDIA_ENT_F_IO_V4L``
27 - Data streaming input and/or output entity.
31 - ``MEDIA_ENT_F_IO_VBI``
33 - V4L VBI streaming input or output entity
37 - ``MEDIA_ENT_F_IO_SWRADIO``
39 - V4L Software Digital Radio (SDR) streaming input or output entity
43 - ``MEDIA_ENT_F_IO_DTV``
45 - DVB Digital TV streaming input or output entity
49 - ``MEDIA_ENT_F_DTV_DEMOD``
51 - Digital TV demodulator entity.
55 - ``MEDIA_ENT_F_TS_DEMUX``
57 - MPEG Transport stream demux entity. Could be implemented on
58 hardware or in Kernelspace by the Linux DVB subsystem.
62 - ``MEDIA_ENT_F_DTV_CA``
64 - Digital TV Conditional Access module (CAM) entity
68 - ``MEDIA_ENT_F_DTV_NET_DECAP``
70 - Digital TV network ULE/MLE desencapsulation entity. Could be
71 implemented on hardware or in Kernelspace
75 - ``MEDIA_ENT_F_CONN_RF``
77 - Connector for a Radio Frequency (RF) signal.
81 - ``MEDIA_ENT_F_CONN_SVIDEO``
83 - Connector for a S-Video signal.
87 - ``MEDIA_ENT_F_CONN_COMPOSITE``
89 - Connector for a RGB composite signal.
93 - ``MEDIA_ENT_F_CAM_SENSOR``
95 - Camera video sensor entity.
99 - ``MEDIA_ENT_F_FLASH``
101 - Flash controller entity.
105 - ``MEDIA_ENT_F_LENS``
107 - Lens controller entity.
111 - ``MEDIA_ENT_F_ATV_DECODER``
113 - Analog video decoder, the basic function of the video decoder is
114 to accept analogue video from a wide variety of sources such as
115 broadcast, DVD players, cameras and video cassette recorders, in
116 either NTSC, PAL, SECAM or HD format, separating the stream into
117 its component parts, luminance and chrominance, and output it in
118 some digital video standard, with appropriate timing signals.
122 - ``MEDIA_ENT_F_TUNER``
124 - Digital TV, analog TV, radio and/or software radio tuner, with
125 consists on a PLL tuning stage that converts radio frequency (RF)
126 signal into an Intermediate Frequency (IF). Modern tuners have
127 internally IF-PLL decoders for audio and video, but older models
128 have those stages implemented on separate entities.
132 - ``MEDIA_ENT_F_IF_VID_DECODER``
134 - IF-PLL video decoder. It receives the IF from a PLL and decodes
135 the analog TV video signal. This is commonly found on some very
136 old analog tuners, like Philips MK3 designs. They all contain a
137 tda9887 (or some software compatible similar chip, like tda9885).
138 Those devices use a different I2C address than the tuner PLL.
142 - ``MEDIA_ENT_F_IF_AUD_DECODER``
144 - IF-PLL sound decoder. It receives the IF from a PLL and decodes
145 the analog TV audio signal. This is commonly found on some very
146 old analog hardware, like Micronas msp3400, Philips tda9840,
147 tda985x, etc. Those devices use a different I2C address than the
148 tuner PLL and should be controlled together with the IF-PLL video
153 - ``MEDIA_ENT_F_AUDIO_CAPTURE``
155 - Audio Capture Function Entity.
159 - ``MEDIA_ENT_F_AUDIO_PLAYBACK``
161 - Audio Playback Function Entity.
165 - ``MEDIA_ENT_F_AUDIO_MIXER``
167 - Audio Mixer Function Entity.
171 .. _media-entity-flag:
173 .. flat-table:: Media entity flags
180 - ``MEDIA_ENT_FL_DEFAULT``
182 - Default entity for its type. Used to discover the default audio,
183 VBI and video devices, the default camera sensor, ...
187 - ``MEDIA_ENT_FL_CONNECTOR``
189 - The entity represents a data conector
195 .. flat-table:: Media interface types
202 - ``MEDIA_INTF_T_DVB_FE``
204 - Device node interface for the Digital TV frontend
206 - typically, /dev/dvb/adapter?/frontend?
210 - ``MEDIA_INTF_T_DVB_DEMUX``
212 - Device node interface for the Digital TV demux
214 - typically, /dev/dvb/adapter?/demux?
218 - ``MEDIA_INTF_T_DVB_DVR``
220 - Device node interface for the Digital TV DVR
222 - typically, /dev/dvb/adapter?/dvr?
226 - ``MEDIA_INTF_T_DVB_CA``
228 - Device node interface for the Digital TV Conditional Access
230 - typically, /dev/dvb/adapter?/ca?
234 - ``MEDIA_INTF_T_DVB_FE``
236 - Device node interface for the Digital TV network control
238 - typically, /dev/dvb/adapter?/net?
242 - ``MEDIA_INTF_T_V4L_VIDEO``
244 - Device node interface for video (V4L)
246 - typically, /dev/video?
250 - ``MEDIA_INTF_T_V4L_VBI``
252 - Device node interface for VBI (V4L)
254 - typically, /dev/vbi?
258 - ``MEDIA_INTF_T_V4L_RADIO``
260 - Device node interface for radio (V4L)
262 - typically, /dev/vbi?
266 - ``MEDIA_INTF_T_V4L_SUBDEV``
268 - Device node interface for a V4L subdevice
270 - typically, /dev/v4l-subdev?
274 - ``MEDIA_INTF_T_V4L_SWRADIO``
276 - Device node interface for Software Defined Radio (V4L)
278 - typically, /dev/swradio?
282 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE``
284 - Device node interface for ALSA PCM Capture
286 - typically, /dev/snd/pcmC?D?c
290 - ``MEDIA_INTF_T_ALSA_PCM_PLAYBACK``
292 - Device node interface for ALSA PCM Playback
294 - typically, /dev/snd/pcmC?D?p
298 - ``MEDIA_INTF_T_ALSA_CONTROL``
300 - Device node interface for ALSA Control
302 - typically, /dev/snd/controlC?
306 - ``MEDIA_INTF_T_ALSA_COMPRESS``
308 - Device node interface for ALSA Compress
310 - typically, /dev/snd/compr?
314 - ``MEDIA_INTF_T_ALSA_RAWMIDI``
316 - Device node interface for ALSA Raw MIDI
318 - typically, /dev/snd/midi?
322 - ``MEDIA_INTF_T_ALSA_HWDEP``
324 - Device node interface for ALSA Hardware Dependent
326 - typically, /dev/snd/hwC?D?
330 - ``MEDIA_INTF_T_ALSA_SEQUENCER``
332 - Device node interface for ALSA Sequencer
334 - typically, /dev/snd/seq
338 - ``MEDIA_INTF_T_ALSA_TIMER``
340 - Device node interface for ALSA Timer
342 - typically, /dev/snd/timer
348 .. flat-table:: Media pad flags
355 - ``MEDIA_PAD_FL_SINK``
357 - Input pad, relative to the entity. Input pads sink data and are
362 - ``MEDIA_PAD_FL_SOURCE``
364 - Output pad, relative to the entity. Output pads source data and
365 are origins of links.
369 - ``MEDIA_PAD_FL_MUST_CONNECT``
371 - If this flag is set and the pad is linked to any other pad, then
372 at least one of those links must be enabled for the entity to be
373 able to stream. There could be temporary reasons (e.g. device
374 configuration dependent) for the pad to need enabled links even
375 when this flag isn't set; the absence of the flag doesn't imply
379 One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
380 must be set for every pad.
385 .. flat-table:: Media link flags
392 - ``MEDIA_LNK_FL_ENABLED``
394 - The link is enabled and can be used to transfer media data. When
395 two or more links target a sink pad, only one of them can be
400 - ``MEDIA_LNK_FL_IMMUTABLE``
402 - The link enabled state can't be modified at runtime. An immutable
403 link is always enabled.
407 - ``MEDIA_LNK_FL_DYNAMIC``
409 - The link enabled state can be modified during streaming. This flag
410 is set by drivers and is read-only for applications.
414 - ``MEDIA_LNK_FL_LINK_TYPE``
416 - This is a bitmask that defines the type of the link. Currently,
417 two types of links are supported:
419 ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads
421 ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an
422 interface and an entity