aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dvb/video.h
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-04-27 11:31:09 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 14:43:28 -0400
commit2435be11ae1afb64ac7dfb25e10b6e3037ab0522 (patch)
tree14bd2585f0e2b909d4ae47556e972d876b2edabb /include/linux/dvb/video.h
parent3434eb7e14d9587ee56f3462bcfa5726b62dadb9 (diff)
V4L/DVB (5307): Add support for the cx23415 MPEG decoding features.
The cx23415 adds some extra features that this DVB decoding API did not support. This API has been expanded to support the required features. Both source and binary backwards compatibility is kept intact by these changes. So existing applications are not affected. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de> Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'include/linux/dvb/video.h')
-rw-r--r--include/linux/dvb/video.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index faebfda397ff..a96da40c50f5 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -80,10 +80,53 @@ 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 __u32 speed;
114 __u32 format;
115 } play;
116
117 struct {
118 __u32 data[16];
119 } raw;
120 };
121};
122
123
83struct video_event { 124struct video_event {
84 int32_t type; 125 int32_t type;
85#define VIDEO_EVENT_SIZE_CHANGED 1 126#define VIDEO_EVENT_SIZE_CHANGED 1
86#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 127#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
128#define VIDEO_EVENT_DECODER_STOPPED 3
129#define VIDEO_EVENT_VSYNC 4
87 time_t timestamp; 130 time_t timestamp;
88 union { 131 union {
89 video_size_t size; 132 video_size_t size;
@@ -213,4 +256,10 @@ typedef uint16_t video_attributes_t;
213 */ 256 */
214#define VIDEO_GET_PTS _IOR('o', 57, __u64) 257#define VIDEO_GET_PTS _IOR('o', 57, __u64)
215 258
259/* Read the number of displayed frames since the decoder was started */
260#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
261
262#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
263#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
264
216#endif /*_DVBVIDEO_H_*/ 265#endif /*_DVBVIDEO_H_*/