diff options
Diffstat (limited to 'Documentation/media/uapi/mediactl/media-types.rst')
-rw-r--r-- | Documentation/media/uapi/mediactl/media-types.rst | 422 |
1 files changed, 422 insertions, 0 deletions
diff --git a/Documentation/media/uapi/mediactl/media-types.rst b/Documentation/media/uapi/mediactl/media-types.rst new file mode 100644 index 000000000000..a35fc15a3137 --- /dev/null +++ b/Documentation/media/uapi/mediactl/media-types.rst @@ -0,0 +1,422 @@ +.. -*- coding: utf-8; mode: rst -*- + +.. _media-controller-types: + +Types and flags used to represent the media graph elements +========================================================== + + +.. _media-entity-type: + +.. flat-table:: Media entity types + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``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, with is a Kernel bug + + - .. row 2 + + - ``MEDIA_ENT_F_IO_V4L`` + + - Data streaming input and/or output entity. + + - .. row 3 + + - ``MEDIA_ENT_F_IO_VBI`` + + - V4L VBI streaming input or output entity + + - .. row 4 + + - ``MEDIA_ENT_F_IO_SWRADIO`` + + - V4L Software Digital Radio (SDR) streaming input or output entity + + - .. row 5 + + - ``MEDIA_ENT_F_IO_DTV`` + + - DVB Digital TV streaming input or output entity + + - .. row 6 + + - ``MEDIA_ENT_F_DTV_DEMOD`` + + - Digital TV demodulator entity. + + - .. row 7 + + - ``MEDIA_ENT_F_TS_DEMUX`` + + - MPEG Transport stream demux entity. Could be implemented on + hardware or in Kernelspace by the Linux DVB subsystem. + + - .. row 8 + + - ``MEDIA_ENT_F_DTV_CA`` + + - Digital TV Conditional Access module (CAM) entity + + - .. row 9 + + - ``MEDIA_ENT_F_DTV_NET_DECAP`` + + - Digital TV network ULE/MLE desencapsulation entity. Could be + implemented on hardware or in Kernelspace + + - .. row 10 + + - ``MEDIA_ENT_F_CONN_RF`` + + - Connector for a Radio Frequency (RF) signal. + + - .. row 11 + + - ``MEDIA_ENT_F_CONN_SVIDEO`` + + - Connector for a S-Video signal. + + - .. row 12 + + - ``MEDIA_ENT_F_CONN_COMPOSITE`` + + - Connector for a RGB composite signal. + + - .. row 13 + + - ``MEDIA_ENT_F_CAM_SENSOR`` + + - Camera video sensor entity. + + - .. row 14 + + - ``MEDIA_ENT_F_FLASH`` + + - Flash controller entity. + + - .. row 15 + + - ``MEDIA_ENT_F_LENS`` + + - Lens controller entity. + + - .. row 16 + + - ``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. + + - .. row 17 + + - ``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. + + - .. row 18 + + - ``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. + + - .. row 19 + + - ``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. + + - .. row 20 + + - ``MEDIA_ENT_F_AUDIO_CAPTURE`` + + - Audio Capture Function Entity. + + - .. row 21 + + - ``MEDIA_ENT_F_AUDIO_PLAYBACK`` + + - Audio Playback Function Entity. + + - .. row 22 + + - ``MEDIA_ENT_F_AUDIO_MIXER`` + + - Audio Mixer Function Entity. + + + +.. _media-entity-flag: + +.. flat-table:: Media entity flags + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``MEDIA_ENT_FL_DEFAULT`` + + - Default entity for its type. Used to discover the default audio, + VBI and video devices, the default camera sensor, ... + + - .. row 2 + + - ``MEDIA_ENT_FL_CONNECTOR`` + + - The entity represents a data conector + + + +.. _media-intf-type: + +.. flat-table:: Media interface types + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``MEDIA_INTF_T_DVB_FE`` + + - Device node interface for the Digital TV frontend + + - typically, /dev/dvb/adapter?/frontend? + + - .. row 2 + + - ``MEDIA_INTF_T_DVB_DEMUX`` + + - Device node interface for the Digital TV demux + + - typically, /dev/dvb/adapter?/demux? + + - .. row 3 + + - ``MEDIA_INTF_T_DVB_DVR`` + + - Device node interface for the Digital TV DVR + + - typically, /dev/dvb/adapter?/dvr? + + - .. row 4 + + - ``MEDIA_INTF_T_DVB_CA`` + + - Device node interface for the Digital TV Conditional Access + + - typically, /dev/dvb/adapter?/ca? + + - .. row 5 + + - ``MEDIA_INTF_T_DVB_FE`` + + - Device node interface for the Digital TV network control + + - typically, /dev/dvb/adapter?/net? + + - .. row 6 + + - ``MEDIA_INTF_T_V4L_VIDEO`` + + - Device node interface for video (V4L) + + - typically, /dev/video? + + - .. row 7 + + - ``MEDIA_INTF_T_V4L_VBI`` + + - Device node interface for VBI (V4L) + + - typically, /dev/vbi? + + - .. row 8 + + - ``MEDIA_INTF_T_V4L_RADIO`` + + - Device node interface for radio (V4L) + + - typically, /dev/vbi? + + - .. row 9 + + - ``MEDIA_INTF_T_V4L_SUBDEV`` + + - Device node interface for a V4L subdevice + + - typically, /dev/v4l-subdev? + + - .. row 10 + + - ``MEDIA_INTF_T_V4L_SWRADIO`` + + - Device node interface for Software Defined Radio (V4L) + + - typically, /dev/swradio? + + - .. row 11 + + - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE`` + + - Device node interface for ALSA PCM Capture + + - typically, /dev/snd/pcmC?D?c + + - .. row 12 + + - ``MEDIA_INTF_T_ALSA_PCM_PLAYBACK`` + + - Device node interface for ALSA PCM Playback + + - typically, /dev/snd/pcmC?D?p + + - .. row 13 + + - ``MEDIA_INTF_T_ALSA_CONTROL`` + + - Device node interface for ALSA Control + + - typically, /dev/snd/controlC? + + - .. row 14 + + - ``MEDIA_INTF_T_ALSA_COMPRESS`` + + - Device node interface for ALSA Compress + + - typically, /dev/snd/compr? + + - .. row 15 + + - ``MEDIA_INTF_T_ALSA_RAWMIDI`` + + - Device node interface for ALSA Raw MIDI + + - typically, /dev/snd/midi? + + - .. row 16 + + - ``MEDIA_INTF_T_ALSA_HWDEP`` + + - Device node interface for ALSA Hardware Dependent + + - typically, /dev/snd/hwC?D? + + - .. row 17 + + - ``MEDIA_INTF_T_ALSA_SEQUENCER`` + + - Device node interface for ALSA Sequencer + + - typically, /dev/snd/seq + + - .. row 18 + + - ``MEDIA_INTF_T_ALSA_TIMER`` + + - Device node interface for ALSA Timer + + - typically, /dev/snd/timer + + + +.. _media-pad-flag: + +.. flat-table:: Media pad flags + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``MEDIA_PAD_FL_SINK`` + + - Input pad, relative to the entity. Input pads sink data and are + targets of links. + + - .. row 2 + + - ``MEDIA_PAD_FL_SOURCE`` + + - Output pad, relative to the entity. Output pads source data and + are origins of links. + + - .. row 3 + + - ``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. + + +.. _media-link-flag: + +.. flat-table:: Media link flags + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``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. + + - .. row 2 + + - ``MEDIA_LNK_FL_IMMUTABLE`` + + - The link enabled state can't be modified at runtime. An immutable + link is always enabled. + + - .. row 3 + + - ``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. + + - .. row 4 + + - ``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`` if the link is between two pads + + ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an + interface and an entity |