1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _UAPI_DVBVIDEO_H_ 7 #define _UAPI_DVBVIDEO_H_ 8 #include <linux/types.h> 9 #ifndef __KERNEL__ 10 #include <time.h> 11 #endif 12 typedef enum { 13 VIDEO_FORMAT_4_3, 14 VIDEO_FORMAT_16_9, 15 VIDEO_FORMAT_221_1 16 } video_format_t; 17 typedef enum { 18 VIDEO_PAN_SCAN, 19 VIDEO_LETTER_BOX, 20 VIDEO_CENTER_CUT_OUT 21 } video_displayformat_t; 22 typedef struct { 23 int w; 24 int h; 25 video_format_t aspect_ratio; 26 } video_size_t; 27 typedef enum { 28 VIDEO_SOURCE_DEMUX, 29 VIDEO_SOURCE_MEMORY 30 } video_stream_source_t; 31 typedef enum { 32 VIDEO_STOPPED, 33 VIDEO_PLAYING, 34 VIDEO_FREEZED 35 } video_play_state_t; 36 #define VIDEO_CMD_PLAY (0) 37 #define VIDEO_CMD_STOP (1) 38 #define VIDEO_CMD_FREEZE (2) 39 #define VIDEO_CMD_CONTINUE (3) 40 #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) 41 #define VIDEO_CMD_STOP_TO_BLACK (1 << 0) 42 #define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) 43 #define VIDEO_PLAY_FMT_NONE (0) 44 #define VIDEO_PLAY_FMT_GOP (1) 45 struct video_command { 46 __u32 cmd; 47 __u32 flags; 48 union { 49 struct { 50 __u64 pts; 51 } stop; 52 struct { 53 54 __s32 speed; 55 __u32 format; 56 } play; 57 struct { 58 __u32 data[16]; 59 } raw; 60 }; 61 }; 62 #define VIDEO_VSYNC_FIELD_UNKNOWN (0) 63 #define VIDEO_VSYNC_FIELD_ODD (1) 64 #define VIDEO_VSYNC_FIELD_EVEN (2) 65 #define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) 66 struct video_event { 67 __s32 type; 68 #define VIDEO_EVENT_SIZE_CHANGED 1 69 #define VIDEO_EVENT_FRAME_RATE_CHANGED 2 70 #define VIDEO_EVENT_DECODER_STOPPED 3 71 #define VIDEO_EVENT_VSYNC 4 72 73 long timestamp; 74 union { 75 video_size_t size; 76 unsigned int frame_rate; 77 unsigned char vsync_field; 78 } u; 79 }; 80 struct video_status { 81 int video_blank; 82 video_play_state_t play_state; 83 video_stream_source_t stream_source; 84 video_format_t video_format; 85 video_displayformat_t display_format; 86 }; 87 struct video_still_picture { 88 char __user *iFrame; 89 __s32 size; 90 }; 91 typedef __u16 video_attributes_t; 92 #define VIDEO_CAP_MPEG1 1 93 #define VIDEO_CAP_MPEG2 2 94 #define VIDEO_CAP_SYS 4 95 #define VIDEO_CAP_PROG 8 96 #define VIDEO_CAP_SPU 16 97 #define VIDEO_CAP_NAVI 32 98 #define VIDEO_CAP_CSS 64 99 #define VIDEO_STOP _IO('o', 21) 100 #define VIDEO_PLAY _IO('o', 22) 101 #define VIDEO_FREEZE _IO('o', 23) 102 #define VIDEO_CONTINUE _IO('o', 24) 103 #define VIDEO_SELECT_SOURCE _IO('o', 25) 104 #define VIDEO_SET_BLANK _IO('o', 26) 105 #define VIDEO_GET_STATUS _IOR('o', 27, struct video_status) 106 #define VIDEO_GET_EVENT _IOR('o', 28, struct video_event) 107 #define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29) 108 #define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture) 109 #define VIDEO_FAST_FORWARD _IO('o', 31) 110 #define VIDEO_SLOWMOTION _IO('o', 32) 111 #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) 112 #define VIDEO_CLEAR_BUFFER _IO('o', 34) 113 #define VIDEO_SET_STREAMTYPE _IO('o', 36) 114 #define VIDEO_SET_FORMAT _IO('o', 37) 115 #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) 116 #define VIDEO_GET_PTS _IOR('o', 57, __u64) 117 #define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) 118 #define VIDEO_COMMAND _IOWR('o', 59, struct video_command) 119 #define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) 120 #endif 121