aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dvb/video.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/dvb/video.h')
-rw-r--r--include/linux/dvb/video.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index faebfda397ff..93e4c3a6d190 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -80,14 +80,70 @@ typedef enum {
80} video_play_state_t; 80} video_play_state_t;
81 81
82 82
83/* Decoder commands */
84#define VIDEO_CMD_PLAY (0)
85#define VIDEO_CMD_STOP (1)
86#define VIDEO_CMD_FREEZE (2)
87#define VIDEO_CMD_CONTINUE (3)
88
89/* Flags for VIDEO_CMD_FREEZE */
90#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
91
92/* Flags for VIDEO_CMD_STOP */
93#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
94#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
95
96/* Play input formats: */
97/* The decoder has no special format requirements */
98#define VIDEO_PLAY_FMT_NONE (0)
99/* The decoder requires full GOPs */
100#define VIDEO_PLAY_FMT_GOP (1)
101
102/* The structure must be zeroed before use by the application
103 This ensures it can be extended safely in the future. */
104struct video_command {
105 __u32 cmd;
106 __u32 flags;
107 union {
108 struct {
109 __u64 pts;
110 } stop;
111
112 struct {
113 /* 0 or 1000 specifies normal speed,
114 1 specifies forward single stepping,
115 -1 specifies backward single stepping,
116 >1: playback at speed/1000 of the normal speed,
117 <-1: reverse playback at (-speed/1000) of the normal speed. */
118 __s32 speed;
119 __u32 format;
120 } play;
121
122 struct {
123 __u32 data[16];
124 } raw;
125 };
126};
127
128/* FIELD_UNKNOWN can be used if the hardware does not know whether
129 the Vsync is for an odd, even or progressive (i.e. non-interlaced)
130 field. */
131#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
132#define VIDEO_VSYNC_FIELD_ODD (1)
133#define VIDEO_VSYNC_FIELD_EVEN (2)
134#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
135
83struct video_event { 136struct video_event {
84 int32_t type; 137 int32_t type;
85#define VIDEO_EVENT_SIZE_CHANGED 1 138#define VIDEO_EVENT_SIZE_CHANGED 1
86#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 139#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
140#define VIDEO_EVENT_DECODER_STOPPED 3
141#define VIDEO_EVENT_VSYNC 4
87 time_t timestamp; 142 time_t timestamp;
88 union { 143 union {
89 video_size_t size; 144 video_size_t size;
90 unsigned int frame_rate; /* in frames per 1000sec */ 145 unsigned int frame_rate; /* in frames per 1000sec */
146 unsigned char vsync_field; /* unknown/odd/even/progressive */
91 } u; 147 } u;
92}; 148};
93 149
@@ -213,4 +269,10 @@ typedef uint16_t video_attributes_t;
213 */ 269 */
214#define VIDEO_GET_PTS _IOR('o', 57, __u64) 270#define VIDEO_GET_PTS _IOR('o', 57, __u64)
215 271
272/* Read the number of displayed frames since the decoder was started */
273#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
274
275#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
276#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
277
216#endif /*_DVBVIDEO_H_*/ 278#endif /*_DVBVIDEO_H_*/