xref: /linux/Documentation/userspace-api/media/dvb/legacy_dvb_video.rst (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
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