| <section id="media-controller-types"> |
| <title>Types and flags used to represent the media graph elements</title> |
| |
| <table frame="none" pgwide="1" id="media-entity-type"> |
| <title>Media entity types</title> |
| <tgroup cols="2"> |
| <colspec colname="c1"/> |
| <colspec colname="c2"/> |
| <tbody valign="top"> |
| <row> |
| <entry><constant>MEDIA_ENT_F_UNKNOWN</constant> and <constant>MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN</constant></entry> |
| <entry>Unknown entity. That generally indicates that |
| a driver didn't initialize properly the entity, with is a Kernel bug</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IO_V4L</constant></entry> |
| <entry>Data streaming input and/or output entity.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IO_VBI</constant></entry> |
| <entry>V4L VBI streaming input or output entity</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IO_SWRADIO</constant></entry> |
| <entry>V4L Software Digital Radio (SDR) streaming input or output entity</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IO_DTV</constant></entry> |
| <entry>DVB Digital TV streaming input or output entity</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_DTV_DEMOD</constant></entry> |
| <entry>Digital TV demodulator entity.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_TS_DEMUX</constant></entry> |
| <entry>MPEG Transport stream demux entity. Could be implemented on hardware or in Kernelspace by the Linux DVB subsystem.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_DTV_CA</constant></entry> |
| <entry>Digital TV Conditional Access module (CAM) entity</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_DTV_NET_DECAP</constant></entry> |
| <entry>Digital TV network ULE/MLE desencapsulation entity. Could be implemented on hardware or in Kernelspace</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_CONN_RF</constant></entry> |
| <entry>Connector for a Radio Frequency (RF) signal.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_CONN_SVIDEO</constant></entry> |
| <entry>Connector for a S-Video signal.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_CONN_COMPOSITE</constant></entry> |
| <entry>Connector for a RGB composite signal.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_CAM_SENSOR</constant></entry> |
| <entry>Camera video sensor entity.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_FLASH</constant></entry> |
| <entry>Flash controller entity.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_LENS</constant></entry> |
| <entry>Lens controller entity.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_ATV_DECODER</constant></entry> |
| <entry>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.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_TUNER</constant></entry> |
| <entry>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. |
| </entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IF_VID_DECODER</constant></entry> |
| <entry>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. |
| </entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_F_IF_AUD_DECODER</constant></entry> |
| <entry>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. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table frame="none" pgwide="1" id="media-entity-flag"> |
| <title>Media entity flags</title> |
| <tgroup cols="2"> |
| <colspec colname="c1"/> |
| <colspec colname="c2"/> |
| <tbody valign="top"> |
| <row> |
| <entry><constant>MEDIA_ENT_FL_DEFAULT</constant></entry> |
| <entry>Default entity for its type. Used to discover the default |
| audio, VBI and video devices, the default camera sensor, ...</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_ENT_FL_CONNECTOR</constant></entry> |
| <entry>The entity represents a data conector</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table frame="none" pgwide="1" id="media-intf-type"> |
| <title>Media interface types</title> |
| <tgroup cols="3"> |
| <colspec colname="c1"/> |
| <colspec colname="c2"/> |
| <colspec colname="c3"/> |
| <tbody valign="top"> |
| <row> |
| <entry><constant>MEDIA_INTF_T_DVB_FE</constant></entry> |
| <entry>Device node interface for the Digital TV frontend</entry> |
| <entry>typically, /dev/dvb/adapter?/frontend?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_DVB_DEMUX</constant></entry> |
| <entry>Device node interface for the Digital TV demux</entry> |
| <entry>typically, /dev/dvb/adapter?/demux?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_DVB_DVR</constant></entry> |
| <entry>Device node interface for the Digital TV DVR</entry> |
| <entry>typically, /dev/dvb/adapter?/dvr?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_DVB_CA</constant></entry> |
| <entry>Device node interface for the Digital TV Conditional Access</entry> |
| <entry>typically, /dev/dvb/adapter?/ca?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_DVB_FE</constant></entry> |
| <entry>Device node interface for the Digital TV network control</entry> |
| <entry>typically, /dev/dvb/adapter?/net?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_V4L_VIDEO</constant></entry> |
| <entry>Device node interface for video (V4L)</entry> |
| <entry>typically, /dev/video?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_V4L_VBI</constant></entry> |
| <entry>Device node interface for VBI (V4L)</entry> |
| <entry>typically, /dev/vbi?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_V4L_RADIO</constant></entry> |
| <entry>Device node interface for radio (V4L)</entry> |
| <entry>typically, /dev/vbi?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_V4L_SUBDEV</constant></entry> |
| <entry>Device node interface for a V4L subdevice</entry> |
| <entry>typically, /dev/v4l-subdev?</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_INTF_T_V4L_SWRADIO</constant></entry> |
| <entry>Device node interface for Software Defined Radio (V4L)</entry> |
| <entry>typically, /dev/swradio?</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table frame="none" pgwide="1" id="media-pad-flag"> |
| <title>Media pad flags</title> |
| <tgroup cols="2"> |
| <colspec colname="c1"/> |
| <colspec colname="c2"/> |
| <tbody valign="top"> |
| <row> |
| <entry><constant>MEDIA_PAD_FL_SINK</constant></entry> |
| <entry>Input pad, relative to the entity. Input pads sink data and |
| are targets of links.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_PAD_FL_SOURCE</constant></entry> |
| <entry>Output pad, relative to the entity. Output pads source data |
| and are origins of links.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_PAD_FL_MUST_CONNECT</constant></entry> |
| <entry>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.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <para>One and only one of <constant>MEDIA_PAD_FL_SINK</constant> and |
| <constant>MEDIA_PAD_FL_SOURCE</constant> must be set for every pad.</para> |
| |
| <table frame="none" pgwide="1" id="media-link-flag"> |
| <title>Media link flags</title> |
| <tgroup cols="2"> |
| <colspec colname="c1"/> |
| <colspec colname="c2"/> |
| <tbody valign="top"> |
| <row> |
| <entry><constant>MEDIA_LNK_FL_ENABLED</constant></entry> |
| <entry>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.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_LNK_FL_IMMUTABLE</constant></entry> |
| <entry>The link enabled state can't be modified at runtime. An |
| immutable link is always enabled.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_LNK_FL_DYNAMIC</constant></entry> |
| <entry>The link enabled state can be modified during streaming. This |
| flag is set by drivers and is read-only for applications.</entry> |
| </row> |
| <row> |
| <entry><constant>MEDIA_LNK_FL_LINK_TYPE</constant></entry> |
| <entry><para>This is a bitmask that defines the type of the link. |
| Currently, two types of links are supported:</para> |
| <para><constant>MEDIA_LNK_FL_DATA_LINK</constant> |
| if the link is between two pads</para> |
| <para><constant>MEDIA_LNK_FL_INTERFACE_LINK</constant> |
| if the link is between an interface and an entity</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| </section> |