0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef _UAPI_DVBVIDEO_H_
0028 #define _UAPI_DVBVIDEO_H_
0029
0030 #include <linux/types.h>
0031 #ifndef __KERNEL__
0032 #include <time.h>
0033 #endif
0034
0035 typedef enum {
0036 VIDEO_FORMAT_4_3,
0037 VIDEO_FORMAT_16_9,
0038 VIDEO_FORMAT_221_1
0039 } video_format_t;
0040
0041
0042 typedef enum {
0043 VIDEO_PAN_SCAN,
0044 VIDEO_LETTER_BOX,
0045 VIDEO_CENTER_CUT_OUT
0046 } video_displayformat_t;
0047
0048 typedef struct {
0049 int w;
0050 int h;
0051 video_format_t aspect_ratio;
0052 } video_size_t;
0053
0054 typedef enum {
0055 VIDEO_SOURCE_DEMUX,
0056 VIDEO_SOURCE_MEMORY
0057
0058
0059 } video_stream_source_t;
0060
0061
0062 typedef enum {
0063 VIDEO_STOPPED,
0064 VIDEO_PLAYING,
0065 VIDEO_FREEZED
0066 } video_play_state_t;
0067
0068
0069
0070 #define VIDEO_CMD_PLAY (0)
0071 #define VIDEO_CMD_STOP (1)
0072 #define VIDEO_CMD_FREEZE (2)
0073 #define VIDEO_CMD_CONTINUE (3)
0074
0075
0076 #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
0077
0078
0079 #define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
0080 #define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
0081
0082
0083
0084 #define VIDEO_PLAY_FMT_NONE (0)
0085
0086 #define VIDEO_PLAY_FMT_GOP (1)
0087
0088
0089
0090 struct video_command {
0091 __u32 cmd;
0092 __u32 flags;
0093 union {
0094 struct {
0095 __u64 pts;
0096 } stop;
0097
0098 struct {
0099
0100
0101
0102
0103
0104 __s32 speed;
0105 __u32 format;
0106 } play;
0107
0108 struct {
0109 __u32 data[16];
0110 } raw;
0111 };
0112 };
0113
0114
0115
0116
0117 #define VIDEO_VSYNC_FIELD_UNKNOWN (0)
0118 #define VIDEO_VSYNC_FIELD_ODD (1)
0119 #define VIDEO_VSYNC_FIELD_EVEN (2)
0120 #define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
0121
0122 struct video_event {
0123 __s32 type;
0124 #define VIDEO_EVENT_SIZE_CHANGED 1
0125 #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
0126 #define VIDEO_EVENT_DECODER_STOPPED 3
0127 #define VIDEO_EVENT_VSYNC 4
0128
0129 long timestamp;
0130 union {
0131 video_size_t size;
0132 unsigned int frame_rate;
0133 unsigned char vsync_field;
0134 } u;
0135 };
0136
0137
0138 struct video_status {
0139 int video_blank;
0140 video_play_state_t play_state;
0141 video_stream_source_t stream_source;
0142 video_format_t video_format;
0143 video_displayformat_t display_format;
0144 };
0145
0146
0147 struct video_still_picture {
0148 char __user *iFrame;
0149 __s32 size;
0150 };
0151
0152
0153 typedef __u16 video_attributes_t;
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169 #define VIDEO_CAP_MPEG1 1
0170 #define VIDEO_CAP_MPEG2 2
0171
0172
0173
0174 #define VIDEO_CAP_SYS 4
0175 #define VIDEO_CAP_PROG 8
0176
0177
0178 #define VIDEO_CAP_SPU 16
0179 #define VIDEO_CAP_NAVI 32
0180 #define VIDEO_CAP_CSS 64
0181
0182
0183 #define VIDEO_STOP _IO('o', 21)
0184 #define VIDEO_PLAY _IO('o', 22)
0185 #define VIDEO_FREEZE _IO('o', 23)
0186 #define VIDEO_CONTINUE _IO('o', 24)
0187 #define VIDEO_SELECT_SOURCE _IO('o', 25)
0188 #define VIDEO_SET_BLANK _IO('o', 26)
0189 #define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
0190 #define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
0191 #define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
0192 #define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
0193 #define VIDEO_FAST_FORWARD _IO('o', 31)
0194 #define VIDEO_SLOWMOTION _IO('o', 32)
0195 #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
0196 #define VIDEO_CLEAR_BUFFER _IO('o', 34)
0197 #define VIDEO_SET_STREAMTYPE _IO('o', 36)
0198 #define VIDEO_SET_FORMAT _IO('o', 37)
0199 #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
0200
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212 #define VIDEO_GET_PTS _IOR('o', 57, __u64)
0213
0214
0215 #define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
0216
0217 #define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
0218 #define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
0219
0220 #endif