1.. -*- coding: utf-8; mode: rst -*- 2 3.. _media-controller-types: 4 5Types and flags used to represent the media graph elements 6========================================================== 7 8.. tabularcolumns:: |p{8.2cm}|p{10.3cm}| 9 10.. _media-entity-type: 11 12.. cssclass:: longtable 13 14.. flat-table:: Media entity types 15 :header-rows: 0 16 :stub-columns: 0 17 18 19 - .. row 1 20 21 .. _MEDIA-ENT-F-UNKNOWN: 22 .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN: 23 24 - ``MEDIA_ENT_F_UNKNOWN`` and 25 26 ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` 27 28 - Unknown entity. That generally indicates that a driver didn't 29 initialize properly the entity, with is a Kernel bug 30 31 - .. row 2 32 33 .. _MEDIA-ENT-F-IO-V4L: 34 35 - ``MEDIA_ENT_F_IO_V4L`` 36 37 - Data streaming input and/or output entity. 38 39 - .. row 3 40 41 .. _MEDIA-ENT-F-IO-VBI: 42 43 - ``MEDIA_ENT_F_IO_VBI`` 44 45 - V4L VBI streaming input or output entity 46 47 - .. row 4 48 49 .. _MEDIA-ENT-F-IO-SWRADIO: 50 51 - ``MEDIA_ENT_F_IO_SWRADIO`` 52 53 - V4L Software Digital Radio (SDR) streaming input or output entity 54 55 - .. row 5 56 57 .. _MEDIA-ENT-F-IO-DTV: 58 59 - ``MEDIA_ENT_F_IO_DTV`` 60 61 - DVB Digital TV streaming input or output entity 62 63 - .. row 6 64 65 .. _MEDIA-ENT-F-DTV-DEMOD: 66 67 - ``MEDIA_ENT_F_DTV_DEMOD`` 68 69 - Digital TV demodulator entity. 70 71 - .. row 7 72 73 .. _MEDIA-ENT-F-TS-DEMUX: 74 75 - ``MEDIA_ENT_F_TS_DEMUX`` 76 77 - MPEG Transport stream demux entity. Could be implemented on 78 hardware or in Kernelspace by the Linux DVB subsystem. 79 80 - .. row 8 81 82 .. _MEDIA-ENT-F-DTV-CA: 83 84 - ``MEDIA_ENT_F_DTV_CA`` 85 86 - Digital TV Conditional Access module (CAM) entity 87 88 - .. row 9 89 90 .. _MEDIA-ENT-F-DTV-NET-DECAP: 91 92 - ``MEDIA_ENT_F_DTV_NET_DECAP`` 93 94 - Digital TV network ULE/MLE desencapsulation entity. Could be 95 implemented on hardware or in Kernelspace 96 97 - .. row 10 98 99 .. _MEDIA-ENT-F-CONN-RF: 100 101 - ``MEDIA_ENT_F_CONN_RF`` 102 103 - Connector for a Radio Frequency (RF) signal. 104 105 - .. row 11 106 107 .. _MEDIA-ENT-F-CONN-SVIDEO: 108 109 - ``MEDIA_ENT_F_CONN_SVIDEO`` 110 111 - Connector for a S-Video signal. 112 113 - .. row 12 114 115 .. _MEDIA-ENT-F-CONN-COMPOSITE: 116 117 - ``MEDIA_ENT_F_CONN_COMPOSITE`` 118 119 - Connector for a RGB composite signal. 120 121 - .. row 13 122 123 .. _MEDIA-ENT-F-CAM-SENSOR: 124 125 - ``MEDIA_ENT_F_CAM_SENSOR`` 126 127 - Camera video sensor entity. 128 129 - .. row 14 130 131 .. _MEDIA-ENT-F-FLASH: 132 133 - ``MEDIA_ENT_F_FLASH`` 134 135 - Flash controller entity. 136 137 - .. row 15 138 139 .. _MEDIA-ENT-F-LENS: 140 141 - ``MEDIA_ENT_F_LENS`` 142 143 - Lens controller entity. 144 145 - .. row 16 146 147 .. _MEDIA-ENT-F-ATV-DECODER: 148 149 - ``MEDIA_ENT_F_ATV_DECODER`` 150 151 - Analog video decoder, the basic function of the video decoder is 152 to accept analogue video from a wide variety of sources such as 153 broadcast, DVD players, cameras and video cassette recorders, in 154 either NTSC, PAL, SECAM or HD format, separating the stream into 155 its component parts, luminance and chrominance, and output it in 156 some digital video standard, with appropriate timing signals. 157 158 - .. row 17 159 160 .. _MEDIA-ENT-F-TUNER: 161 162 - ``MEDIA_ENT_F_TUNER`` 163 164 - Digital TV, analog TV, radio and/or software radio tuner, with 165 consists on a PLL tuning stage that converts radio frequency (RF) 166 signal into an Intermediate Frequency (IF). Modern tuners have 167 internally IF-PLL decoders for audio and video, but older models 168 have those stages implemented on separate entities. 169 170 - .. row 18 171 172 .. _MEDIA-ENT-F-IF-VID-DECODER: 173 174 - ``MEDIA_ENT_F_IF_VID_DECODER`` 175 176 - IF-PLL video decoder. It receives the IF from a PLL and decodes 177 the analog TV video signal. This is commonly found on some very 178 old analog tuners, like Philips MK3 designs. They all contain a 179 tda9887 (or some software compatible similar chip, like tda9885). 180 Those devices use a different I2C address than the tuner PLL. 181 182 - .. row 19 183 184 .. _MEDIA-ENT-F-IF-AUD-DECODER: 185 186 - ``MEDIA_ENT_F_IF_AUD_DECODER`` 187 188 - IF-PLL sound decoder. It receives the IF from a PLL and decodes 189 the analog TV audio signal. This is commonly found on some very 190 old analog hardware, like Micronas msp3400, Philips tda9840, 191 tda985x, etc. Those devices use a different I2C address than the 192 tuner PLL and should be controlled together with the IF-PLL video 193 decoder. 194 195 - .. row 20 196 197 .. _MEDIA-ENT-F-AUDIO-CAPTURE: 198 199 - ``MEDIA_ENT_F_AUDIO_CAPTURE`` 200 201 - Audio Capture Function Entity. 202 203 - .. row 21 204 205 .. _MEDIA-ENT-F-AUDIO-PLAYBACK: 206 207 - ``MEDIA_ENT_F_AUDIO_PLAYBACK`` 208 209 - Audio Playback Function Entity. 210 211 - .. row 22 212 213 .. _MEDIA-ENT-F-AUDIO-MIXER: 214 215 - ``MEDIA_ENT_F_AUDIO_MIXER`` 216 217 - Audio Mixer Function Entity. 218 219 - .. row 23 220 221 .. _MEDIA-ENT-F-PROC-VIDEO-COMPOSER: 222 223 - ``MEDIA_ENT_F_PROC_VIDEO_COMPOSER`` 224 225 - Video composer (blender). An entity capable of video 226 composing must have at least two sink pads and one source 227 pad, and composes input video frames onto output video 228 frames. Composition can be performed using alpha blending, 229 color keying, raster operations (ROP), stitching or any other 230 means. 231 232 - .. row 24 233 234 .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-FORMATTER: 235 236 - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER`` 237 238 - Video pixel formatter. An entity capable of pixel formatting 239 must have at least one sink pad and one source pad. Read 240 pixel formatters read pixels from memory and perform a subset 241 of unpacking, cropping, color keying, alpha multiplication 242 and pixel encoding conversion. Write pixel formatters perform 243 a subset of dithering, pixel encoding conversion and packing 244 and write pixels to memory. 245 246 - .. row 25 247 248 .. _MEDIA-ENT-F-PROC-VIDEO-PIXEL-ENC-CONV: 249 250 - ``MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV`` 251 252 - Video pixel encoding converter. An entity capable of pixel 253 enconding conversion must have at least one sink pad and one 254 source pad, and convert the encoding of pixels received on 255 its sink pad(s) to a different encoding output on its source 256 pad(s). Pixel encoding conversion includes but isn't limited 257 to RGB to/from HSV, RGB to/from YUV and CFA (Bayer) to RGB 258 conversions. 259 260 - .. row 26 261 262 .. _MEDIA-ENT-F-PROC-VIDEO-LUT: 263 264 - ``MEDIA_ENT_F_PROC_VIDEO_LUT`` 265 266 - Video look-up table. An entity capable of video lookup table 267 processing must have one sink pad and one source pad. It uses 268 the values of the pixels received on its sink pad to look up 269 entries in internal tables and output them on its source pad. 270 The lookup processing can be performed on all components 271 separately or combine them for multi-dimensional table 272 lookups. 273 274 - .. row 27 275 276 .. _MEDIA-ENT-F-PROC-VIDEO-SCALER: 277 278 - ``MEDIA_ENT_F_PROC_VIDEO_SCALER`` 279 280 - Video scaler. An entity capable of video scaling must have 281 at least one sink pad and one source pad, and scale the 282 video frame(s) received on its sink pad(s) to a different 283 resolution output on its source pad(s). The range of 284 supported scaling ratios is entity-specific and can differ 285 between the horizontal and vertical directions (in particular 286 scaling can be supported in one direction only). Binning and 287 sub-sampling (occasionally also referred to as skipping) are 288 considered as scaling. 289 290 - .. row 28 291 292 .. _MEDIA-ENT-F-PROC-VIDEO-STATISTICS: 293 294 - ``MEDIA_ENT_F_PROC_VIDEO_STATISTICS`` 295 296 - Video statistics computation (histogram, 3A, ...). An entity 297 capable of statistics computation must have one sink pad and 298 one source pad. It computes statistics over the frames 299 received on its sink pad and outputs the statistics data on 300 its source pad. 301 302 - .. row 29 303 304 .. _MEDIA-ENT-F-VID-MUX: 305 306 - ``MEDIA_ENT_F_VID_MUX`` 307 308 - Video multiplexer. An entity capable of multiplexing must have at 309 least two sink pads and one source pad, and must pass the video 310 frame(s) received from the active sink pad to the source pad. 311 312 - .. row 30 313 314 .. _MEDIA-ENT-F-VID-IF-BRIDGE: 315 316 - ``MEDIA_ENT_F_VID_IF_BRIDGE`` 317 318 - Video interface bridge. A video interface bridge entity must have at 319 least one sink pad and at least one source pad. It receives video 320 frames on its sink pad from an input video bus of one type (HDMI, eDP, 321 MIPI CSI-2, ...), and outputs them on its source pad to an output 322 video bus of another type (eDP, MIPI CSI-2, parallel, ...). 323 324.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| 325 326.. _media-entity-flag: 327 328.. flat-table:: Media entity flags 329 :header-rows: 0 330 :stub-columns: 0 331 332 333 - .. row 1 334 335 .. _MEDIA-ENT-FL-DEFAULT: 336 337 - ``MEDIA_ENT_FL_DEFAULT`` 338 339 - Default entity for its type. Used to discover the default audio, 340 VBI and video devices, the default camera sensor, ... 341 342 - .. row 2 343 344 .. _MEDIA-ENT-FL-CONNECTOR: 345 346 - ``MEDIA_ENT_FL_CONNECTOR`` 347 348 - The entity represents a data conector 349 350 351.. tabularcolumns:: |p{6.5cm}|p{6.0cm}|p{5.0cm}| 352 353.. _media-intf-type: 354 355.. flat-table:: Media interface types 356 :header-rows: 0 357 :stub-columns: 0 358 359 360 - .. row 1 361 362 .. _MEDIA-INTF-T-DVB-FE: 363 364 - ``MEDIA_INTF_T_DVB_FE`` 365 366 - Device node interface for the Digital TV frontend 367 368 - typically, /dev/dvb/adapter?/frontend? 369 370 - .. row 2 371 372 .. _MEDIA-INTF-T-DVB-DEMUX: 373 374 - ``MEDIA_INTF_T_DVB_DEMUX`` 375 376 - Device node interface for the Digital TV demux 377 378 - typically, /dev/dvb/adapter?/demux? 379 380 - .. row 3 381 382 .. _MEDIA-INTF-T-DVB-DVR: 383 384 - ``MEDIA_INTF_T_DVB_DVR`` 385 386 - Device node interface for the Digital TV DVR 387 388 - typically, /dev/dvb/adapter?/dvr? 389 390 - .. row 4 391 392 .. _MEDIA-INTF-T-DVB-CA: 393 394 - ``MEDIA_INTF_T_DVB_CA`` 395 396 - Device node interface for the Digital TV Conditional Access 397 398 - typically, /dev/dvb/adapter?/ca? 399 400 - .. row 5 401 402 .. _MEDIA-INTF-T-DVB-NET: 403 404 - ``MEDIA_INTF_T_DVB_NET`` 405 406 - Device node interface for the Digital TV network control 407 408 - typically, /dev/dvb/adapter?/net? 409 410 - .. row 6 411 412 .. _MEDIA-INTF-T-V4L-VIDEO: 413 414 - ``MEDIA_INTF_T_V4L_VIDEO`` 415 416 - Device node interface for video (V4L) 417 418 - typically, /dev/video? 419 420 - .. row 7 421 422 .. _MEDIA-INTF-T-V4L-VBI: 423 424 - ``MEDIA_INTF_T_V4L_VBI`` 425 426 - Device node interface for VBI (V4L) 427 428 - typically, /dev/vbi? 429 430 - .. row 8 431 432 .. _MEDIA-INTF-T-V4L-RADIO: 433 434 - ``MEDIA_INTF_T_V4L_RADIO`` 435 436 - Device node interface for radio (V4L) 437 438 - typically, /dev/radio? 439 440 - .. row 9 441 442 .. _MEDIA-INTF-T-V4L-SUBDEV: 443 444 - ``MEDIA_INTF_T_V4L_SUBDEV`` 445 446 - Device node interface for a V4L subdevice 447 448 - typically, /dev/v4l-subdev? 449 450 - .. row 10 451 452 .. _MEDIA-INTF-T-V4L-SWRADIO: 453 454 - ``MEDIA_INTF_T_V4L_SWRADIO`` 455 456 - Device node interface for Software Defined Radio (V4L) 457 458 - typically, /dev/swradio? 459 460 - .. row 11 461 462 .. _MEDIA-INTF-T-V4L-TOUCH: 463 464 - ``MEDIA_INTF_T_V4L_TOUCH`` 465 466 - Device node interface for Touch device (V4L) 467 468 - typically, /dev/v4l-touch? 469 470 - .. row 12 471 472 .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE: 473 474 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE`` 475 476 - Device node interface for ALSA PCM Capture 477 478 - typically, /dev/snd/pcmC?D?c 479 480 - .. row 13 481 482 .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK: 483 484 - ``MEDIA_INTF_T_ALSA_PCM_PLAYBACK`` 485 486 - Device node interface for ALSA PCM Playback 487 488 - typically, /dev/snd/pcmC?D?p 489 490 - .. row 14 491 492 .. _MEDIA-INTF-T-ALSA-CONTROL: 493 494 - ``MEDIA_INTF_T_ALSA_CONTROL`` 495 496 - Device node interface for ALSA Control 497 498 - typically, /dev/snd/controlC? 499 500 - .. row 15 501 502 .. _MEDIA-INTF-T-ALSA-COMPRESS: 503 504 - ``MEDIA_INTF_T_ALSA_COMPRESS`` 505 506 - Device node interface for ALSA Compress 507 508 - typically, /dev/snd/compr? 509 510 - .. row 16 511 512 .. _MEDIA-INTF-T-ALSA-RAWMIDI: 513 514 - ``MEDIA_INTF_T_ALSA_RAWMIDI`` 515 516 - Device node interface for ALSA Raw MIDI 517 518 - typically, /dev/snd/midi? 519 520 - .. row 17 521 522 .. _MEDIA-INTF-T-ALSA-HWDEP: 523 524 - ``MEDIA_INTF_T_ALSA_HWDEP`` 525 526 - Device node interface for ALSA Hardware Dependent 527 528 - typically, /dev/snd/hwC?D? 529 530 - .. row 18 531 532 .. _MEDIA-INTF-T-ALSA-SEQUENCER: 533 534 - ``MEDIA_INTF_T_ALSA_SEQUENCER`` 535 536 - Device node interface for ALSA Sequencer 537 538 - typically, /dev/snd/seq 539 540 - .. row 19 541 542 .. _MEDIA-INTF-T-ALSA-TIMER: 543 544 - ``MEDIA_INTF_T_ALSA_TIMER`` 545 546 - Device node interface for ALSA Timer 547 548 - typically, /dev/snd/timer 549 550 551.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| 552 553.. _media-pad-flag: 554 555.. flat-table:: Media pad flags 556 :header-rows: 0 557 :stub-columns: 0 558 559 560 - .. row 1 561 562 .. _MEDIA-PAD-FL-SINK: 563 564 - ``MEDIA_PAD_FL_SINK`` 565 566 - Input pad, relative to the entity. Input pads sink data and are 567 targets of links. 568 569 - .. row 2 570 571 .. _MEDIA-PAD-FL-SOURCE: 572 573 - ``MEDIA_PAD_FL_SOURCE`` 574 575 - Output pad, relative to the entity. Output pads source data and 576 are origins of links. 577 578 - .. row 3 579 580 .. _MEDIA-PAD-FL-MUST-CONNECT: 581 582 - ``MEDIA_PAD_FL_MUST_CONNECT`` 583 584 - If this flag is set and the pad is linked to any other pad, then 585 at least one of those links must be enabled for the entity to be 586 able to stream. There could be temporary reasons (e.g. device 587 configuration dependent) for the pad to need enabled links even 588 when this flag isn't set; the absence of the flag doesn't imply 589 there is none. 590 591 592One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE`` 593must be set for every pad. 594 595.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| 596 597.. _media-link-flag: 598 599.. flat-table:: Media link flags 600 :header-rows: 0 601 :stub-columns: 0 602 603 604 - .. row 1 605 606 .. _MEDIA-LNK-FL-ENABLED: 607 608 - ``MEDIA_LNK_FL_ENABLED`` 609 610 - The link is enabled and can be used to transfer media data. When 611 two or more links target a sink pad, only one of them can be 612 enabled at a time. 613 614 - .. row 2 615 616 .. _MEDIA-LNK-FL-IMMUTABLE: 617 618 - ``MEDIA_LNK_FL_IMMUTABLE`` 619 620 - The link enabled state can't be modified at runtime. An immutable 621 link is always enabled. 622 623 - .. row 3 624 625 .. _MEDIA-LNK-FL-DYNAMIC: 626 627 - ``MEDIA_LNK_FL_DYNAMIC`` 628 629 - The link enabled state can be modified during streaming. This flag 630 is set by drivers and is read-only for applications. 631 632 - .. row 4 633 634 .. _MEDIA-LNK-FL-LINK-TYPE: 635 636 - ``MEDIA_LNK_FL_LINK_TYPE`` 637 638 - This is a bitmask that defines the type of the link. Currently, 639 two types of links are supported: 640 641 .. _MEDIA-LNK-FL-DATA-LINK: 642 643 ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads 644 645 .. _MEDIA-LNK-FL-INTERFACE-LINK: 646 647 ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an 648 interface and an entity 649