16fb68c13SStefan Herdler.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later OR GPL-2.0 26fb68c13SStefan Herdler 36fb68c13SStefan Herdler.. c:namespace:: dtv.legacy.video 46fb68c13SStefan Herdler 56fb68c13SStefan Herdler.. _dvb_video: 66fb68c13SStefan Herdler 76fb68c13SStefan Herdler================ 86fb68c13SStefan HerdlerDVB Video Device 96fb68c13SStefan Herdler================ 106fb68c13SStefan Herdler 116fb68c13SStefan Herdler.. attention:: Do **not** use in new drivers! 126fb68c13SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 136fb68c13SStefan Herdler 146fb68c13SStefan HerdlerThe DVB video device controls the MPEG2 video decoder of the DVB 156fb68c13SStefan Herdlerhardware. It can be accessed through ``/dev/dvb/adapter0/video0``. Data 166fb68c13SStefan Herdlertypes and ioctl definitions can be accessed by including 176fb68c13SStefan Herdler``linux/dvb/video.h`` in your application. 186fb68c13SStefan Herdler 196fb68c13SStefan HerdlerNote that the DVB video device only controls decoding of the MPEG video 206fb68c13SStefan Herdlerstream, not its presentation on the TV or computer screen. On PCs this 216fb68c13SStefan Herdleris typically handled by an associated video4linux device, e.g. 226fb68c13SStefan Herdler``/dev/video``, which allows scaling and defining output windows. 236fb68c13SStefan Herdler 246fb68c13SStefan HerdlerMost DVB cards don’t have their own MPEG decoder, which results in the 256fb68c13SStefan Herdleromission of the audio and video device as well as the video4linux 266fb68c13SStefan Herdlerdevice. 276fb68c13SStefan Herdler 286fb68c13SStefan HerdlerThese ioctls were also used by V4L2 to control MPEG decoders implemented 296fb68c13SStefan Herdlerin V4L2. The use of these ioctls for that purpose has been made obsolete 306fb68c13SStefan Herdlerand proper V4L2 ioctls or controls have been created to replace that 316fb68c13SStefan Herdlerfunctionality. Use :ref:`V4L2 ioctls<video>` for new drivers! 326fb68c13SStefan Herdler 336fb68c13SStefan Herdler 346fb68c13SStefan HerdlerVideo Data Types 356fb68c13SStefan Herdler================ 366fb68c13SStefan Herdler 376fb68c13SStefan Herdler 386fb68c13SStefan Herdler 396fb68c13SStefan Herdlervideo_format_t 406fb68c13SStefan Herdler-------------- 416fb68c13SStefan Herdler 426fb68c13SStefan HerdlerSynopsis 436fb68c13SStefan Herdler~~~~~~~~ 446fb68c13SStefan Herdler 456fb68c13SStefan Herdler.. code-block:: c 466fb68c13SStefan Herdler 476fb68c13SStefan Herdler typedef enum { 486fb68c13SStefan Herdler VIDEO_FORMAT_4_3, 496fb68c13SStefan Herdler VIDEO_FORMAT_16_9, 506fb68c13SStefan Herdler VIDEO_FORMAT_221_1 516fb68c13SStefan Herdler } video_format_t; 526fb68c13SStefan Herdler 536fb68c13SStefan HerdlerConstants 546fb68c13SStefan Herdler~~~~~~~~~ 556fb68c13SStefan Herdler 566fb68c13SStefan Herdler.. flat-table:: 576fb68c13SStefan Herdler :header-rows: 0 586fb68c13SStefan Herdler :stub-columns: 0 596fb68c13SStefan Herdler 606fb68c13SStefan Herdler - .. 616fb68c13SStefan Herdler 626fb68c13SStefan Herdler - ``VIDEO_FORMAT_4_3`` 636fb68c13SStefan Herdler 646fb68c13SStefan Herdler - Select 4:3 format. 656fb68c13SStefan Herdler 666fb68c13SStefan Herdler - .. 676fb68c13SStefan Herdler 686fb68c13SStefan Herdler - ``VIDEO_FORMAT_16_9`` 696fb68c13SStefan Herdler 706fb68c13SStefan Herdler - Select 16:9 format. 716fb68c13SStefan Herdler 726fb68c13SStefan Herdler - .. 736fb68c13SStefan Herdler 746fb68c13SStefan Herdler - ``VIDEO_FORMAT_221_1`` 756fb68c13SStefan Herdler 766fb68c13SStefan Herdler - Select 2.21:1 format. 776fb68c13SStefan Herdler 786fb68c13SStefan HerdlerDescription 796fb68c13SStefan Herdler~~~~~~~~~~~ 806fb68c13SStefan Herdler 816fb68c13SStefan HerdlerThe ``video_format_t`` data type 826fb68c13SStefan Herdleris used in the `VIDEO_SET_FORMAT`_ function to tell the driver which 836fb68c13SStefan Herdleraspect ratio the output hardware (e.g. TV) has. It is also used in the 846fb68c13SStefan Herdlerdata structures `video_status`_ returned by `VIDEO_GET_STATUS`_ 856fb68c13SStefan Herdlerand `video_event`_ returned by `VIDEO_GET_EVENT`_ which report 866fb68c13SStefan Herdlerabout the display format of the current video stream. 876fb68c13SStefan Herdler 886fb68c13SStefan Herdler 896fb68c13SStefan Herdler----- 906fb68c13SStefan Herdler 916fb68c13SStefan Herdler 926fb68c13SStefan Herdlervideo_displayformat_t 936fb68c13SStefan Herdler--------------------- 946fb68c13SStefan Herdler 956fb68c13SStefan HerdlerSynopsis 966fb68c13SStefan Herdler~~~~~~~~ 976fb68c13SStefan Herdler 986fb68c13SStefan Herdler.. code-block:: c 996fb68c13SStefan Herdler 1006fb68c13SStefan Herdler typedef enum { 1016fb68c13SStefan Herdler VIDEO_PAN_SCAN, 1026fb68c13SStefan Herdler VIDEO_LETTER_BOX, 1036fb68c13SStefan Herdler VIDEO_CENTER_CUT_OUT 1046fb68c13SStefan Herdler } video_displayformat_t; 1056fb68c13SStefan Herdler 1066fb68c13SStefan HerdlerConstants 1076fb68c13SStefan Herdler~~~~~~~~~ 1086fb68c13SStefan Herdler 1096fb68c13SStefan Herdler.. flat-table:: 1106fb68c13SStefan Herdler :header-rows: 0 1116fb68c13SStefan Herdler :stub-columns: 0 1126fb68c13SStefan Herdler 1136fb68c13SStefan Herdler - .. 1146fb68c13SStefan Herdler 1156fb68c13SStefan Herdler - ``VIDEO_PAN_SCAN`` 1166fb68c13SStefan Herdler 1176fb68c13SStefan Herdler - Use pan and scan format. 1186fb68c13SStefan Herdler 1196fb68c13SStefan Herdler - .. 1206fb68c13SStefan Herdler 1216fb68c13SStefan Herdler - ``VIDEO_LETTER_BOX`` 1226fb68c13SStefan Herdler 1236fb68c13SStefan Herdler - Use letterbox format. 1246fb68c13SStefan Herdler 1256fb68c13SStefan Herdler - .. 1266fb68c13SStefan Herdler 1276fb68c13SStefan Herdler - ``VIDEO_CENTER_CUT_OUT`` 1286fb68c13SStefan Herdler 1296fb68c13SStefan Herdler - Use center cut out format. 1306fb68c13SStefan Herdler 1316fb68c13SStefan HerdlerDescription 1326fb68c13SStefan Herdler~~~~~~~~~~~ 1336fb68c13SStefan Herdler 1346fb68c13SStefan HerdlerIn case the display format of the video stream and of the display 1356fb68c13SStefan Herdlerhardware differ the application has to specify how to handle the 1366fb68c13SStefan Herdlercropping of the picture. This can be done using the 1376fb68c13SStefan Herdler`VIDEO_SET_DISPLAY_FORMAT`_ call which accepts this enum as argument. 1386fb68c13SStefan Herdler 1396fb68c13SStefan Herdler 1406fb68c13SStefan Herdler----- 1416fb68c13SStefan Herdler 1426fb68c13SStefan Herdler 1436fb68c13SStefan Herdlervideo_size_t 1446fb68c13SStefan Herdler------------ 1456fb68c13SStefan Herdler 1466fb68c13SStefan HerdlerSynopsis 1476fb68c13SStefan Herdler~~~~~~~~ 1486fb68c13SStefan Herdler 1496fb68c13SStefan Herdler.. code-block:: c 1506fb68c13SStefan Herdler 1516fb68c13SStefan Herdler typedef struct { 1526fb68c13SStefan Herdler int w; 1536fb68c13SStefan Herdler int h; 1546fb68c13SStefan Herdler video_format_t aspect_ratio; 1556fb68c13SStefan Herdler } video_size_t; 1566fb68c13SStefan Herdler 1576fb68c13SStefan HerdlerVariables 1586fb68c13SStefan Herdler~~~~~~~~~ 1596fb68c13SStefan Herdler 1606fb68c13SStefan Herdler.. flat-table:: 1616fb68c13SStefan Herdler :header-rows: 0 1626fb68c13SStefan Herdler :stub-columns: 0 1636fb68c13SStefan Herdler 1646fb68c13SStefan Herdler - .. 1656fb68c13SStefan Herdler 1666fb68c13SStefan Herdler - ``int w`` 1676fb68c13SStefan Herdler 1686fb68c13SStefan Herdler - Video width in pixels. 1696fb68c13SStefan Herdler 1706fb68c13SStefan Herdler - .. 1716fb68c13SStefan Herdler 1726fb68c13SStefan Herdler - ``int h`` 1736fb68c13SStefan Herdler 1746fb68c13SStefan Herdler - Video height in pixels. 1756fb68c13SStefan Herdler 1766fb68c13SStefan Herdler - .. 1776fb68c13SStefan Herdler 1786fb68c13SStefan Herdler - `video_format_t`_ ``aspect_ratio`` 1796fb68c13SStefan Herdler 1806fb68c13SStefan Herdler - Aspect ratio. 1816fb68c13SStefan Herdler 1826fb68c13SStefan HerdlerDescription 1836fb68c13SStefan Herdler~~~~~~~~~~~ 1846fb68c13SStefan Herdler 1856fb68c13SStefan HerdlerUsed in the struct `video_event`_. It stores the resolution and 1866fb68c13SStefan Herdleraspect ratio of the video. 1876fb68c13SStefan Herdler 1886fb68c13SStefan Herdler 1896fb68c13SStefan Herdler----- 1906fb68c13SStefan Herdler 1916fb68c13SStefan Herdler 1926fb68c13SStefan Herdlervideo_stream_source_t 1936fb68c13SStefan Herdler--------------------- 1946fb68c13SStefan Herdler 1956fb68c13SStefan HerdlerSynopsis 1966fb68c13SStefan Herdler~~~~~~~~ 1976fb68c13SStefan Herdler 1986fb68c13SStefan Herdler.. code-block:: c 1996fb68c13SStefan Herdler 2006fb68c13SStefan Herdler typedef enum { 2016fb68c13SStefan Herdler VIDEO_SOURCE_DEMUX, 2026fb68c13SStefan Herdler VIDEO_SOURCE_MEMORY 2036fb68c13SStefan Herdler } video_stream_source_t; 2046fb68c13SStefan Herdler 2056fb68c13SStefan HerdlerConstants 2066fb68c13SStefan Herdler~~~~~~~~~ 2076fb68c13SStefan Herdler 2086fb68c13SStefan Herdler.. flat-table:: 2096fb68c13SStefan Herdler :header-rows: 0 2106fb68c13SStefan Herdler :stub-columns: 0 2116fb68c13SStefan Herdler 2126fb68c13SStefan Herdler - .. 2136fb68c13SStefan Herdler 2146fb68c13SStefan Herdler - ``VIDEO_SOURCE_DEMUX`` 2156fb68c13SStefan Herdler 2166fb68c13SStefan Herdler - :cspan:`1` Select the demux as the main source. 2176fb68c13SStefan Herdler 2186fb68c13SStefan Herdler - .. 2196fb68c13SStefan Herdler 2206fb68c13SStefan Herdler - ``VIDEO_SOURCE_MEMORY`` 2216fb68c13SStefan Herdler 2226fb68c13SStefan Herdler - If this source is selected, the stream 2236fb68c13SStefan Herdler comes from the user through the write 2246fb68c13SStefan Herdler system call. 2256fb68c13SStefan Herdler 2266fb68c13SStefan HerdlerDescription 2276fb68c13SStefan Herdler~~~~~~~~~~~ 2286fb68c13SStefan Herdler 2296fb68c13SStefan HerdlerThe video stream source is set through the `VIDEO_SELECT_SOURCE`_ call 2306fb68c13SStefan Herdlerand can take the following values, depending on whether we are replaying 2316fb68c13SStefan Herdlerfrom an internal (demuxer) or external (user write) source. 2326fb68c13SStefan HerdlerVIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the 2336fb68c13SStefan Herdlerfrontend or the DVR device) as the source of the video stream. If 2346fb68c13SStefan HerdlerVIDEO_SOURCE_MEMORY is selected the stream comes from the application 2356fb68c13SStefan Herdlerthrough the `write()`_ system call. 2366fb68c13SStefan Herdler 2376fb68c13SStefan Herdler 2386fb68c13SStefan Herdler----- 2396fb68c13SStefan Herdler 2406fb68c13SStefan Herdler 2416fb68c13SStefan Herdlervideo_play_state_t 2426fb68c13SStefan Herdler------------------ 2436fb68c13SStefan Herdler 2446fb68c13SStefan HerdlerSynopsis 2456fb68c13SStefan Herdler~~~~~~~~ 2466fb68c13SStefan Herdler 2476fb68c13SStefan Herdler.. code-block:: c 2486fb68c13SStefan Herdler 2496fb68c13SStefan Herdler typedef enum { 2506fb68c13SStefan Herdler VIDEO_STOPPED, 2516fb68c13SStefan Herdler VIDEO_PLAYING, 2526fb68c13SStefan Herdler VIDEO_FREEZED 2536fb68c13SStefan Herdler } video_play_state_t; 2546fb68c13SStefan Herdler 2556fb68c13SStefan HerdlerConstants 2566fb68c13SStefan Herdler~~~~~~~~~ 2576fb68c13SStefan Herdler 2586fb68c13SStefan Herdler.. flat-table:: 2596fb68c13SStefan Herdler :header-rows: 0 2606fb68c13SStefan Herdler :stub-columns: 0 2616fb68c13SStefan Herdler 2626fb68c13SStefan Herdler - .. 2636fb68c13SStefan Herdler 2646fb68c13SStefan Herdler - ``VIDEO_STOPPED`` 2656fb68c13SStefan Herdler 2666fb68c13SStefan Herdler - Video is stopped. 2676fb68c13SStefan Herdler 2686fb68c13SStefan Herdler - .. 2696fb68c13SStefan Herdler 2706fb68c13SStefan Herdler - ``VIDEO_PLAYING`` 2716fb68c13SStefan Herdler 2726fb68c13SStefan Herdler - Video is currently playing. 2736fb68c13SStefan Herdler 2746fb68c13SStefan Herdler - .. 2756fb68c13SStefan Herdler 2766fb68c13SStefan Herdler - ``VIDEO_FREEZED`` 2776fb68c13SStefan Herdler 2786fb68c13SStefan Herdler - Video is frozen. 2796fb68c13SStefan Herdler 2806fb68c13SStefan HerdlerDescription 2816fb68c13SStefan Herdler~~~~~~~~~~~ 2826fb68c13SStefan Herdler 2836fb68c13SStefan HerdlerThis values can be returned by the `VIDEO_GET_STATUS`_ call 2846fb68c13SStefan Herdlerrepresenting the state of video playback. 2856fb68c13SStefan Herdler 2866fb68c13SStefan Herdler 2876fb68c13SStefan Herdler----- 2886fb68c13SStefan Herdler 2896fb68c13SStefan Herdler 2906fb68c13SStefan Herdlerstruct video_command 2916fb68c13SStefan Herdler-------------------- 2926fb68c13SStefan Herdler 2936fb68c13SStefan HerdlerSynopsis 2946fb68c13SStefan Herdler~~~~~~~~ 2956fb68c13SStefan Herdler 2966fb68c13SStefan Herdler.. code-block:: c 2976fb68c13SStefan Herdler 2986fb68c13SStefan Herdler struct video_command { 2996fb68c13SStefan Herdler __u32 cmd; 3006fb68c13SStefan Herdler __u32 flags; 3016fb68c13SStefan Herdler union { 3026fb68c13SStefan Herdler struct { 3036fb68c13SStefan Herdler __u64 pts; 3046fb68c13SStefan Herdler } stop; 3056fb68c13SStefan Herdler 3066fb68c13SStefan Herdler struct { 3076fb68c13SStefan Herdler __s32 speed; 3086fb68c13SStefan Herdler __u32 format; 3096fb68c13SStefan Herdler } play; 3106fb68c13SStefan Herdler 3116fb68c13SStefan Herdler struct { 3126fb68c13SStefan Herdler __u32 data[16]; 3136fb68c13SStefan Herdler } raw; 3146fb68c13SStefan Herdler }; 3156fb68c13SStefan Herdler }; 3166fb68c13SStefan Herdler 3176fb68c13SStefan Herdler 3186fb68c13SStefan HerdlerVariables 3196fb68c13SStefan Herdler~~~~~~~~~ 3206fb68c13SStefan Herdler 3216fb68c13SStefan Herdler.. flat-table:: 3226fb68c13SStefan Herdler :header-rows: 0 3236fb68c13SStefan Herdler :stub-columns: 0 3246fb68c13SStefan Herdler 3256fb68c13SStefan Herdler - .. 3266fb68c13SStefan Herdler 3276fb68c13SStefan Herdler - ``__u32 cmd`` 3286fb68c13SStefan Herdler 3296fb68c13SStefan Herdler - `Decoder command`_ 3306fb68c13SStefan Herdler 3316fb68c13SStefan Herdler - .. 3326fb68c13SStefan Herdler 3336fb68c13SStefan Herdler - ``__u32 flags`` 3346fb68c13SStefan Herdler 3356fb68c13SStefan Herdler - Flags for the `Decoder command`_. 3366fb68c13SStefan Herdler 3376fb68c13SStefan Herdler - .. 3386fb68c13SStefan Herdler 3396fb68c13SStefan Herdler - ``struct stop`` 3406fb68c13SStefan Herdler 3416fb68c13SStefan Herdler - ``__u64 pts`` 3426fb68c13SStefan Herdler 3436fb68c13SStefan Herdler - MPEG PTS 3446fb68c13SStefan Herdler 3456fb68c13SStefan Herdler - .. 3466fb68c13SStefan Herdler 3476fb68c13SStefan Herdler - :rspan:`5` ``stuct play`` 3486fb68c13SStefan Herdler 3496fb68c13SStefan Herdler - :rspan:`4` ``__s32 speed`` 3506fb68c13SStefan Herdler 3516fb68c13SStefan Herdler - 0 or 1000 specifies normal speed, 3526fb68c13SStefan Herdler 3536fb68c13SStefan Herdler - .. 3546fb68c13SStefan Herdler 3556fb68c13SStefan Herdler - 1: specifies forward single stepping, 3566fb68c13SStefan Herdler 3576fb68c13SStefan Herdler - .. 3586fb68c13SStefan Herdler 3596fb68c13SStefan Herdler - -1: specifies backward single stepping, 3606fb68c13SStefan Herdler 3616fb68c13SStefan Herdler - .. 3626fb68c13SStefan Herdler 3636fb68c13SStefan Herdler - >1: playback at speed / 1000 of the normal speed 3646fb68c13SStefan Herdler 3656fb68c13SStefan Herdler - .. 3666fb68c13SStefan Herdler 3676fb68c13SStefan Herdler - <-1: reverse playback at ( -speed / 1000 ) of the normal speed. 3686fb68c13SStefan Herdler 3696fb68c13SStefan Herdler - .. 3706fb68c13SStefan Herdler 3716fb68c13SStefan Herdler - ``__u32 format`` 3726fb68c13SStefan Herdler 3736fb68c13SStefan Herdler - `Play input formats`_ 3746fb68c13SStefan Herdler 3756fb68c13SStefan Herdler - .. 3766fb68c13SStefan Herdler 3776fb68c13SStefan Herdler - ``__u32 data[16]`` 3786fb68c13SStefan Herdler 3796fb68c13SStefan Herdler - Reserved 3806fb68c13SStefan Herdler 3816fb68c13SStefan HerdlerDescription 3826fb68c13SStefan Herdler~~~~~~~~~~~ 3836fb68c13SStefan Herdler 3846fb68c13SStefan HerdlerThe structure must be zeroed before use by the application. This ensures 3856fb68c13SStefan Herdlerit can be extended safely in the future. 3866fb68c13SStefan Herdler 3876fb68c13SStefan Herdler 3886fb68c13SStefan Herdler----- 3896fb68c13SStefan Herdler 3906fb68c13SStefan Herdler 3916fb68c13SStefan HerdlerPredefined decoder commands and flags 3926fb68c13SStefan Herdler------------------------------------- 3936fb68c13SStefan Herdler 3946fb68c13SStefan HerdlerSynopsis 3956fb68c13SStefan Herdler~~~~~~~~ 3966fb68c13SStefan Herdler 3976fb68c13SStefan Herdler.. code-block:: c 3986fb68c13SStefan Herdler 3996fb68c13SStefan Herdler #define VIDEO_CMD_PLAY (0) 4006fb68c13SStefan Herdler #define VIDEO_CMD_STOP (1) 4016fb68c13SStefan Herdler #define VIDEO_CMD_FREEZE (2) 4026fb68c13SStefan Herdler #define VIDEO_CMD_CONTINUE (3) 4036fb68c13SStefan Herdler 4046fb68c13SStefan Herdler #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) 4056fb68c13SStefan Herdler 4066fb68c13SStefan Herdler #define VIDEO_CMD_STOP_TO_BLACK (1 << 0) 4076fb68c13SStefan Herdler #define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) 4086fb68c13SStefan Herdler 4096fb68c13SStefan Herdler #define VIDEO_PLAY_FMT_NONE (0) 4106fb68c13SStefan Herdler #define VIDEO_PLAY_FMT_GOP (1) 4116fb68c13SStefan Herdler 4126fb68c13SStefan Herdler #define VIDEO_VSYNC_FIELD_UNKNOWN (0) 4136fb68c13SStefan Herdler #define VIDEO_VSYNC_FIELD_ODD (1) 4146fb68c13SStefan Herdler #define VIDEO_VSYNC_FIELD_EVEN (2) 4156fb68c13SStefan Herdler #define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) 4166fb68c13SStefan Herdler 4176fb68c13SStefan HerdlerConstants 4186fb68c13SStefan Herdler~~~~~~~~~ 4196fb68c13SStefan Herdler 4206fb68c13SStefan Herdler.. flat-table:: 4216fb68c13SStefan Herdler :header-rows: 0 4226fb68c13SStefan Herdler :stub-columns: 0 4236fb68c13SStefan Herdler 4246fb68c13SStefan Herdler - .. 4256fb68c13SStefan Herdler 4266fb68c13SStefan Herdler - :rspan:`3` _`Decoder command` 4276fb68c13SStefan Herdler 4286fb68c13SStefan Herdler - ``VIDEO_CMD_PLAY`` 4296fb68c13SStefan Herdler 4306fb68c13SStefan Herdler - Start playback. 4316fb68c13SStefan Herdler 4326fb68c13SStefan Herdler - .. 4336fb68c13SStefan Herdler 4346fb68c13SStefan Herdler - ``VIDEO_CMD_STOP`` 4356fb68c13SStefan Herdler 4366fb68c13SStefan Herdler - Stop playback. 4376fb68c13SStefan Herdler 4386fb68c13SStefan Herdler - .. 4396fb68c13SStefan Herdler 4406fb68c13SStefan Herdler - ``VIDEO_CMD_FREEZE`` 4416fb68c13SStefan Herdler 4426fb68c13SStefan Herdler - Freeze playback. 4436fb68c13SStefan Herdler 4446fb68c13SStefan Herdler - .. 4456fb68c13SStefan Herdler 4466fb68c13SStefan Herdler - ``VIDEO_CMD_CONTINUE`` 4476fb68c13SStefan Herdler 4486fb68c13SStefan Herdler - Continue playback after freeze. 4496fb68c13SStefan Herdler 4506fb68c13SStefan Herdler - .. 4516fb68c13SStefan Herdler 4526fb68c13SStefan Herdler - Flags for ``VIDEO_CMD_FREEZE`` 4536fb68c13SStefan Herdler 4546fb68c13SStefan Herdler - ``VIDEO_CMD_FREEZE_TO_BLACK`` 4556fb68c13SStefan Herdler 4566fb68c13SStefan Herdler - Show black picture on freeze. 4576fb68c13SStefan Herdler 4586fb68c13SStefan Herdler - .. 4596fb68c13SStefan Herdler 4606fb68c13SStefan Herdler - :rspan:`1` Flags for ``VIDEO_CMD_STOP`` 4616fb68c13SStefan Herdler 4626fb68c13SStefan Herdler - ``VIDEO_CMD_STOP_TO_BLACK`` 4636fb68c13SStefan Herdler 4646fb68c13SStefan Herdler - Show black picture on stop. 4656fb68c13SStefan Herdler 4666fb68c13SStefan Herdler - .. 4676fb68c13SStefan Herdler 4686fb68c13SStefan Herdler - ``VIDEO_CMD_STOP_IMMEDIATELY`` 4696fb68c13SStefan Herdler 4706fb68c13SStefan Herdler - Stop immediately, without emptying buffers. 4716fb68c13SStefan Herdler 4726fb68c13SStefan Herdler - .. 4736fb68c13SStefan Herdler 4746fb68c13SStefan Herdler - :rspan:`1` _`Play input formats` 4756fb68c13SStefan Herdler 4766fb68c13SStefan Herdler - ``VIDEO_PLAY_FMT_NONE`` 4776fb68c13SStefan Herdler 4786fb68c13SStefan Herdler - The decoder has no special format requirements 4796fb68c13SStefan Herdler 4806fb68c13SStefan Herdler - .. 4816fb68c13SStefan Herdler 4826fb68c13SStefan Herdler - ``VIDEO_PLAY_FMT_GOP`` 4836fb68c13SStefan Herdler 4846fb68c13SStefan Herdler - The decoder requires full GOPs 4856fb68c13SStefan Herdler 4866fb68c13SStefan Herdler - .. 4876fb68c13SStefan Herdler 4886fb68c13SStefan Herdler - :rspan:`3` Field order 4896fb68c13SStefan Herdler 4906fb68c13SStefan Herdler - ``VIDEO_VSYNC_FIELD_UNKNOWN`` 4916fb68c13SStefan Herdler 4926fb68c13SStefan Herdler - FIELD_UNKNOWN can be used if the hardware does not know 4936fb68c13SStefan Herdler whether the Vsync is for an odd, even or progressive 4946fb68c13SStefan Herdler (i.e. non-interlaced) field. 4956fb68c13SStefan Herdler 4966fb68c13SStefan Herdler - .. 4976fb68c13SStefan Herdler 4986fb68c13SStefan Herdler - ``VIDEO_VSYNC_FIELD_ODD`` 4996fb68c13SStefan Herdler 5006fb68c13SStefan Herdler - Vsync is for an odd field. 5016fb68c13SStefan Herdler 5026fb68c13SStefan Herdler - .. 5036fb68c13SStefan Herdler 5046fb68c13SStefan Herdler - ``VIDEO_VSYNC_FIELD_EVEN`` 5056fb68c13SStefan Herdler 5066fb68c13SStefan Herdler - Vsync is for an even field. 5076fb68c13SStefan Herdler 5086fb68c13SStefan Herdler - .. 5096fb68c13SStefan Herdler 5106fb68c13SStefan Herdler - ``VIDEO_VSYNC_FIELD_PROGRESSIVE`` 5116fb68c13SStefan Herdler 5126fb68c13SStefan Herdler - progressive (i.e. non-interlaced) 5136fb68c13SStefan Herdler 5146fb68c13SStefan Herdler 5156fb68c13SStefan Herdler----- 5166fb68c13SStefan Herdler 5176fb68c13SStefan Herdler 5186fb68c13SStefan Herdlervideo_event 5196fb68c13SStefan Herdler----------- 5206fb68c13SStefan Herdler 5216fb68c13SStefan HerdlerSynopsis 5226fb68c13SStefan Herdler~~~~~~~~ 5236fb68c13SStefan Herdler 5246fb68c13SStefan Herdler.. code-block:: c 5256fb68c13SStefan Herdler 5266fb68c13SStefan Herdler struct video_event { 5276fb68c13SStefan Herdler __s32 type; 5286fb68c13SStefan Herdler #define VIDEO_EVENT_SIZE_CHANGED 1 5296fb68c13SStefan Herdler #define VIDEO_EVENT_FRAME_RATE_CHANGED 2 5306fb68c13SStefan Herdler #define VIDEO_EVENT_DECODER_STOPPED 3 5316fb68c13SStefan Herdler #define VIDEO_EVENT_VSYNC 4 5326fb68c13SStefan Herdler long timestamp; 5336fb68c13SStefan Herdler union { 5346fb68c13SStefan Herdler video_size_t size; 5356fb68c13SStefan Herdler unsigned int frame_rate; 5366fb68c13SStefan Herdler unsigned char vsync_field; 5376fb68c13SStefan Herdler } u; 5386fb68c13SStefan Herdler }; 5396fb68c13SStefan Herdler 5406fb68c13SStefan HerdlerVariables 5416fb68c13SStefan Herdler~~~~~~~~~ 5426fb68c13SStefan Herdler 5436fb68c13SStefan Herdler.. flat-table:: 5446fb68c13SStefan Herdler :header-rows: 0 5456fb68c13SStefan Herdler :stub-columns: 0 5466fb68c13SStefan Herdler 5476fb68c13SStefan Herdler - .. 5486fb68c13SStefan Herdler 5496fb68c13SStefan Herdler - :rspan:`4` ``__s32 type`` 5506fb68c13SStefan Herdler 5516fb68c13SStefan Herdler - :cspan:`1` Event type. 5526fb68c13SStefan Herdler 5536fb68c13SStefan Herdler - .. 5546fb68c13SStefan Herdler 5556fb68c13SStefan Herdler - ``VIDEO_EVENT_SIZE_CHANGED`` 5566fb68c13SStefan Herdler 5576fb68c13SStefan Herdler - Size changed. 5586fb68c13SStefan Herdler 5596fb68c13SStefan Herdler - .. 5606fb68c13SStefan Herdler 5616fb68c13SStefan Herdler - ``VIDEO_EVENT_FRAME_RATE_CHANGED`` 5626fb68c13SStefan Herdler 5636fb68c13SStefan Herdler - Framerate changed. 5646fb68c13SStefan Herdler 5656fb68c13SStefan Herdler - .. 5666fb68c13SStefan Herdler 5676fb68c13SStefan Herdler - ``VIDEO_EVENT_DECODER_STOPPED`` 5686fb68c13SStefan Herdler 5696fb68c13SStefan Herdler - Decoder stopped. 5706fb68c13SStefan Herdler 5716fb68c13SStefan Herdler - .. 5726fb68c13SStefan Herdler 5736fb68c13SStefan Herdler - ``VIDEO_EVENT_VSYNC`` 5746fb68c13SStefan Herdler 5756fb68c13SStefan Herdler - Vsync occurred. 5766fb68c13SStefan Herdler 5776fb68c13SStefan Herdler - .. 5786fb68c13SStefan Herdler 5796fb68c13SStefan Herdler - ``long timestamp`` 5806fb68c13SStefan Herdler 5816fb68c13SStefan Herdler - :cspan:`1` MPEG PTS at occurrence. 5826fb68c13SStefan Herdler 5836fb68c13SStefan Herdler - .. 5846fb68c13SStefan Herdler 5856fb68c13SStefan Herdler - :rspan:`2` ``union u`` 5866fb68c13SStefan Herdler 5876fb68c13SStefan Herdler - `video_size_t`_ size 5886fb68c13SStefan Herdler 5896fb68c13SStefan Herdler - Resolution and aspect ratio of the video. 5906fb68c13SStefan Herdler 5916fb68c13SStefan Herdler - .. 5926fb68c13SStefan Herdler 5936fb68c13SStefan Herdler - ``unsigned int frame_rate`` 5946fb68c13SStefan Herdler 5956fb68c13SStefan Herdler - in frames per 1000sec 5966fb68c13SStefan Herdler 5976fb68c13SStefan Herdler - .. 5986fb68c13SStefan Herdler 5996fb68c13SStefan Herdler - ``unsigned char vsync_field`` 6006fb68c13SStefan Herdler 6016fb68c13SStefan Herdler - | unknown / odd / even / progressive 6026fb68c13SStefan Herdler | See: `Predefined decoder commands and flags`_ 6036fb68c13SStefan Herdler 6046fb68c13SStefan HerdlerDescription 6056fb68c13SStefan Herdler~~~~~~~~~~~ 6066fb68c13SStefan Herdler 6076fb68c13SStefan HerdlerThis is the structure of a video event as it is returned by the 6086fb68c13SStefan Herdler`VIDEO_GET_EVENT`_ call. See there for more details. 6096fb68c13SStefan Herdler 6106fb68c13SStefan Herdler 6116fb68c13SStefan Herdler----- 6126fb68c13SStefan Herdler 6136fb68c13SStefan Herdler 6146fb68c13SStefan Herdlervideo_status 6156fb68c13SStefan Herdler------------ 6166fb68c13SStefan Herdler 6176fb68c13SStefan HerdlerSynopsis 6186fb68c13SStefan Herdler~~~~~~~~ 6196fb68c13SStefan Herdler 6206fb68c13SStefan HerdlerThe `VIDEO_GET_STATUS`_ call returns the following structure informing 6216fb68c13SStefan Herdlerabout various states of the playback operation. 6226fb68c13SStefan Herdler 6236fb68c13SStefan Herdler.. code-block:: c 6246fb68c13SStefan Herdler 6256fb68c13SStefan Herdler struct video_status { 6266fb68c13SStefan Herdler int video_blank; 6276fb68c13SStefan Herdler video_play_state_t play_state; 6286fb68c13SStefan Herdler video_stream_source_t stream_source; 6296fb68c13SStefan Herdler video_format_t video_format; 6306fb68c13SStefan Herdler video_displayformat_t display_format; 6316fb68c13SStefan Herdler }; 6326fb68c13SStefan Herdler 6336fb68c13SStefan HerdlerVariables 6346fb68c13SStefan Herdler~~~~~~~~~ 6356fb68c13SStefan Herdler 6366fb68c13SStefan Herdler.. flat-table:: 6376fb68c13SStefan Herdler :header-rows: 0 6386fb68c13SStefan Herdler :stub-columns: 0 6396fb68c13SStefan Herdler 6406fb68c13SStefan Herdler - .. 6416fb68c13SStefan Herdler 6426fb68c13SStefan Herdler - :rspan:`2` ``int video_blank`` 6436fb68c13SStefan Herdler 6446fb68c13SStefan Herdler - :cspan:`1` Show blank video on freeze? 6456fb68c13SStefan Herdler 6466fb68c13SStefan Herdler - .. 6476fb68c13SStefan Herdler 6486fb68c13SStefan Herdler - TRUE ( != 0 ) 6496fb68c13SStefan Herdler 6506fb68c13SStefan Herdler - Blank screen when freeze. 6516fb68c13SStefan Herdler 6526fb68c13SStefan Herdler - .. 6536fb68c13SStefan Herdler 6546fb68c13SStefan Herdler - FALSE ( == 0 ) 6556fb68c13SStefan Herdler 6566fb68c13SStefan Herdler - Show last decoded frame. 6576fb68c13SStefan Herdler 6586fb68c13SStefan Herdler - .. 6596fb68c13SStefan Herdler 6606fb68c13SStefan Herdler - `video_play_state_t`_ ``play_state`` 6616fb68c13SStefan Herdler 6626fb68c13SStefan Herdler - Current state of playback. 6636fb68c13SStefan Herdler 6646fb68c13SStefan Herdler - .. 6656fb68c13SStefan Herdler 6666fb68c13SStefan Herdler - `video_stream_source_t`_ ``stream_source`` 6676fb68c13SStefan Herdler 6686fb68c13SStefan Herdler - Current source (demux/memory). 6696fb68c13SStefan Herdler 6706fb68c13SStefan Herdler - .. 6716fb68c13SStefan Herdler 6726fb68c13SStefan Herdler - `video_format_t`_ ``video_format`` 6736fb68c13SStefan Herdler 6746fb68c13SStefan Herdler - Current aspect ratio of stream. 6756fb68c13SStefan Herdler 6766fb68c13SStefan Herdler - .. 6776fb68c13SStefan Herdler 6786fb68c13SStefan Herdler - `video_displayformat_t`_ ``display_format`` 6796fb68c13SStefan Herdler 6806fb68c13SStefan Herdler - Applied cropping mode. 6816fb68c13SStefan Herdler 6826fb68c13SStefan HerdlerDescription 6836fb68c13SStefan Herdler~~~~~~~~~~~ 6846fb68c13SStefan Herdler 6856fb68c13SStefan HerdlerIf ``video_blank`` is set ``TRUE`` video will be blanked out if the 6866fb68c13SStefan Herdlerchannel is changed or if playback is stopped. Otherwise, the last picture 6876fb68c13SStefan Herdlerwill be displayed. ``play_state`` indicates if the video is currently 6886fb68c13SStefan Herdlerfrozen, stopped, or being played back. The ``stream_source`` corresponds 6896fb68c13SStefan Herdlerto the selected source for the video stream. It can come either from the 6906fb68c13SStefan Herdlerdemultiplexer or from memory. The ``video_format`` indicates the aspect 6916fb68c13SStefan Herdlerratio (one of 4:3 or 16:9) of the currently played video stream. 6926fb68c13SStefan HerdlerFinally, ``display_format`` corresponds to the applied cropping mode in 6936fb68c13SStefan Herdlercase the source video format is not the same as the format of the output 6946fb68c13SStefan Herdlerdevice. 6956fb68c13SStefan Herdler 6966fb68c13SStefan Herdler 6976fb68c13SStefan Herdler----- 6986fb68c13SStefan Herdler 6996fb68c13SStefan Herdler 7006fb68c13SStefan Herdlervideo_still_picture 7016fb68c13SStefan Herdler------------------- 7026fb68c13SStefan Herdler 7036fb68c13SStefan HerdlerSynopsis 7046fb68c13SStefan Herdler~~~~~~~~ 7056fb68c13SStefan Herdler 7066fb68c13SStefan Herdler.. code-block:: c 7076fb68c13SStefan Herdler 7086fb68c13SStefan Herdler struct video_still_picture { 7096fb68c13SStefan Herdler char *iFrame; 7106fb68c13SStefan Herdler int32_t size; 7116fb68c13SStefan Herdler }; 7126fb68c13SStefan Herdler 7136fb68c13SStefan HerdlerVariables 7146fb68c13SStefan Herdler~~~~~~~~~ 7156fb68c13SStefan Herdler 7166fb68c13SStefan Herdler.. flat-table:: 7176fb68c13SStefan Herdler :header-rows: 0 7186fb68c13SStefan Herdler :stub-columns: 0 7196fb68c13SStefan Herdler 7206fb68c13SStefan Herdler - .. 7216fb68c13SStefan Herdler 7226fb68c13SStefan Herdler - ``char *iFrame`` 7236fb68c13SStefan Herdler 7246fb68c13SStefan Herdler - Pointer to a single iframe in memory. 7256fb68c13SStefan Herdler 7266fb68c13SStefan Herdler - .. 7276fb68c13SStefan Herdler 7286fb68c13SStefan Herdler - ``int32_t size`` 7296fb68c13SStefan Herdler 7306fb68c13SStefan Herdler - Size of the iframe. 7316fb68c13SStefan Herdler 7326fb68c13SStefan Herdler 7336fb68c13SStefan HerdlerDescription 7346fb68c13SStefan Herdler~~~~~~~~~~~ 7356fb68c13SStefan Herdler 7366fb68c13SStefan HerdlerAn I-frame displayed via the `VIDEO_STILLPICTURE`_ call is passed on 7376fb68c13SStefan Herdlerwithin this structure. 7386fb68c13SStefan Herdler 7396fb68c13SStefan Herdler 7406fb68c13SStefan Herdler----- 7416fb68c13SStefan Herdler 7426fb68c13SStefan Herdler 7436fb68c13SStefan Herdlervideo capabilities 7446fb68c13SStefan Herdler------------------ 7456fb68c13SStefan Herdler 7466fb68c13SStefan HerdlerSynopsis 7476fb68c13SStefan Herdler~~~~~~~~ 7486fb68c13SStefan Herdler 7496fb68c13SStefan Herdler.. code-block:: c 7506fb68c13SStefan Herdler 7516fb68c13SStefan Herdler #define VIDEO_CAP_MPEG1 1 7526fb68c13SStefan Herdler #define VIDEO_CAP_MPEG2 2 7536fb68c13SStefan Herdler #define VIDEO_CAP_SYS 4 7546fb68c13SStefan Herdler #define VIDEO_CAP_PROG 8 7556fb68c13SStefan Herdler 7566fb68c13SStefan HerdlerConstants 7576fb68c13SStefan Herdler~~~~~~~~~ 7586fb68c13SStefan HerdlerBit definitions for capabilities: 7596fb68c13SStefan Herdler 7606fb68c13SStefan Herdler.. flat-table:: 7616fb68c13SStefan Herdler :header-rows: 0 7626fb68c13SStefan Herdler :stub-columns: 0 7636fb68c13SStefan Herdler 7646fb68c13SStefan Herdler - .. 7656fb68c13SStefan Herdler 7666fb68c13SStefan Herdler - ``VIDEO_CAP_MPEG1`` 7676fb68c13SStefan Herdler 7686fb68c13SStefan Herdler - :cspan:`1` The hardware can decode MPEG1. 7696fb68c13SStefan Herdler 7706fb68c13SStefan Herdler - .. 7716fb68c13SStefan Herdler 7726fb68c13SStefan Herdler - ``VIDEO_CAP_MPEG2`` 7736fb68c13SStefan Herdler 7746fb68c13SStefan Herdler - The hardware can decode MPEG2. 7756fb68c13SStefan Herdler 7766fb68c13SStefan Herdler - .. 7776fb68c13SStefan Herdler 7786fb68c13SStefan Herdler - ``VIDEO_CAP_SYS`` 7796fb68c13SStefan Herdler 7806fb68c13SStefan Herdler - The video device accepts system stream. 7816fb68c13SStefan Herdler 7826fb68c13SStefan Herdler You still have to open the video and the audio device 7836fb68c13SStefan Herdler but only send the stream to the video device. 7846fb68c13SStefan Herdler 7856fb68c13SStefan Herdler - .. 7866fb68c13SStefan Herdler 7876fb68c13SStefan Herdler - ``VIDEO_CAP_PROG`` 7886fb68c13SStefan Herdler 7896fb68c13SStefan Herdler - The video device accepts program stream. 7906fb68c13SStefan Herdler 7916fb68c13SStefan Herdler You still have to open the video and the audio device 7926fb68c13SStefan Herdler but only send the stream to the video device. 7936fb68c13SStefan Herdler 7946fb68c13SStefan HerdlerDescription 7956fb68c13SStefan Herdler~~~~~~~~~~~ 7966fb68c13SStefan Herdler 7976fb68c13SStefan HerdlerA call to `VIDEO_GET_CAPABILITIES`_ returns an unsigned integer with the 7986fb68c13SStefan Herdlerfollowing bits set according to the hardware's capabilities. 799b2fffe3fSStefan Herdler 800b2fffe3fSStefan Herdler 801b2fffe3fSStefan Herdler----- 802b2fffe3fSStefan Herdler 803b2fffe3fSStefan Herdler 804b2fffe3fSStefan HerdlerVideo Function Calls 805b2fffe3fSStefan Herdler==================== 806b2fffe3fSStefan Herdler 807b2fffe3fSStefan Herdler 808b2fffe3fSStefan HerdlerVIDEO_STOP 809b2fffe3fSStefan Herdler---------- 810b2fffe3fSStefan Herdler 811b2fffe3fSStefan HerdlerSynopsis 812b2fffe3fSStefan Herdler~~~~~~~~ 813b2fffe3fSStefan Herdler 814b2fffe3fSStefan Herdler.. c:macro:: VIDEO_STOP 815b2fffe3fSStefan Herdler 816b2fffe3fSStefan Herdler.. code-block:: c 817b2fffe3fSStefan Herdler 818b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_STOP, int mode) 819b2fffe3fSStefan Herdler 820b2fffe3fSStefan HerdlerArguments 821b2fffe3fSStefan Herdler~~~~~~~~~ 822b2fffe3fSStefan Herdler 823b2fffe3fSStefan Herdler.. flat-table:: 824b2fffe3fSStefan Herdler :header-rows: 0 825b2fffe3fSStefan Herdler :stub-columns: 0 826b2fffe3fSStefan Herdler 827b2fffe3fSStefan Herdler - .. 828b2fffe3fSStefan Herdler 829b2fffe3fSStefan Herdler - ``int fd`` 830b2fffe3fSStefan Herdler 831b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 832b2fffe3fSStefan Herdler to `open()`_. 833b2fffe3fSStefan Herdler 834b2fffe3fSStefan Herdler - .. 835b2fffe3fSStefan Herdler 836b2fffe3fSStefan Herdler - ``int request`` 837b2fffe3fSStefan Herdler 838b2fffe3fSStefan Herdler - :cspan:`1` Equals ``VIDEO_STOP`` for this command. 839b2fffe3fSStefan Herdler 840b2fffe3fSStefan Herdler - .. 841b2fffe3fSStefan Herdler 842b2fffe3fSStefan Herdler - :rspan:`2` ``int mode`` 843b2fffe3fSStefan Herdler 844b2fffe3fSStefan Herdler - :cspan:`1` Indicates how the screen shall be handled. 845b2fffe3fSStefan Herdler 846b2fffe3fSStefan Herdler - .. 847b2fffe3fSStefan Herdler 848b2fffe3fSStefan Herdler - TRUE ( != 0 ) 849b2fffe3fSStefan Herdler 850b2fffe3fSStefan Herdler - Blank screen when stop. 851b2fffe3fSStefan Herdler 852b2fffe3fSStefan Herdler - .. 853b2fffe3fSStefan Herdler 854b2fffe3fSStefan Herdler - FALSE ( == 0 ) 855b2fffe3fSStefan Herdler 856b2fffe3fSStefan Herdler - Show last decoded frame. 857b2fffe3fSStefan Herdler 858b2fffe3fSStefan HerdlerDescription 859b2fffe3fSStefan Herdler~~~~~~~~~~~ 860b2fffe3fSStefan Herdler 861b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 862b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 863b2fffe3fSStefan Herdler 864b2fffe3fSStefan HerdlerThis ioctl is for Digital TV devices only. To control a V4L2 decoder use 865b2fffe3fSStefan Herdlerthe V4L2 :ref:`VIDIOC_DECODER_CMD` instead. 866b2fffe3fSStefan Herdler 867b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to stop playing the current 868b2fffe3fSStefan Herdlerstream. Depending on the input parameter, the screen can be blanked out 869b2fffe3fSStefan Herdleror displaying the last decoded frame. 870b2fffe3fSStefan Herdler 871b2fffe3fSStefan HerdlerReturn Value 872b2fffe3fSStefan Herdler~~~~~~~~~~~~ 873b2fffe3fSStefan Herdler 874b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 875b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 876b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 877b2fffe3fSStefan Herdler 878b2fffe3fSStefan Herdler 879b2fffe3fSStefan Herdler----- 880b2fffe3fSStefan Herdler 881b2fffe3fSStefan Herdler 882b2fffe3fSStefan HerdlerVIDEO_PLAY 883b2fffe3fSStefan Herdler---------- 884b2fffe3fSStefan Herdler 885b2fffe3fSStefan HerdlerSynopsis 886b2fffe3fSStefan Herdler~~~~~~~~ 887b2fffe3fSStefan Herdler 888b2fffe3fSStefan Herdler.. c:macro:: VIDEO_PLAY 889b2fffe3fSStefan Herdler 890b2fffe3fSStefan Herdler.. code-block:: c 891b2fffe3fSStefan Herdler 892b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_PLAY) 893b2fffe3fSStefan Herdler 894b2fffe3fSStefan HerdlerArguments 895b2fffe3fSStefan Herdler~~~~~~~~~ 896b2fffe3fSStefan Herdler 897b2fffe3fSStefan Herdler.. flat-table:: 898b2fffe3fSStefan Herdler :header-rows: 0 899b2fffe3fSStefan Herdler :stub-columns: 0 900b2fffe3fSStefan Herdler 901b2fffe3fSStefan Herdler - .. 902b2fffe3fSStefan Herdler 903b2fffe3fSStefan Herdler - ``int fd`` 904b2fffe3fSStefan Herdler 905b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 906b2fffe3fSStefan Herdler to `open()`_. 907b2fffe3fSStefan Herdler 908b2fffe3fSStefan Herdler - .. 909b2fffe3fSStefan Herdler 910b2fffe3fSStefan Herdler - ``int request`` 911b2fffe3fSStefan Herdler 912b2fffe3fSStefan Herdler - Equals ``VIDEO_PLAY`` for this command. 913b2fffe3fSStefan Herdler 914b2fffe3fSStefan HerdlerDescription 915b2fffe3fSStefan Herdler~~~~~~~~~~~ 916b2fffe3fSStefan Herdler 917b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 918b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 919b2fffe3fSStefan Herdler 920b2fffe3fSStefan HerdlerThis ioctl is for Digital TV devices only. To control a V4L2 decoder use 921b2fffe3fSStefan Herdlerthe V4L2 :ref:`VIDIOC_DECODER_CMD` instead. 922b2fffe3fSStefan Herdler 923b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to start playing a video stream 924b2fffe3fSStefan Herdlerfrom the selected source. 925b2fffe3fSStefan Herdler 926b2fffe3fSStefan HerdlerReturn Value 927b2fffe3fSStefan Herdler~~~~~~~~~~~~ 928b2fffe3fSStefan Herdler 929b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 930b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 931b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 932b2fffe3fSStefan Herdler 933b2fffe3fSStefan Herdler 934b2fffe3fSStefan Herdler----- 935b2fffe3fSStefan Herdler 936b2fffe3fSStefan Herdler 937b2fffe3fSStefan HerdlerVIDEO_FREEZE 938b2fffe3fSStefan Herdler------------ 939b2fffe3fSStefan Herdler 940b2fffe3fSStefan HerdlerSynopsis 941b2fffe3fSStefan Herdler~~~~~~~~ 942b2fffe3fSStefan Herdler 943b2fffe3fSStefan Herdler.. c:macro:: VIDEO_FREEZE 944b2fffe3fSStefan Herdler 945b2fffe3fSStefan Herdler.. code-block:: c 946b2fffe3fSStefan Herdler 947b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_FREEZE) 948b2fffe3fSStefan Herdler 949b2fffe3fSStefan HerdlerArguments 950b2fffe3fSStefan Herdler~~~~~~~~~ 951b2fffe3fSStefan Herdler 952b2fffe3fSStefan Herdler.. flat-table:: 953b2fffe3fSStefan Herdler :header-rows: 0 954b2fffe3fSStefan Herdler :stub-columns: 0 955b2fffe3fSStefan Herdler 956b2fffe3fSStefan Herdler - .. 957b2fffe3fSStefan Herdler 958b2fffe3fSStefan Herdler - ``int fd`` 959b2fffe3fSStefan Herdler 960b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 961b2fffe3fSStefan Herdler to `open()`_. 962b2fffe3fSStefan Herdler 963b2fffe3fSStefan Herdler - .. 964b2fffe3fSStefan Herdler 965b2fffe3fSStefan Herdler - ``int request`` 966b2fffe3fSStefan Herdler 967b2fffe3fSStefan Herdler - Equals ``VIDEO_FREEZE`` for this command. 968b2fffe3fSStefan Herdler 969b2fffe3fSStefan HerdlerDescription 970b2fffe3fSStefan Herdler~~~~~~~~~~~ 971b2fffe3fSStefan Herdler 972b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 973b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 974b2fffe3fSStefan Herdler 975b2fffe3fSStefan HerdlerThis ioctl is for Digital TV devices only. To control a V4L2 decoder use 976b2fffe3fSStefan Herdlerthe V4L2 :ref:`VIDIOC_DECODER_CMD` instead. 977b2fffe3fSStefan Herdler 978b2fffe3fSStefan HerdlerThis ioctl call suspends the live video stream being played, if 979b2fffe3fSStefan HerdlerVIDEO_SOURCE_DEMUX is selected. Decoding and playing are frozen. 980b2fffe3fSStefan HerdlerIt is then possible to restart the decoding and playing process of the 981b2fffe3fSStefan Herdlervideo stream using the `VIDEO_CONTINUE`_ command. 982b2fffe3fSStefan HerdlerIf VIDEO_SOURCE_MEMORY is selected in the ioctl call 983b2fffe3fSStefan Herdler`VIDEO_SELECT_SOURCE`_, the Digital TV subsystem will not decode any more 984b2fffe3fSStefan Herdlerdata until the ioctl call `VIDEO_CONTINUE`_ or `VIDEO_PLAY`_ is performed. 985b2fffe3fSStefan Herdler 986b2fffe3fSStefan HerdlerReturn Value 987b2fffe3fSStefan Herdler~~~~~~~~~~~~ 988b2fffe3fSStefan Herdler 989b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 990b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 991b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 992b2fffe3fSStefan Herdler 993b2fffe3fSStefan Herdler 994b2fffe3fSStefan Herdler----- 995b2fffe3fSStefan Herdler 996b2fffe3fSStefan Herdler 997b2fffe3fSStefan HerdlerVIDEO_CONTINUE 998b2fffe3fSStefan Herdler-------------- 999b2fffe3fSStefan Herdler 1000b2fffe3fSStefan HerdlerSynopsis 1001b2fffe3fSStefan Herdler~~~~~~~~ 1002b2fffe3fSStefan Herdler 1003b2fffe3fSStefan Herdler.. c:macro:: VIDEO_CONTINUE 1004b2fffe3fSStefan Herdler 1005b2fffe3fSStefan Herdler.. code-block:: c 1006b2fffe3fSStefan Herdler 1007b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_CONTINUE) 1008b2fffe3fSStefan Herdler 1009b2fffe3fSStefan HerdlerArguments 1010b2fffe3fSStefan Herdler~~~~~~~~~ 1011b2fffe3fSStefan Herdler 1012b2fffe3fSStefan Herdler.. flat-table:: 1013b2fffe3fSStefan Herdler :header-rows: 0 1014b2fffe3fSStefan Herdler :stub-columns: 0 1015b2fffe3fSStefan Herdler 1016b2fffe3fSStefan Herdler - .. 1017b2fffe3fSStefan Herdler 1018b2fffe3fSStefan Herdler - ``int fd`` 1019b2fffe3fSStefan Herdler 1020b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1021b2fffe3fSStefan Herdler to `open()`_. 1022b2fffe3fSStefan Herdler 1023b2fffe3fSStefan Herdler - .. 1024b2fffe3fSStefan Herdler 1025b2fffe3fSStefan Herdler - ``int request`` 1026b2fffe3fSStefan Herdler 1027b2fffe3fSStefan Herdler - Equals ``VIDEO_CONTINUE`` for this command. 1028b2fffe3fSStefan Herdler 1029b2fffe3fSStefan HerdlerDescription 1030b2fffe3fSStefan Herdler~~~~~~~~~~~ 1031b2fffe3fSStefan Herdler 1032b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1033b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1034b2fffe3fSStefan Herdler 1035b2fffe3fSStefan HerdlerThis ioctl is for Digital TV devices only. To control a V4L2 decoder use 1036b2fffe3fSStefan Herdlerthe V4L2 :ref:`VIDIOC_DECODER_CMD` instead. 1037b2fffe3fSStefan Herdler 1038b2fffe3fSStefan HerdlerThis ioctl call restarts decoding and playing processes of the video 1039b2fffe3fSStefan Herdlerstream which was played before a call to `VIDEO_FREEZE`_ was made. 1040b2fffe3fSStefan Herdler 1041b2fffe3fSStefan HerdlerReturn Value 1042b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1043b2fffe3fSStefan Herdler 1044b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1045b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1046b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1047b2fffe3fSStefan Herdler 1048b2fffe3fSStefan Herdler 1049b2fffe3fSStefan Herdler----- 1050b2fffe3fSStefan Herdler 1051b2fffe3fSStefan Herdler 1052b2fffe3fSStefan HerdlerVIDEO_SELECT_SOURCE 1053b2fffe3fSStefan Herdler------------------- 1054b2fffe3fSStefan Herdler 1055b2fffe3fSStefan HerdlerSynopsis 1056b2fffe3fSStefan Herdler~~~~~~~~ 1057b2fffe3fSStefan Herdler 1058b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SELECT_SOURCE 1059b2fffe3fSStefan Herdler 1060b2fffe3fSStefan Herdler.. code-block:: c 1061b2fffe3fSStefan Herdler 1062b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_SELECT_SOURCE, video_stream_source_t source) 1063b2fffe3fSStefan Herdler 1064b2fffe3fSStefan HerdlerArguments 1065b2fffe3fSStefan Herdler~~~~~~~~~ 1066b2fffe3fSStefan Herdler 1067b2fffe3fSStefan Herdler.. flat-table:: 1068b2fffe3fSStefan Herdler :header-rows: 0 1069b2fffe3fSStefan Herdler :stub-columns: 0 1070b2fffe3fSStefan Herdler 1071b2fffe3fSStefan Herdler - .. 1072b2fffe3fSStefan Herdler 1073b2fffe3fSStefan Herdler - ``int fd`` 1074b2fffe3fSStefan Herdler 1075b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1076b2fffe3fSStefan Herdler to `open()`_. 1077b2fffe3fSStefan Herdler 1078b2fffe3fSStefan Herdler - .. 1079b2fffe3fSStefan Herdler 1080b2fffe3fSStefan Herdler - ``int request`` 1081b2fffe3fSStefan Herdler 1082b2fffe3fSStefan Herdler - Equals ``VIDEO_SELECT_SOURCE`` for this command. 1083b2fffe3fSStefan Herdler 1084b2fffe3fSStefan Herdler - .. 1085b2fffe3fSStefan Herdler 1086b2fffe3fSStefan Herdler - `video_stream_source_t`_ ``source`` 1087b2fffe3fSStefan Herdler 1088b2fffe3fSStefan Herdler - Indicates which source shall be used for the Video stream. 1089b2fffe3fSStefan Herdler 1090b2fffe3fSStefan HerdlerDescription 1091b2fffe3fSStefan Herdler~~~~~~~~~~~ 1092b2fffe3fSStefan Herdler 1093b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1094b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1095b2fffe3fSStefan Herdler 1096b2fffe3fSStefan HerdlerThis ioctl is for Digital TV devices only. This ioctl was also supported 1097b2fffe3fSStefan Herdlerby the V4L2 ivtv driver, but that has been replaced by the ivtv-specific 1098b2fffe3fSStefan Herdler``IVTV_IOC_PASSTHROUGH_MODE`` ioctl. 1099b2fffe3fSStefan Herdler 1100b2fffe3fSStefan HerdlerThis ioctl call informs the video device which source shall be used for 1101b2fffe3fSStefan Herdlerthe input data. The possible sources are demux or memory. If memory is 1102b2fffe3fSStefan Herdlerselected, the data is fed to the video device through the write command 1103b2fffe3fSStefan Herdlerusing the struct `video_stream_source_t`_. If demux is selected, the data 1104b2fffe3fSStefan Herdleris directly transferred from the onboard demux-device to the decoder. 1105b2fffe3fSStefan Herdler 1106b2fffe3fSStefan HerdlerThe data fed to the decoder is also controlled by the PID-filter. 1107b2fffe3fSStefan HerdlerOutput selection: :c:type:`dmx_output` ``DMX_OUT_DECODER``. 1108b2fffe3fSStefan Herdler 1109b2fffe3fSStefan Herdler 1110b2fffe3fSStefan HerdlerReturn Value 1111b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1112b2fffe3fSStefan Herdler 1113b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1114b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1115b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1116b2fffe3fSStefan Herdler 1117b2fffe3fSStefan Herdler 1118b2fffe3fSStefan Herdler----- 1119b2fffe3fSStefan Herdler 1120b2fffe3fSStefan Herdler 1121b2fffe3fSStefan HerdlerVIDEO_SET_BLANK 1122b2fffe3fSStefan Herdler--------------- 1123b2fffe3fSStefan Herdler 1124b2fffe3fSStefan HerdlerSynopsis 1125b2fffe3fSStefan Herdler~~~~~~~~ 1126b2fffe3fSStefan Herdler 1127b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SET_BLANK 1128b2fffe3fSStefan Herdler 1129b2fffe3fSStefan Herdler.. code-block:: c 1130b2fffe3fSStefan Herdler 1131b2fffe3fSStefan Herdler int ioctl(fd, VIDEO_SET_BLANK, int mode) 1132b2fffe3fSStefan Herdler 1133b2fffe3fSStefan HerdlerArguments 1134b2fffe3fSStefan Herdler~~~~~~~~~ 1135b2fffe3fSStefan Herdler 1136b2fffe3fSStefan Herdler.. flat-table:: 1137b2fffe3fSStefan Herdler :header-rows: 0 1138b2fffe3fSStefan Herdler :stub-columns: 0 1139b2fffe3fSStefan Herdler 1140b2fffe3fSStefan Herdler - .. 1141b2fffe3fSStefan Herdler 1142b2fffe3fSStefan Herdler - ``int fd`` 1143b2fffe3fSStefan Herdler 1144b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1145b2fffe3fSStefan Herdler to `open()`_. 1146b2fffe3fSStefan Herdler 1147b2fffe3fSStefan Herdler - .. 1148b2fffe3fSStefan Herdler 1149b2fffe3fSStefan Herdler - ``int request`` 1150b2fffe3fSStefan Herdler 1151b2fffe3fSStefan Herdler - :cspan:`1` Equals ``VIDEO_SET_BLANK`` for this command. 1152b2fffe3fSStefan Herdler 1153b2fffe3fSStefan Herdler - .. 1154b2fffe3fSStefan Herdler 1155b2fffe3fSStefan Herdler - :rspan:`2` ``int mode`` 1156b2fffe3fSStefan Herdler 1157b2fffe3fSStefan Herdler - :cspan:`1` Indicates if the screen shall be blanked. 1158b2fffe3fSStefan Herdler 1159b2fffe3fSStefan Herdler - .. 1160b2fffe3fSStefan Herdler 1161b2fffe3fSStefan Herdler - TRUE ( != 0 ) 1162b2fffe3fSStefan Herdler 1163b2fffe3fSStefan Herdler - Blank screen when stop. 1164b2fffe3fSStefan Herdler 1165b2fffe3fSStefan Herdler - .. 1166b2fffe3fSStefan Herdler 1167b2fffe3fSStefan Herdler - FALSE ( == 0 ) 1168b2fffe3fSStefan Herdler 1169b2fffe3fSStefan Herdler - Show last decoded frame. 1170b2fffe3fSStefan Herdler 1171b2fffe3fSStefan HerdlerDescription 1172b2fffe3fSStefan Herdler~~~~~~~~~~~ 1173b2fffe3fSStefan Herdler 1174b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1175b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1176b2fffe3fSStefan Herdler 1177b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to blank out the picture. 1178b2fffe3fSStefan Herdler 1179b2fffe3fSStefan HerdlerReturn Value 1180b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1181b2fffe3fSStefan Herdler 1182b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1183b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1184b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1185b2fffe3fSStefan Herdler 1186b2fffe3fSStefan Herdler 1187b2fffe3fSStefan Herdler----- 1188b2fffe3fSStefan Herdler 1189b2fffe3fSStefan Herdler 1190b2fffe3fSStefan HerdlerVIDEO_GET_STATUS 1191b2fffe3fSStefan Herdler---------------- 1192b2fffe3fSStefan Herdler 1193b2fffe3fSStefan HerdlerSynopsis 1194b2fffe3fSStefan Herdler~~~~~~~~ 1195b2fffe3fSStefan Herdler 1196b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_STATUS 1197b2fffe3fSStefan Herdler 1198b2fffe3fSStefan Herdler.. code-block:: c 1199b2fffe3fSStefan Herdler 1200b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_GET_STATUS, 1201b2fffe3fSStefan Herdler struct video_status *status) 1202b2fffe3fSStefan Herdler 1203b2fffe3fSStefan HerdlerArguments 1204b2fffe3fSStefan Herdler~~~~~~~~~ 1205b2fffe3fSStefan Herdler 1206b2fffe3fSStefan Herdler.. flat-table:: 1207b2fffe3fSStefan Herdler :header-rows: 0 1208b2fffe3fSStefan Herdler :stub-columns: 0 1209b2fffe3fSStefan Herdler 1210b2fffe3fSStefan Herdler - .. 1211b2fffe3fSStefan Herdler 1212b2fffe3fSStefan Herdler - ``int fd`` 1213b2fffe3fSStefan Herdler 1214b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1215b2fffe3fSStefan Herdler to `open()`_. 1216b2fffe3fSStefan Herdler 1217b2fffe3fSStefan Herdler - .. 1218b2fffe3fSStefan Herdler 1219b2fffe3fSStefan Herdler - ``int request`` 1220b2fffe3fSStefan Herdler 1221b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_STATUS`` for this command. 1222b2fffe3fSStefan Herdler 1223b2fffe3fSStefan Herdler - .. 1224b2fffe3fSStefan Herdler 1225b2fffe3fSStefan Herdler - ``struct`` `video_status`_ ``*status`` 1226b2fffe3fSStefan Herdler 1227b2fffe3fSStefan Herdler - Returns the current status of the Video Device. 1228b2fffe3fSStefan Herdler 1229b2fffe3fSStefan HerdlerDescription 1230b2fffe3fSStefan Herdler~~~~~~~~~~~ 1231b2fffe3fSStefan Herdler 1232b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1233b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1234b2fffe3fSStefan Herdler 1235b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to return the current status of 1236b2fffe3fSStefan Herdlerthe device. 1237b2fffe3fSStefan Herdler 1238b2fffe3fSStefan HerdlerReturn Value 1239b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1240b2fffe3fSStefan Herdler 1241b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1242b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1243b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1244b2fffe3fSStefan Herdler 1245b2fffe3fSStefan Herdler 1246b2fffe3fSStefan Herdler----- 1247b2fffe3fSStefan Herdler 1248b2fffe3fSStefan Herdler 1249b2fffe3fSStefan HerdlerVIDEO_GET_EVENT 1250b2fffe3fSStefan Herdler--------------- 1251b2fffe3fSStefan Herdler 1252b2fffe3fSStefan HerdlerSynopsis 1253b2fffe3fSStefan Herdler~~~~~~~~ 1254b2fffe3fSStefan Herdler 1255b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_EVENT 1256b2fffe3fSStefan Herdler 1257b2fffe3fSStefan Herdler.. code-block:: c 1258b2fffe3fSStefan Herdler 1259b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_GET_EVENT, 1260b2fffe3fSStefan Herdler struct video_event *ev) 1261b2fffe3fSStefan Herdler 1262b2fffe3fSStefan HerdlerArguments 1263b2fffe3fSStefan Herdler~~~~~~~~~ 1264b2fffe3fSStefan Herdler 1265b2fffe3fSStefan Herdler.. flat-table:: 1266b2fffe3fSStefan Herdler :header-rows: 0 1267b2fffe3fSStefan Herdler :stub-columns: 0 1268b2fffe3fSStefan Herdler 1269b2fffe3fSStefan Herdler - .. 1270b2fffe3fSStefan Herdler 1271b2fffe3fSStefan Herdler - ``int fd`` 1272b2fffe3fSStefan Herdler 1273b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1274b2fffe3fSStefan Herdler to `open()`_. 1275b2fffe3fSStefan Herdler 1276b2fffe3fSStefan Herdler - .. 1277b2fffe3fSStefan Herdler 1278b2fffe3fSStefan Herdler - ``int request`` 1279b2fffe3fSStefan Herdler 1280b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_EVENT`` for this command. 1281b2fffe3fSStefan Herdler 1282b2fffe3fSStefan Herdler - .. 1283b2fffe3fSStefan Herdler 1284b2fffe3fSStefan Herdler - ``struct`` `video_event`_ ``*ev`` 1285b2fffe3fSStefan Herdler 1286b2fffe3fSStefan Herdler - Points to the location where the event, if any, is to be stored. 1287b2fffe3fSStefan Herdler 1288b2fffe3fSStefan HerdlerDescription 1289b2fffe3fSStefan Herdler~~~~~~~~~~~ 1290b2fffe3fSStefan Herdler 1291b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1292b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1293b2fffe3fSStefan Herdler 1294b2fffe3fSStefan HerdlerThis ioctl is for DVB devices only. To get events from a V4L2 decoder 1295b2fffe3fSStefan Herdleruse the V4L2 :ref:`VIDIOC_DQEVENT` ioctl instead. 1296b2fffe3fSStefan Herdler 1297b2fffe3fSStefan HerdlerThis ioctl call returns an event of type `video_event`_ if available. A 1298b2fffe3fSStefan Herdlercertain number of the latest events will be cued and returned in order of 1299b2fffe3fSStefan Herdleroccurrence. Older events may be discarded if not fetched in time. If 1300b2fffe3fSStefan Herdleran event is not available, the behavior depends on whether the device is 1301b2fffe3fSStefan Herdlerin blocking or non-blocking mode. In the latter case, the call fails 1302b2fffe3fSStefan Herdlerimmediately with errno set to ``EWOULDBLOCK``. In the former case, the 1303b2fffe3fSStefan Herdlercall blocks until an event becomes available. The standard Linux poll() 1304b2fffe3fSStefan Herdlerand/or select() system calls can be used with the device file descriptor 1305b2fffe3fSStefan Herdlerto watch for new events. For select(), the file descriptor should be 1306b2fffe3fSStefan Herdlerincluded in the exceptfds argument, and for poll(), POLLPRI should be 1307b2fffe3fSStefan Herdlerspecified as the wake-up condition. Read-only permissions are sufficient 1308b2fffe3fSStefan Herdlerfor this ioctl call. 1309b2fffe3fSStefan Herdler 1310b2fffe3fSStefan HerdlerReturn Value 1311b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1312b2fffe3fSStefan Herdler 1313b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1314b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1315b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1316b2fffe3fSStefan Herdler 1317b2fffe3fSStefan Herdler.. flat-table:: 1318b2fffe3fSStefan Herdler :header-rows: 0 1319b2fffe3fSStefan Herdler :stub-columns: 0 1320b2fffe3fSStefan Herdler 1321b2fffe3fSStefan Herdler - .. 1322b2fffe3fSStefan Herdler 1323b2fffe3fSStefan Herdler - ``EWOULDBLOCK`` 1324b2fffe3fSStefan Herdler 1325b2fffe3fSStefan Herdler - :cspan:`1` There is no event pending, and the device is in 1326b2fffe3fSStefan Herdler non-blocking mode. 1327b2fffe3fSStefan Herdler 1328b2fffe3fSStefan Herdler - .. 1329b2fffe3fSStefan Herdler 1330b2fffe3fSStefan Herdler - ``EOVERFLOW`` 1331b2fffe3fSStefan Herdler 1332b2fffe3fSStefan Herdler - Overflow in event queue - one or more events were lost. 1333b2fffe3fSStefan Herdler 1334b2fffe3fSStefan Herdler 1335b2fffe3fSStefan Herdler----- 1336b2fffe3fSStefan Herdler 1337b2fffe3fSStefan Herdler 1338b2fffe3fSStefan HerdlerVIDEO_SET_DISPLAY_FORMAT 1339b2fffe3fSStefan Herdler------------------------ 1340b2fffe3fSStefan Herdler 1341b2fffe3fSStefan HerdlerSynopsis 1342b2fffe3fSStefan Herdler~~~~~~~~ 1343b2fffe3fSStefan Herdler 1344b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SET_DISPLAY_FORMAT 1345b2fffe3fSStefan Herdler 1346b2fffe3fSStefan Herdler.. code-block:: c 1347b2fffe3fSStefan Herdler 1348b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_SET_DISPLAY_FORMAT, 1349b2fffe3fSStefan Herdler video_display_format_t format) 1350b2fffe3fSStefan Herdler 1351b2fffe3fSStefan HerdlerArguments 1352b2fffe3fSStefan Herdler~~~~~~~~~ 1353b2fffe3fSStefan Herdler 1354b2fffe3fSStefan Herdler.. flat-table:: 1355b2fffe3fSStefan Herdler :header-rows: 0 1356b2fffe3fSStefan Herdler :stub-columns: 0 1357b2fffe3fSStefan Herdler 1358b2fffe3fSStefan Herdler - .. 1359b2fffe3fSStefan Herdler 1360b2fffe3fSStefan Herdler - ``int fd`` 1361b2fffe3fSStefan Herdler 1362b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1363b2fffe3fSStefan Herdler to `open()`_. 1364b2fffe3fSStefan Herdler 1365b2fffe3fSStefan Herdler - .. 1366b2fffe3fSStefan Herdler 1367b2fffe3fSStefan Herdler - ``int request`` 1368b2fffe3fSStefan Herdler 1369b2fffe3fSStefan Herdler - Equals ``VIDEO_SET_DISPLAY_FORMAT`` for this command. 1370b2fffe3fSStefan Herdler 1371b2fffe3fSStefan Herdler - .. 1372b2fffe3fSStefan Herdler 1373b2fffe3fSStefan Herdler - `video_displayformat_t`_ ``format`` 1374b2fffe3fSStefan Herdler 1375b2fffe3fSStefan Herdler - Selects the video format to be used. 1376b2fffe3fSStefan Herdler 1377b2fffe3fSStefan HerdlerDescription 1378b2fffe3fSStefan Herdler~~~~~~~~~~~ 1379b2fffe3fSStefan Herdler 1380b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1381b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1382b2fffe3fSStefan Herdler 1383b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to select the video format to be 1384b2fffe3fSStefan Herdlerapplied by the MPEG chip on the video. 1385b2fffe3fSStefan Herdler 1386b2fffe3fSStefan HerdlerReturn Value 1387b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1388b2fffe3fSStefan Herdler 1389b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1390b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1391b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1392b2fffe3fSStefan Herdler 1393b2fffe3fSStefan Herdler 1394b2fffe3fSStefan Herdler----- 1395b2fffe3fSStefan Herdler 1396b2fffe3fSStefan Herdler 1397b2fffe3fSStefan HerdlerVIDEO_STILLPICTURE 1398b2fffe3fSStefan Herdler------------------ 1399b2fffe3fSStefan Herdler 1400b2fffe3fSStefan HerdlerSynopsis 1401b2fffe3fSStefan Herdler~~~~~~~~ 1402b2fffe3fSStefan Herdler 1403b2fffe3fSStefan Herdler.. c:macro:: VIDEO_STILLPICTURE 1404b2fffe3fSStefan Herdler 1405b2fffe3fSStefan Herdler.. code-block:: c 1406b2fffe3fSStefan Herdler 1407b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_STILLPICTURE, 1408b2fffe3fSStefan Herdler struct video_still_picture *sp) 1409b2fffe3fSStefan Herdler 1410b2fffe3fSStefan HerdlerArguments 1411b2fffe3fSStefan Herdler~~~~~~~~~ 1412b2fffe3fSStefan Herdler 1413b2fffe3fSStefan Herdler.. flat-table:: 1414b2fffe3fSStefan Herdler :header-rows: 0 1415b2fffe3fSStefan Herdler :stub-columns: 0 1416b2fffe3fSStefan Herdler 1417b2fffe3fSStefan Herdler - .. 1418b2fffe3fSStefan Herdler 1419b2fffe3fSStefan Herdler - ``int fd`` 1420b2fffe3fSStefan Herdler 1421b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1422b2fffe3fSStefan Herdler to `open()`_. 1423b2fffe3fSStefan Herdler 1424b2fffe3fSStefan Herdler - .. 1425b2fffe3fSStefan Herdler 1426b2fffe3fSStefan Herdler - ``int request`` 1427b2fffe3fSStefan Herdler 1428b2fffe3fSStefan Herdler - Equals ``VIDEO_STILLPICTURE`` for this command. 1429b2fffe3fSStefan Herdler 1430b2fffe3fSStefan Herdler - .. 1431b2fffe3fSStefan Herdler 1432b2fffe3fSStefan Herdler - ``struct`` `video_still_picture`_ ``*sp`` 1433b2fffe3fSStefan Herdler 1434b2fffe3fSStefan Herdler - Pointer to the location where the struct with the I-frame 1435b2fffe3fSStefan Herdler and size is stored. 1436b2fffe3fSStefan Herdler 1437b2fffe3fSStefan HerdlerDescription 1438b2fffe3fSStefan Herdler~~~~~~~~~~~ 1439b2fffe3fSStefan Herdler 1440b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1441b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1442b2fffe3fSStefan Herdler 1443b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to display a still picture 1444b2fffe3fSStefan Herdler(I-frame). The input data shall be the section of an elementary video 1445b2fffe3fSStefan Herdlerstream containing an I-frame. Typically this section is extracted from a 1446b2fffe3fSStefan HerdlerTS or PES recording. Resolution and codec (see `video capabilities`_) must 1447b2fffe3fSStefan Herdlerbe supported by the device. If the pointer is NULL, then the current 1448b2fffe3fSStefan Herdlerdisplayed still picture is blanked. 1449b2fffe3fSStefan Herdler 1450b2fffe3fSStefan Herdlere.g. The AV7110 supports MPEG1 and MPEG2 with the common PAL-SD 1451b2fffe3fSStefan Herdlerresolutions. 1452b2fffe3fSStefan Herdler 1453b2fffe3fSStefan HerdlerReturn Value 1454b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1455b2fffe3fSStefan Herdler 1456b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1457b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1458b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1459b2fffe3fSStefan Herdler 1460b2fffe3fSStefan Herdler 1461b2fffe3fSStefan Herdler----- 1462b2fffe3fSStefan Herdler 1463b2fffe3fSStefan Herdler 1464b2fffe3fSStefan HerdlerVIDEO_FAST_FORWARD 1465b2fffe3fSStefan Herdler------------------ 1466b2fffe3fSStefan Herdler 1467b2fffe3fSStefan HerdlerSynopsis 1468b2fffe3fSStefan Herdler~~~~~~~~ 1469b2fffe3fSStefan Herdler 1470b2fffe3fSStefan Herdler.. c:macro:: VIDEO_FAST_FORWARD 1471b2fffe3fSStefan Herdler 1472b2fffe3fSStefan Herdler.. code-block:: c 1473b2fffe3fSStefan Herdler 1474b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_FAST_FORWARD, int nFrames) 1475b2fffe3fSStefan Herdler 1476b2fffe3fSStefan HerdlerArguments 1477b2fffe3fSStefan Herdler~~~~~~~~~ 1478b2fffe3fSStefan Herdler 1479b2fffe3fSStefan Herdler.. flat-table:: 1480b2fffe3fSStefan Herdler :header-rows: 0 1481b2fffe3fSStefan Herdler :stub-columns: 0 1482b2fffe3fSStefan Herdler 1483b2fffe3fSStefan Herdler - .. 1484b2fffe3fSStefan Herdler 1485b2fffe3fSStefan Herdler - ``int fd`` 1486b2fffe3fSStefan Herdler 1487b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1488b2fffe3fSStefan Herdler to `open()`_. 1489b2fffe3fSStefan Herdler 1490b2fffe3fSStefan Herdler - .. 1491b2fffe3fSStefan Herdler 1492b2fffe3fSStefan Herdler - ``int request`` 1493b2fffe3fSStefan Herdler 1494b2fffe3fSStefan Herdler - Equals ``VIDEO_FAST_FORWARD`` for this command. 1495b2fffe3fSStefan Herdler 1496b2fffe3fSStefan Herdler - .. 1497b2fffe3fSStefan Herdler 1498b2fffe3fSStefan Herdler - ``int nFrames`` 1499b2fffe3fSStefan Herdler 1500b2fffe3fSStefan Herdler - The number of frames to skip. 1501b2fffe3fSStefan Herdler 1502b2fffe3fSStefan HerdlerDescription 1503b2fffe3fSStefan Herdler~~~~~~~~~~~ 1504b2fffe3fSStefan Herdler 1505b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1506b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1507b2fffe3fSStefan Herdler 1508b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to skip decoding of N number of 1509b2fffe3fSStefan HerdlerI-frames. This call can only be used if ``VIDEO_SOURCE_MEMORY`` is 1510b2fffe3fSStefan Herdlerselected. 1511b2fffe3fSStefan Herdler 1512b2fffe3fSStefan HerdlerReturn Value 1513b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1514b2fffe3fSStefan Herdler 1515b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1516b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1517b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1518b2fffe3fSStefan Herdler 1519b2fffe3fSStefan Herdler.. flat-table:: 1520b2fffe3fSStefan Herdler :header-rows: 0 1521b2fffe3fSStefan Herdler :stub-columns: 0 1522b2fffe3fSStefan Herdler 1523b2fffe3fSStefan Herdler - .. 1524b2fffe3fSStefan Herdler 1525b2fffe3fSStefan Herdler - ``EPERM`` 1526b2fffe3fSStefan Herdler 1527b2fffe3fSStefan Herdler - Mode ``VIDEO_SOURCE_MEMORY`` not selected. 1528b2fffe3fSStefan Herdler 1529b2fffe3fSStefan Herdler 1530b2fffe3fSStefan Herdler----- 1531b2fffe3fSStefan Herdler 1532b2fffe3fSStefan Herdler 1533b2fffe3fSStefan HerdlerVIDEO_SLOWMOTION 1534b2fffe3fSStefan Herdler---------------- 1535b2fffe3fSStefan Herdler 1536b2fffe3fSStefan HerdlerSynopsis 1537b2fffe3fSStefan Herdler~~~~~~~~ 1538b2fffe3fSStefan Herdler 1539b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SLOWMOTION 1540b2fffe3fSStefan Herdler 1541b2fffe3fSStefan Herdler.. code-block:: c 1542b2fffe3fSStefan Herdler 1543b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_SLOWMOTION, int nFrames) 1544b2fffe3fSStefan Herdler 1545b2fffe3fSStefan HerdlerArguments 1546b2fffe3fSStefan Herdler~~~~~~~~~ 1547b2fffe3fSStefan Herdler 1548b2fffe3fSStefan Herdler.. flat-table:: 1549b2fffe3fSStefan Herdler :header-rows: 0 1550b2fffe3fSStefan Herdler :stub-columns: 0 1551b2fffe3fSStefan Herdler 1552b2fffe3fSStefan Herdler - .. 1553b2fffe3fSStefan Herdler 1554b2fffe3fSStefan Herdler - ``int fd`` 1555b2fffe3fSStefan Herdler 1556b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1557b2fffe3fSStefan Herdler to `open()`_. 1558b2fffe3fSStefan Herdler 1559b2fffe3fSStefan Herdler - .. 1560b2fffe3fSStefan Herdler 1561b2fffe3fSStefan Herdler - ``int request`` 1562b2fffe3fSStefan Herdler 1563b2fffe3fSStefan Herdler - Equals ``VIDEO_SLOWMOTION`` for this command. 1564b2fffe3fSStefan Herdler 1565b2fffe3fSStefan Herdler - .. 1566b2fffe3fSStefan Herdler 1567b2fffe3fSStefan Herdler - ``int nFrames`` 1568b2fffe3fSStefan Herdler 1569b2fffe3fSStefan Herdler - The number of times to repeat each frame. 1570b2fffe3fSStefan Herdler 1571b2fffe3fSStefan HerdlerDescription 1572b2fffe3fSStefan Herdler~~~~~~~~~~~ 1573b2fffe3fSStefan Herdler 1574b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1575b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1576b2fffe3fSStefan Herdler 1577b2fffe3fSStefan HerdlerThis ioctl call asks the video device to repeat decoding frames N number 1578b2fffe3fSStefan Herdlerof times. This call can only be used if ``VIDEO_SOURCE_MEMORY`` is 1579b2fffe3fSStefan Herdlerselected. 1580b2fffe3fSStefan Herdler 1581b2fffe3fSStefan HerdlerReturn Value 1582b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1583b2fffe3fSStefan Herdler 1584b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1585b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1586b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1587b2fffe3fSStefan Herdler 1588b2fffe3fSStefan Herdler.. flat-table:: 1589b2fffe3fSStefan Herdler :header-rows: 0 1590b2fffe3fSStefan Herdler :stub-columns: 0 1591b2fffe3fSStefan Herdler 1592b2fffe3fSStefan Herdler - .. 1593b2fffe3fSStefan Herdler 1594b2fffe3fSStefan Herdler - ``EPERM`` 1595b2fffe3fSStefan Herdler 1596b2fffe3fSStefan Herdler - Mode ``VIDEO_SOURCE_MEMORY`` not selected. 1597b2fffe3fSStefan Herdler 1598b2fffe3fSStefan Herdler 1599b2fffe3fSStefan Herdler----- 1600b2fffe3fSStefan Herdler 1601b2fffe3fSStefan Herdler 1602b2fffe3fSStefan HerdlerVIDEO_GET_CAPABILITIES 1603b2fffe3fSStefan Herdler---------------------- 1604b2fffe3fSStefan Herdler 1605b2fffe3fSStefan HerdlerSynopsis 1606b2fffe3fSStefan Herdler~~~~~~~~ 1607b2fffe3fSStefan Herdler 1608b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_CAPABILITIES 1609b2fffe3fSStefan Herdler 1610b2fffe3fSStefan Herdler.. code-block:: c 1611b2fffe3fSStefan Herdler 1612b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_GET_CAPABILITIES, unsigned int *cap) 1613b2fffe3fSStefan Herdler 1614b2fffe3fSStefan HerdlerArguments 1615b2fffe3fSStefan Herdler~~~~~~~~~ 1616b2fffe3fSStefan Herdler 1617b2fffe3fSStefan Herdler.. flat-table:: 1618b2fffe3fSStefan Herdler :header-rows: 0 1619b2fffe3fSStefan Herdler :stub-columns: 0 1620b2fffe3fSStefan Herdler 1621b2fffe3fSStefan Herdler - .. 1622b2fffe3fSStefan Herdler 1623b2fffe3fSStefan Herdler - ``int fd`` 1624b2fffe3fSStefan Herdler 1625b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1626b2fffe3fSStefan Herdler to `open()`_. 1627b2fffe3fSStefan Herdler 1628b2fffe3fSStefan Herdler - .. 1629b2fffe3fSStefan Herdler 1630b2fffe3fSStefan Herdler - ``int request`` 1631b2fffe3fSStefan Herdler 1632b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_CAPABILITIES`` for this command. 1633b2fffe3fSStefan Herdler 1634b2fffe3fSStefan Herdler - .. 1635b2fffe3fSStefan Herdler 1636b2fffe3fSStefan Herdler - ``unsigned int *cap`` 1637b2fffe3fSStefan Herdler 1638b2fffe3fSStefan Herdler - Pointer to a location where to store the capability information. 1639b2fffe3fSStefan Herdler 1640b2fffe3fSStefan HerdlerDescription 1641b2fffe3fSStefan Herdler~~~~~~~~~~~ 1642b2fffe3fSStefan Herdler 1643b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1644b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1645b2fffe3fSStefan Herdler 1646b2fffe3fSStefan HerdlerThis ioctl call asks the video device about its decoding capabilities. 1647b2fffe3fSStefan HerdlerOn success it returns an integer which has bits set according to the 1648b2fffe3fSStefan Herdlerdefines in `video capabilities`_. 1649b2fffe3fSStefan Herdler 1650b2fffe3fSStefan HerdlerReturn Value 1651b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1652b2fffe3fSStefan Herdler 1653b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1654b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1655b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1656b2fffe3fSStefan Herdler 1657b2fffe3fSStefan Herdler 1658b2fffe3fSStefan Herdler----- 1659b2fffe3fSStefan Herdler 1660b2fffe3fSStefan Herdler 1661b2fffe3fSStefan HerdlerVIDEO_CLEAR_BUFFER 1662b2fffe3fSStefan Herdler------------------ 1663b2fffe3fSStefan Herdler 1664b2fffe3fSStefan HerdlerSynopsis 1665b2fffe3fSStefan Herdler~~~~~~~~ 1666b2fffe3fSStefan Herdler 1667b2fffe3fSStefan Herdler.. c:macro:: VIDEO_CLEAR_BUFFER 1668b2fffe3fSStefan Herdler 1669b2fffe3fSStefan Herdler.. code-block:: c 1670b2fffe3fSStefan Herdler 1671b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_CLEAR_BUFFER) 1672b2fffe3fSStefan Herdler 1673b2fffe3fSStefan HerdlerArguments 1674b2fffe3fSStefan Herdler~~~~~~~~~ 1675b2fffe3fSStefan Herdler 1676b2fffe3fSStefan Herdler.. flat-table:: 1677b2fffe3fSStefan Herdler :header-rows: 0 1678b2fffe3fSStefan Herdler :stub-columns: 0 1679b2fffe3fSStefan Herdler 1680b2fffe3fSStefan Herdler - .. 1681b2fffe3fSStefan Herdler 1682b2fffe3fSStefan Herdler - ``int fd`` 1683b2fffe3fSStefan Herdler 1684b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1685b2fffe3fSStefan Herdler to `open()`_. 1686b2fffe3fSStefan Herdler 1687b2fffe3fSStefan Herdler - .. 1688b2fffe3fSStefan Herdler 1689b2fffe3fSStefan Herdler - ``int request`` 1690b2fffe3fSStefan Herdler 1691b2fffe3fSStefan Herdler - Equals ``VIDEO_CLEAR_BUFFER`` for this command. 1692b2fffe3fSStefan Herdler 1693b2fffe3fSStefan HerdlerDescription 1694b2fffe3fSStefan Herdler~~~~~~~~~~~ 1695b2fffe3fSStefan Herdler 1696b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1697b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1698b2fffe3fSStefan Herdler 1699b2fffe3fSStefan HerdlerThis ioctl call clears all video buffers in the driver and in the 1700b2fffe3fSStefan Herdlerdecoder hardware. 1701b2fffe3fSStefan Herdler 1702b2fffe3fSStefan HerdlerReturn Value 1703b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1704b2fffe3fSStefan Herdler 1705b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1706b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1707b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1708b2fffe3fSStefan Herdler 1709b2fffe3fSStefan Herdler 1710b2fffe3fSStefan Herdler----- 1711b2fffe3fSStefan Herdler 1712b2fffe3fSStefan Herdler 1713b2fffe3fSStefan HerdlerVIDEO_SET_STREAMTYPE 1714b2fffe3fSStefan Herdler-------------------- 1715b2fffe3fSStefan Herdler 1716b2fffe3fSStefan HerdlerSynopsis 1717b2fffe3fSStefan Herdler~~~~~~~~ 1718b2fffe3fSStefan Herdler 1719b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SET_STREAMTYPE 1720b2fffe3fSStefan Herdler 1721b2fffe3fSStefan Herdler.. code-block:: c 1722b2fffe3fSStefan Herdler 1723b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_SET_STREAMTYPE, int type) 1724b2fffe3fSStefan Herdler 1725b2fffe3fSStefan HerdlerArguments 1726b2fffe3fSStefan Herdler~~~~~~~~~ 1727b2fffe3fSStefan Herdler 1728b2fffe3fSStefan Herdler.. flat-table:: 1729b2fffe3fSStefan Herdler :header-rows: 0 1730b2fffe3fSStefan Herdler :stub-columns: 0 1731b2fffe3fSStefan Herdler 1732b2fffe3fSStefan Herdler - .. 1733b2fffe3fSStefan Herdler 1734b2fffe3fSStefan Herdler - ``int fd`` 1735b2fffe3fSStefan Herdler 1736b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1737b2fffe3fSStefan Herdler to `open()`_. 1738b2fffe3fSStefan Herdler 1739b2fffe3fSStefan Herdler - .. 1740b2fffe3fSStefan Herdler 1741b2fffe3fSStefan Herdler - ``int request`` 1742b2fffe3fSStefan Herdler 1743b2fffe3fSStefan Herdler - Equals ``VIDEO_SET_STREAMTYPE`` for this command. 1744b2fffe3fSStefan Herdler 1745b2fffe3fSStefan Herdler - .. 1746b2fffe3fSStefan Herdler 1747b2fffe3fSStefan Herdler - ``int type`` 1748b2fffe3fSStefan Herdler 1749b2fffe3fSStefan Herdler - Stream type. 1750b2fffe3fSStefan Herdler 1751b2fffe3fSStefan HerdlerDescription 1752b2fffe3fSStefan Herdler~~~~~~~~~~~ 1753b2fffe3fSStefan Herdler 1754b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1755b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1756b2fffe3fSStefan Herdler 1757b2fffe3fSStefan HerdlerThis ioctl tells the driver which kind of stream to expect being written 1758b2fffe3fSStefan Herdlerto it. 1759b2fffe3fSStefan HerdlerIntelligent decoder might also not support or ignore (like the AV7110) 1760b2fffe3fSStefan Herdlerthis call and determine the stream type themselves. 1761b2fffe3fSStefan Herdler 1762b2fffe3fSStefan HerdlerCurrently used stream types: 1763b2fffe3fSStefan Herdler 1764b2fffe3fSStefan Herdler.. flat-table:: 1765b2fffe3fSStefan Herdler :header-rows: 1 1766b2fffe3fSStefan Herdler :stub-columns: 0 1767b2fffe3fSStefan Herdler 1768b2fffe3fSStefan Herdler - .. 1769b2fffe3fSStefan Herdler 1770b2fffe3fSStefan Herdler - Codec 1771b2fffe3fSStefan Herdler 1772b2fffe3fSStefan Herdler - Stream type 1773b2fffe3fSStefan Herdler 1774b2fffe3fSStefan Herdler - .. 1775b2fffe3fSStefan Herdler 1776b2fffe3fSStefan Herdler - MPEG2 1777b2fffe3fSStefan Herdler 1778b2fffe3fSStefan Herdler - 0 1779b2fffe3fSStefan Herdler 1780b2fffe3fSStefan Herdler - .. 1781b2fffe3fSStefan Herdler 1782b2fffe3fSStefan Herdler - MPEG4 h.264 1783b2fffe3fSStefan Herdler 1784b2fffe3fSStefan Herdler - 1 1785b2fffe3fSStefan Herdler 1786b2fffe3fSStefan Herdler - .. 1787b2fffe3fSStefan Herdler 1788b2fffe3fSStefan Herdler - VC1 1789b2fffe3fSStefan Herdler 1790b2fffe3fSStefan Herdler - 3 1791b2fffe3fSStefan Herdler 1792b2fffe3fSStefan Herdler - .. 1793b2fffe3fSStefan Herdler 1794b2fffe3fSStefan Herdler - MPEG4 Part2 1795b2fffe3fSStefan Herdler 1796b2fffe3fSStefan Herdler - 4 1797b2fffe3fSStefan Herdler 1798b2fffe3fSStefan Herdler - .. 1799b2fffe3fSStefan Herdler 1800b2fffe3fSStefan Herdler - VC1 SM 1801b2fffe3fSStefan Herdler 1802b2fffe3fSStefan Herdler - 5 1803b2fffe3fSStefan Herdler 1804b2fffe3fSStefan Herdler - .. 1805b2fffe3fSStefan Herdler 1806b2fffe3fSStefan Herdler - MPEG1 1807b2fffe3fSStefan Herdler 1808b2fffe3fSStefan Herdler - 6 1809b2fffe3fSStefan Herdler 1810b2fffe3fSStefan Herdler - .. 1811b2fffe3fSStefan Herdler 1812b2fffe3fSStefan Herdler - HEVC h.265 1813b2fffe3fSStefan Herdler 1814b2fffe3fSStefan Herdler - | 7 1815b2fffe3fSStefan Herdler | DREAMBOX: 22 1816b2fffe3fSStefan Herdler 1817b2fffe3fSStefan Herdler - .. 1818b2fffe3fSStefan Herdler 1819b2fffe3fSStefan Herdler - AVS 1820b2fffe3fSStefan Herdler 1821b2fffe3fSStefan Herdler - 16 1822b2fffe3fSStefan Herdler 1823b2fffe3fSStefan Herdler - .. 1824b2fffe3fSStefan Herdler 1825b2fffe3fSStefan Herdler - AVS2 1826b2fffe3fSStefan Herdler 1827b2fffe3fSStefan Herdler - 40 1828b2fffe3fSStefan Herdler 1829b2fffe3fSStefan HerdlerNot every decoder supports all stream types. 1830b2fffe3fSStefan Herdler 1831b2fffe3fSStefan HerdlerReturn Value 1832b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1833b2fffe3fSStefan Herdler 1834b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1835b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1836b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1837b2fffe3fSStefan Herdler 1838b2fffe3fSStefan Herdler 1839b2fffe3fSStefan Herdler----- 1840b2fffe3fSStefan Herdler 1841b2fffe3fSStefan Herdler 1842b2fffe3fSStefan HerdlerVIDEO_SET_FORMAT 1843b2fffe3fSStefan Herdler---------------- 1844b2fffe3fSStefan Herdler 1845b2fffe3fSStefan HerdlerSynopsis 1846b2fffe3fSStefan Herdler~~~~~~~~ 1847b2fffe3fSStefan Herdler 1848b2fffe3fSStefan Herdler.. c:macro:: VIDEO_SET_FORMAT 1849b2fffe3fSStefan Herdler 1850b2fffe3fSStefan Herdler.. code-block:: c 1851b2fffe3fSStefan Herdler 1852b2fffe3fSStefan Herdler int ioctl(fd, int request = VIDEO_SET_FORMAT, video_format_t format) 1853b2fffe3fSStefan Herdler 1854b2fffe3fSStefan HerdlerArguments 1855b2fffe3fSStefan Herdler~~~~~~~~~ 1856b2fffe3fSStefan Herdler 1857b2fffe3fSStefan Herdler.. flat-table:: 1858b2fffe3fSStefan Herdler :header-rows: 0 1859b2fffe3fSStefan Herdler :stub-columns: 0 1860b2fffe3fSStefan Herdler 1861b2fffe3fSStefan Herdler - .. 1862b2fffe3fSStefan Herdler 1863b2fffe3fSStefan Herdler - ``int fd`` 1864b2fffe3fSStefan Herdler 1865b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1866b2fffe3fSStefan Herdler to `open()`_. 1867b2fffe3fSStefan Herdler 1868b2fffe3fSStefan Herdler - .. 1869b2fffe3fSStefan Herdler 1870b2fffe3fSStefan Herdler - ``int request`` 1871b2fffe3fSStefan Herdler 1872b2fffe3fSStefan Herdler - Equals ``VIDEO_SET_FORMAT`` for this command. 1873b2fffe3fSStefan Herdler 1874b2fffe3fSStefan Herdler - .. 1875b2fffe3fSStefan Herdler 1876b2fffe3fSStefan Herdler - `video_format_t`_ ``format`` 1877b2fffe3fSStefan Herdler 1878b2fffe3fSStefan Herdler - Video format of TV as defined in section `video_format_t`_. 1879b2fffe3fSStefan Herdler 1880b2fffe3fSStefan HerdlerDescription 1881b2fffe3fSStefan Herdler~~~~~~~~~~~ 1882b2fffe3fSStefan Herdler 1883b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1884b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1885b2fffe3fSStefan Herdler 1886b2fffe3fSStefan HerdlerThis ioctl sets the screen format (aspect ratio) of the connected output 1887b2fffe3fSStefan Herdlerdevice (TV) so that the output of the decoder can be adjusted 1888b2fffe3fSStefan Herdleraccordingly. 1889b2fffe3fSStefan Herdler 1890b2fffe3fSStefan HerdlerReturn Value 1891b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1892b2fffe3fSStefan Herdler 1893b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1894b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1895b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1896b2fffe3fSStefan Herdler 1897b2fffe3fSStefan Herdler 1898b2fffe3fSStefan Herdler----- 1899b2fffe3fSStefan Herdler 1900b2fffe3fSStefan Herdler 1901b2fffe3fSStefan HerdlerVIDEO_GET_SIZE 1902b2fffe3fSStefan Herdler-------------- 1903b2fffe3fSStefan Herdler 1904b2fffe3fSStefan HerdlerSynopsis 1905b2fffe3fSStefan Herdler~~~~~~~~ 1906b2fffe3fSStefan Herdler 1907b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_SIZE 1908b2fffe3fSStefan Herdler 1909b2fffe3fSStefan Herdler.. code-block:: c 1910b2fffe3fSStefan Herdler 1911b2fffe3fSStefan Herdler int ioctl(int fd, int request = VIDEO_GET_SIZE, video_size_t *size) 1912b2fffe3fSStefan Herdler 1913b2fffe3fSStefan HerdlerArguments 1914b2fffe3fSStefan Herdler~~~~~~~~~ 1915b2fffe3fSStefan Herdler 1916b2fffe3fSStefan Herdler.. flat-table:: 1917b2fffe3fSStefan Herdler :header-rows: 0 1918b2fffe3fSStefan Herdler :stub-columns: 0 1919b2fffe3fSStefan Herdler 1920b2fffe3fSStefan Herdler - .. 1921b2fffe3fSStefan Herdler 1922b2fffe3fSStefan Herdler - ``int fd`` 1923b2fffe3fSStefan Herdler 1924b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call, 1925b2fffe3fSStefan Herdler to `open()`_. 1926b2fffe3fSStefan Herdler 1927b2fffe3fSStefan Herdler - .. 1928b2fffe3fSStefan Herdler 1929b2fffe3fSStefan Herdler - ``int request`` 1930b2fffe3fSStefan Herdler 1931b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_SIZE`` for this command. 1932b2fffe3fSStefan Herdler 1933b2fffe3fSStefan Herdler - .. 1934b2fffe3fSStefan Herdler 1935b2fffe3fSStefan Herdler - `video_size_t`_ ``*size`` 1936b2fffe3fSStefan Herdler 1937b2fffe3fSStefan Herdler - Returns the size and aspect ratio. 1938b2fffe3fSStefan Herdler 1939b2fffe3fSStefan HerdlerDescription 1940b2fffe3fSStefan Herdler~~~~~~~~~~~ 1941b2fffe3fSStefan Herdler 1942b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 1943b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 1944b2fffe3fSStefan Herdler 1945b2fffe3fSStefan HerdlerThis ioctl returns the size and aspect ratio. 1946b2fffe3fSStefan Herdler 1947b2fffe3fSStefan HerdlerReturn Value 1948b2fffe3fSStefan Herdler~~~~~~~~~~~~ 1949b2fffe3fSStefan Herdler 1950b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 1951b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 1952b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 1953b2fffe3fSStefan Herdler 1954b2fffe3fSStefan Herdler 1955b2fffe3fSStefan Herdler----- 1956b2fffe3fSStefan Herdler 1957b2fffe3fSStefan Herdler 1958b2fffe3fSStefan HerdlerVIDEO_GET_PTS 1959b2fffe3fSStefan Herdler------------- 1960b2fffe3fSStefan Herdler 1961b2fffe3fSStefan HerdlerSynopsis 1962b2fffe3fSStefan Herdler~~~~~~~~ 1963b2fffe3fSStefan Herdler 1964b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_PTS 1965b2fffe3fSStefan Herdler 1966b2fffe3fSStefan Herdler.. code-block:: c 1967b2fffe3fSStefan Herdler 1968b2fffe3fSStefan Herdler int ioctl(int fd, int request = VIDEO_GET_PTS, __u64 *pts) 1969b2fffe3fSStefan Herdler 1970b2fffe3fSStefan HerdlerArguments 1971b2fffe3fSStefan Herdler~~~~~~~~~ 1972b2fffe3fSStefan Herdler 1973b2fffe3fSStefan Herdler.. flat-table:: 1974b2fffe3fSStefan Herdler :header-rows: 0 1975b2fffe3fSStefan Herdler :stub-columns: 0 1976b2fffe3fSStefan Herdler 1977b2fffe3fSStefan Herdler - .. 1978b2fffe3fSStefan Herdler 1979b2fffe3fSStefan Herdler - ``int fd`` 1980b2fffe3fSStefan Herdler 1981b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 1982b2fffe3fSStefan Herdler to `open()`_. 1983b2fffe3fSStefan Herdler 1984b2fffe3fSStefan Herdler - .. 1985b2fffe3fSStefan Herdler 1986b2fffe3fSStefan Herdler - ``int request`` 1987b2fffe3fSStefan Herdler 1988b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_PTS`` for this command. 1989b2fffe3fSStefan Herdler 1990b2fffe3fSStefan Herdler - .. 1991b2fffe3fSStefan Herdler 1992b2fffe3fSStefan Herdler - ``__u64 *pts`` 1993b2fffe3fSStefan Herdler 1994b2fffe3fSStefan Herdler - Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / 1995b2fffe3fSStefan Herdler ISO/IEC 13818-1. 1996b2fffe3fSStefan Herdler 1997b2fffe3fSStefan Herdler The PTS should belong to the currently played frame if possible, 1998b2fffe3fSStefan Herdler but may also be a value close to it like the PTS of the last 1999b2fffe3fSStefan Herdler decoded frame or the last PTS extracted by the PES parser. 2000b2fffe3fSStefan Herdler 2001b2fffe3fSStefan HerdlerDescription 2002b2fffe3fSStefan Herdler~~~~~~~~~~~ 2003b2fffe3fSStefan Herdler 2004b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 2005b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 2006b2fffe3fSStefan Herdler 2007b2fffe3fSStefan HerdlerFor V4L2 decoders this ioctl has been replaced by the 2008b2fffe3fSStefan Herdler``V4L2_CID_MPEG_VIDEO_DEC_PTS`` control. 2009b2fffe3fSStefan Herdler 2010b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to return the current PTS 2011b2fffe3fSStefan Herdlertimestamp. 2012b2fffe3fSStefan Herdler 2013b2fffe3fSStefan HerdlerReturn Value 2014b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2015b2fffe3fSStefan Herdler 2016b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 2017b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 2018b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 2019b2fffe3fSStefan Herdler 2020b2fffe3fSStefan Herdler 2021b2fffe3fSStefan Herdler----- 2022b2fffe3fSStefan Herdler 2023b2fffe3fSStefan Herdler 2024b2fffe3fSStefan HerdlerVIDEO_GET_FRAME_COUNT 2025b2fffe3fSStefan Herdler--------------------- 2026b2fffe3fSStefan Herdler 2027b2fffe3fSStefan HerdlerSynopsis 2028b2fffe3fSStefan Herdler~~~~~~~~ 2029b2fffe3fSStefan Herdler 2030b2fffe3fSStefan Herdler.. c:macro:: VIDEO_GET_FRAME_COUNT 2031b2fffe3fSStefan Herdler 2032b2fffe3fSStefan Herdler.. code-block:: c 2033b2fffe3fSStefan Herdler 2034b2fffe3fSStefan Herdler int ioctl(int fd, VIDEO_GET_FRAME_COUNT, __u64 *pts) 2035b2fffe3fSStefan Herdler 2036b2fffe3fSStefan HerdlerArguments 2037b2fffe3fSStefan Herdler~~~~~~~~~ 2038b2fffe3fSStefan Herdler 2039b2fffe3fSStefan Herdler.. flat-table:: 2040b2fffe3fSStefan Herdler :header-rows: 0 2041b2fffe3fSStefan Herdler :stub-columns: 0 2042b2fffe3fSStefan Herdler 2043b2fffe3fSStefan Herdler - .. 2044b2fffe3fSStefan Herdler 2045b2fffe3fSStefan Herdler - ``int fd`` 2046b2fffe3fSStefan Herdler 2047b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 2048b2fffe3fSStefan Herdler to `open()`_. 2049b2fffe3fSStefan Herdler 2050b2fffe3fSStefan Herdler - .. 2051b2fffe3fSStefan Herdler 2052b2fffe3fSStefan Herdler - ``int request`` 2053b2fffe3fSStefan Herdler 2054b2fffe3fSStefan Herdler - Equals ``VIDEO_GET_FRAME_COUNT`` for this command. 2055b2fffe3fSStefan Herdler 2056b2fffe3fSStefan Herdler - .. 2057b2fffe3fSStefan Herdler 2058b2fffe3fSStefan Herdler - ``__u64 *pts`` 2059b2fffe3fSStefan Herdler 2060b2fffe3fSStefan Herdler - Returns the number of frames displayed since the decoder was 2061b2fffe3fSStefan Herdler started. 2062b2fffe3fSStefan Herdler 2063b2fffe3fSStefan HerdlerDescription 2064b2fffe3fSStefan Herdler~~~~~~~~~~~ 2065b2fffe3fSStefan Herdler 2066b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 2067b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 2068b2fffe3fSStefan Herdler 2069b2fffe3fSStefan HerdlerFor V4L2 decoders this ioctl has been replaced by the 2070b2fffe3fSStefan Herdler``V4L2_CID_MPEG_VIDEO_DEC_FRAME`` control. 2071b2fffe3fSStefan Herdler 2072b2fffe3fSStefan HerdlerThis ioctl call asks the Video Device to return the number of displayed 2073b2fffe3fSStefan Herdlerframes since the decoder was started. 2074b2fffe3fSStefan Herdler 2075b2fffe3fSStefan HerdlerReturn Value 2076b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2077b2fffe3fSStefan Herdler 2078b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 2079b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 2080b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 2081b2fffe3fSStefan Herdler 2082b2fffe3fSStefan Herdler 2083b2fffe3fSStefan Herdler----- 2084b2fffe3fSStefan Herdler 2085b2fffe3fSStefan Herdler 2086b2fffe3fSStefan HerdlerVIDEO_COMMAND 2087b2fffe3fSStefan Herdler------------- 2088b2fffe3fSStefan Herdler 2089b2fffe3fSStefan HerdlerSynopsis 2090b2fffe3fSStefan Herdler~~~~~~~~ 2091b2fffe3fSStefan Herdler 2092b2fffe3fSStefan Herdler.. c:macro:: VIDEO_COMMAND 2093b2fffe3fSStefan Herdler 2094b2fffe3fSStefan Herdler.. code-block:: c 2095b2fffe3fSStefan Herdler 2096b2fffe3fSStefan Herdler int ioctl(int fd, int request = VIDEO_COMMAND, 2097b2fffe3fSStefan Herdler struct video_command *cmd) 2098b2fffe3fSStefan Herdler 2099b2fffe3fSStefan HerdlerArguments 2100b2fffe3fSStefan Herdler~~~~~~~~~ 2101b2fffe3fSStefan Herdler 2102b2fffe3fSStefan Herdler.. flat-table:: 2103b2fffe3fSStefan Herdler :header-rows: 0 2104b2fffe3fSStefan Herdler :stub-columns: 0 2105b2fffe3fSStefan Herdler 2106b2fffe3fSStefan Herdler - .. 2107b2fffe3fSStefan Herdler 2108b2fffe3fSStefan Herdler - ``int fd`` 2109b2fffe3fSStefan Herdler 2110b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 2111b2fffe3fSStefan Herdler to `open()`_. 2112b2fffe3fSStefan Herdler 2113b2fffe3fSStefan Herdler - .. 2114b2fffe3fSStefan Herdler 2115b2fffe3fSStefan Herdler - ``int request`` 2116b2fffe3fSStefan Herdler 2117b2fffe3fSStefan Herdler - Equals ``VIDEO_COMMAND`` for this command. 2118b2fffe3fSStefan Herdler 2119b2fffe3fSStefan Herdler - .. 2120b2fffe3fSStefan Herdler 2121b2fffe3fSStefan Herdler - `struct video_command`_ ``*cmd`` 2122b2fffe3fSStefan Herdler 2123b2fffe3fSStefan Herdler - Commands the decoder. 2124b2fffe3fSStefan Herdler 2125b2fffe3fSStefan HerdlerDescription 2126b2fffe3fSStefan Herdler~~~~~~~~~~~ 2127b2fffe3fSStefan Herdler 2128b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 2129b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 2130b2fffe3fSStefan Herdler 2131b2fffe3fSStefan HerdlerFor V4L2 decoders this ioctl has been replaced by the 2132b2fffe3fSStefan Herdler:ref:`VIDIOC_DECODER_CMD` ioctl. 2133b2fffe3fSStefan Herdler 2134b2fffe3fSStefan HerdlerThis ioctl commands the decoder. The `struct video_command`_ is a 2135b2fffe3fSStefan Herdlersubset of the ``v4l2_decoder_cmd`` struct, so refer to the 2136b2fffe3fSStefan Herdler:ref:`VIDIOC_DECODER_CMD` documentation for 2137b2fffe3fSStefan Herdlermore information. 2138b2fffe3fSStefan Herdler 2139b2fffe3fSStefan HerdlerReturn Value 2140b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2141b2fffe3fSStefan Herdler 2142b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 2143b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 2144b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 2145b2fffe3fSStefan Herdler 2146b2fffe3fSStefan Herdler 2147b2fffe3fSStefan Herdler----- 2148b2fffe3fSStefan Herdler 2149b2fffe3fSStefan Herdler 2150b2fffe3fSStefan HerdlerVIDEO_TRY_COMMAND 2151b2fffe3fSStefan Herdler----------------- 2152b2fffe3fSStefan Herdler 2153b2fffe3fSStefan HerdlerSynopsis 2154b2fffe3fSStefan Herdler~~~~~~~~ 2155b2fffe3fSStefan Herdler 2156b2fffe3fSStefan Herdler.. c:macro:: VIDEO_TRY_COMMAND 2157b2fffe3fSStefan Herdler 2158b2fffe3fSStefan Herdler.. code-block:: c 2159b2fffe3fSStefan Herdler 2160b2fffe3fSStefan Herdler int ioctl(int fd, int request = VIDEO_TRY_COMMAND, 2161b2fffe3fSStefan Herdler struct video_command *cmd) 2162b2fffe3fSStefan Herdler 2163b2fffe3fSStefan HerdlerArguments 2164b2fffe3fSStefan Herdler~~~~~~~~~ 2165b2fffe3fSStefan Herdler 2166b2fffe3fSStefan Herdler.. flat-table:: 2167b2fffe3fSStefan Herdler :header-rows: 0 2168b2fffe3fSStefan Herdler :stub-columns: 0 2169b2fffe3fSStefan Herdler 2170b2fffe3fSStefan Herdler - .. 2171b2fffe3fSStefan Herdler 2172b2fffe3fSStefan Herdler - ``int fd`` 2173b2fffe3fSStefan Herdler 2174b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 2175b2fffe3fSStefan Herdler to `open()`_. 2176b2fffe3fSStefan Herdler 2177b2fffe3fSStefan Herdler - .. 2178b2fffe3fSStefan Herdler 2179b2fffe3fSStefan Herdler - ``int request`` 2180b2fffe3fSStefan Herdler 2181b2fffe3fSStefan Herdler - Equals ``VIDEO_TRY_COMMAND`` for this command. 2182b2fffe3fSStefan Herdler 2183b2fffe3fSStefan Herdler - .. 2184b2fffe3fSStefan Herdler 2185b2fffe3fSStefan Herdler - `struct video_command`_ ``*cmd`` 2186b2fffe3fSStefan Herdler 2187b2fffe3fSStefan Herdler - Try a decoder command. 2188b2fffe3fSStefan Herdler 2189b2fffe3fSStefan HerdlerDescription 2190b2fffe3fSStefan Herdler~~~~~~~~~~~ 2191b2fffe3fSStefan Herdler 2192b2fffe3fSStefan Herdler.. attention:: Do **not** use in new drivers! 2193b2fffe3fSStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 2194b2fffe3fSStefan Herdler 2195b2fffe3fSStefan HerdlerFor V4L2 decoders this ioctl has been replaced by the 2196b2fffe3fSStefan Herdler:ref:`VIDIOC_TRY_DECODER_CMD <VIDIOC_DECODER_CMD>` ioctl. 2197b2fffe3fSStefan Herdler 2198b2fffe3fSStefan HerdlerThis ioctl tries a decoder command. The `struct video_command`_ is a 2199b2fffe3fSStefan Herdlersubset of the ``v4l2_decoder_cmd`` struct, so refer to the 2200b2fffe3fSStefan Herdler:ref:`VIDIOC_TRY_DECODER_CMD <VIDIOC_DECODER_CMD>` documentation 2201b2fffe3fSStefan Herdlerfor more information. 2202b2fffe3fSStefan Herdler 2203b2fffe3fSStefan HerdlerReturn Value 2204b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2205b2fffe3fSStefan Herdler 2206b2fffe3fSStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 2207b2fffe3fSStefan Herdlerappropriately. The generic error codes are described at the 2208b2fffe3fSStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 2209b2fffe3fSStefan Herdler 2210b2fffe3fSStefan Herdler 2211b2fffe3fSStefan Herdler----- 2212b2fffe3fSStefan Herdler 2213b2fffe3fSStefan Herdler 2214b2fffe3fSStefan Herdleropen() 2215b2fffe3fSStefan Herdler------ 2216b2fffe3fSStefan Herdler 2217b2fffe3fSStefan HerdlerSynopsis 2218b2fffe3fSStefan Herdler~~~~~~~~ 2219b2fffe3fSStefan Herdler 2220b2fffe3fSStefan Herdler.. code-block:: c 2221b2fffe3fSStefan Herdler 2222b2fffe3fSStefan Herdler #include <fcntl.h> 2223b2fffe3fSStefan Herdler 2224b2fffe3fSStefan Herdler.. c:function:: int open(const char *deviceName, int flags) 2225b2fffe3fSStefan Herdler 2226b2fffe3fSStefan HerdlerArguments 2227b2fffe3fSStefan Herdler~~~~~~~~~ 2228b2fffe3fSStefan Herdler 2229b2fffe3fSStefan Herdler.. flat-table:: 2230b2fffe3fSStefan Herdler :header-rows: 0 2231b2fffe3fSStefan Herdler :stub-columns: 0 2232b2fffe3fSStefan Herdler 2233b2fffe3fSStefan Herdler - .. 2234b2fffe3fSStefan Herdler 2235b2fffe3fSStefan Herdler - ``const char *deviceName`` 2236b2fffe3fSStefan Herdler 2237b2fffe3fSStefan Herdler - Name of specific video device. 2238b2fffe3fSStefan Herdler 2239b2fffe3fSStefan Herdler - .. 2240b2fffe3fSStefan Herdler 2241b2fffe3fSStefan Herdler - :rspan:`3` ``int flags`` 2242b2fffe3fSStefan Herdler 2243b2fffe3fSStefan Herdler - :cspan:`1` A bit-wise OR of the following flags: 2244b2fffe3fSStefan Herdler 2245b2fffe3fSStefan Herdler - .. 2246b2fffe3fSStefan Herdler 2247b2fffe3fSStefan Herdler - ``O_RDONLY`` 2248b2fffe3fSStefan Herdler 2249b2fffe3fSStefan Herdler - read-only access 2250b2fffe3fSStefan Herdler 2251b2fffe3fSStefan Herdler - .. 2252b2fffe3fSStefan Herdler 2253b2fffe3fSStefan Herdler - ``O_RDWR`` 2254b2fffe3fSStefan Herdler 2255b2fffe3fSStefan Herdler - read/write access 2256b2fffe3fSStefan Herdler 2257b2fffe3fSStefan Herdler - .. 2258b2fffe3fSStefan Herdler 2259b2fffe3fSStefan Herdler - ``O_NONBLOCK`` 2260b2fffe3fSStefan Herdler - | Open in non-blocking mode 2261b2fffe3fSStefan Herdler | (blocking mode is the default) 2262b2fffe3fSStefan Herdler 2263b2fffe3fSStefan HerdlerDescription 2264b2fffe3fSStefan Herdler~~~~~~~~~~~ 2265b2fffe3fSStefan Herdler 2266b2fffe3fSStefan HerdlerThis system call opens a named video device (e.g. 2267b2fffe3fSStefan Herdler/dev/dvb/adapter?/video?) for subsequent use. 2268b2fffe3fSStefan Herdler 2269b2fffe3fSStefan HerdlerWhen an open() call has succeeded, the device will be ready for use. The 2270b2fffe3fSStefan Herdlersignificance of blocking or non-blocking mode is described in the 2271b2fffe3fSStefan Herdlerdocumentation for functions where there is a difference. It does not 2272b2fffe3fSStefan Herdleraffect the semantics of the open() call itself. A device opened in 2273b2fffe3fSStefan Herdlerblocking mode can later be put into non-blocking mode (and vice versa) 2274b2fffe3fSStefan Herdlerusing the F_SETFL command of the fcntl system call. This is a standard 2275b2fffe3fSStefan Herdlersystem call, documented in the Linux manual page for fcntl. Only one 2276b2fffe3fSStefan Herdleruser can open the Video Device in O_RDWR mode. All other attempts to 2277b2fffe3fSStefan Herdleropen the device in this mode will fail, and an error-code will be 2278b2fffe3fSStefan Herdlerreturned. If the Video Device is opened in O_RDONLY mode, the only 2279b2fffe3fSStefan Herdlerioctl call that can be used is `VIDEO_GET_STATUS`_. All other call will 2280b2fffe3fSStefan Herdlerreturn an error code. 2281b2fffe3fSStefan Herdler 2282b2fffe3fSStefan HerdlerReturn Value 2283b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2284b2fffe3fSStefan Herdler 2285b2fffe3fSStefan Herdler.. flat-table:: 2286b2fffe3fSStefan Herdler :header-rows: 0 2287b2fffe3fSStefan Herdler :stub-columns: 0 2288b2fffe3fSStefan Herdler 2289b2fffe3fSStefan Herdler - .. 2290b2fffe3fSStefan Herdler 2291b2fffe3fSStefan Herdler - ``ENODEV`` 2292b2fffe3fSStefan Herdler 2293b2fffe3fSStefan Herdler - :cspan:`1` Device driver not loaded/available. 2294b2fffe3fSStefan Herdler 2295b2fffe3fSStefan Herdler - .. 2296b2fffe3fSStefan Herdler 2297b2fffe3fSStefan Herdler - ``EINTERNAL`` 2298b2fffe3fSStefan Herdler 2299b2fffe3fSStefan Herdler - Internal error. 2300b2fffe3fSStefan Herdler 2301b2fffe3fSStefan Herdler - .. 2302b2fffe3fSStefan Herdler 2303b2fffe3fSStefan Herdler - ``EBUSY`` 2304b2fffe3fSStefan Herdler 2305b2fffe3fSStefan Herdler - Device or resource busy. 2306b2fffe3fSStefan Herdler 2307b2fffe3fSStefan Herdler - .. 2308b2fffe3fSStefan Herdler 2309b2fffe3fSStefan Herdler - ``EINVAL`` 2310b2fffe3fSStefan Herdler 2311b2fffe3fSStefan Herdler - Invalid argument. 2312b2fffe3fSStefan Herdler 2313b2fffe3fSStefan Herdler 2314b2fffe3fSStefan Herdler----- 2315b2fffe3fSStefan Herdler 2316b2fffe3fSStefan Herdler 2317b2fffe3fSStefan Herdlerclose() 2318b2fffe3fSStefan Herdler------- 2319b2fffe3fSStefan Herdler 2320b2fffe3fSStefan HerdlerSynopsis 2321b2fffe3fSStefan Herdler~~~~~~~~ 2322b2fffe3fSStefan Herdler 2323b2fffe3fSStefan Herdler.. c:function:: int close(int fd) 2324b2fffe3fSStefan Herdler 2325b2fffe3fSStefan HerdlerArguments 2326b2fffe3fSStefan Herdler~~~~~~~~~ 2327b2fffe3fSStefan Herdler 2328b2fffe3fSStefan Herdler.. flat-table:: 2329b2fffe3fSStefan Herdler :header-rows: 0 2330b2fffe3fSStefan Herdler :stub-columns: 0 2331b2fffe3fSStefan Herdler 2332b2fffe3fSStefan Herdler - .. 2333b2fffe3fSStefan Herdler 2334b2fffe3fSStefan Herdler - ``int fd`` 2335b2fffe3fSStefan Herdler 2336b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 2337b2fffe3fSStefan Herdler to `open()`_. 2338b2fffe3fSStefan Herdler 2339b2fffe3fSStefan HerdlerDescription 2340b2fffe3fSStefan Herdler~~~~~~~~~~~ 2341b2fffe3fSStefan Herdler 2342b2fffe3fSStefan HerdlerThis system call closes a previously opened video device. 2343b2fffe3fSStefan Herdler 2344b2fffe3fSStefan HerdlerReturn Value 2345b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2346b2fffe3fSStefan Herdler 2347b2fffe3fSStefan Herdler.. flat-table:: 2348b2fffe3fSStefan Herdler :header-rows: 0 2349b2fffe3fSStefan Herdler :stub-columns: 0 2350b2fffe3fSStefan Herdler 2351b2fffe3fSStefan Herdler - .. 2352b2fffe3fSStefan Herdler 2353b2fffe3fSStefan Herdler - ``EBADF`` 2354b2fffe3fSStefan Herdler 2355b2fffe3fSStefan Herdler - fd is not a valid open file descriptor. 2356b2fffe3fSStefan Herdler 2357b2fffe3fSStefan Herdler 2358b2fffe3fSStefan Herdler----- 2359b2fffe3fSStefan Herdler 2360b2fffe3fSStefan Herdler 2361b2fffe3fSStefan Herdlerwrite() 2362b2fffe3fSStefan Herdler------- 2363b2fffe3fSStefan Herdler 2364b2fffe3fSStefan HerdlerSynopsis 2365b2fffe3fSStefan Herdler~~~~~~~~ 2366b2fffe3fSStefan Herdler 2367b2fffe3fSStefan Herdler.. c:function:: size_t write(int fd, const void *buf, size_t count) 2368b2fffe3fSStefan Herdler 2369b2fffe3fSStefan HerdlerArguments 2370b2fffe3fSStefan Herdler~~~~~~~~~ 2371b2fffe3fSStefan Herdler 2372b2fffe3fSStefan Herdler.. flat-table:: 2373b2fffe3fSStefan Herdler :header-rows: 0 2374b2fffe3fSStefan Herdler :stub-columns: 0 2375b2fffe3fSStefan Herdler 2376b2fffe3fSStefan Herdler - .. 2377b2fffe3fSStefan Herdler 2378b2fffe3fSStefan Herdler - ``int fd`` 2379b2fffe3fSStefan Herdler 2380b2fffe3fSStefan Herdler - :cspan:`1` File descriptor returned by a previous call 2381b2fffe3fSStefan Herdler to `open()`_. 2382b2fffe3fSStefan Herdler 2383b2fffe3fSStefan Herdler - .. 2384b2fffe3fSStefan Herdler 2385b2fffe3fSStefan Herdler - ``void *buf`` 2386b2fffe3fSStefan Herdler 2387b2fffe3fSStefan Herdler - Pointer to the buffer containing the PES data. 2388b2fffe3fSStefan Herdler 2389b2fffe3fSStefan Herdler - .. 2390b2fffe3fSStefan Herdler 2391b2fffe3fSStefan Herdler - ``size_t count`` 2392b2fffe3fSStefan Herdler 2393b2fffe3fSStefan Herdler - Size of buf. 2394b2fffe3fSStefan Herdler 2395b2fffe3fSStefan HerdlerDescription 2396b2fffe3fSStefan Herdler~~~~~~~~~~~ 2397b2fffe3fSStefan Herdler 2398b2fffe3fSStefan HerdlerThis system call can only be used if VIDEO_SOURCE_MEMORY is selected 2399b2fffe3fSStefan Herdlerin the ioctl call `VIDEO_SELECT_SOURCE`_. The data provided shall be in 2400b2fffe3fSStefan HerdlerPES format, unless the capability allows other formats. TS is the 2401b2fffe3fSStefan Herdlermost common format for storing DVB-data, it is usually supported too. 2402b2fffe3fSStefan HerdlerIf O_NONBLOCK is not specified the function will block until buffer space 2403b2fffe3fSStefan Herdleris available. The amount of data to be transferred is implied by count. 2404b2fffe3fSStefan Herdler 2405b2fffe3fSStefan Herdler.. note:: See: :ref:`DVB Data Formats <legacy_dvb_decoder_formats>` 2406b2fffe3fSStefan Herdler 2407b2fffe3fSStefan HerdlerReturn Value 2408b2fffe3fSStefan Herdler~~~~~~~~~~~~ 2409b2fffe3fSStefan Herdler 2410b2fffe3fSStefan Herdler.. flat-table:: 2411b2fffe3fSStefan Herdler :header-rows: 0 2412b2fffe3fSStefan Herdler :stub-columns: 0 2413b2fffe3fSStefan Herdler 2414b2fffe3fSStefan Herdler - .. 2415b2fffe3fSStefan Herdler 2416b2fffe3fSStefan Herdler - ``EPERM`` 2417b2fffe3fSStefan Herdler 2418b2fffe3fSStefan Herdler - :cspan:`1` Mode ``VIDEO_SOURCE_MEMORY`` not selected. 2419b2fffe3fSStefan Herdler 2420b2fffe3fSStefan Herdler - .. 2421b2fffe3fSStefan Herdler 2422b2fffe3fSStefan Herdler - ``ENOMEM`` 2423b2fffe3fSStefan Herdler 2424b2fffe3fSStefan Herdler - Attempted to write more data than the internal buffer can hold. 2425b2fffe3fSStefan Herdler 2426b2fffe3fSStefan Herdler - .. 2427b2fffe3fSStefan Herdler 2428b2fffe3fSStefan Herdler - ``EBADF`` 2429b2fffe3fSStefan Herdler 2430b2fffe3fSStefan Herdler - fd is not a valid open file descriptor. 2431