structvideo_clip*next;/* For user use/driver use only */
};
structvideo_window
{
__u32x,y;/* Position of window */
__u32width,height;/* Its size */
__u32chromakey;
__u32flags;
structvideo_clip__user*clips;/* Set only */
intclipcount;
#define VIDEO_WINDOW_INTERLACE 1
#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */
#define VIDEO_CLIP_BITMAP -1
/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
#define VIDEO_CLIPMAP_SIZE (128 * 625)
};
structvideo_capture
{
__u32x,y;/* Offsets into image */
__u32width,height;/* Area to capture */
__u16decimation;/* Decimation divider */
__u16flags;/* Flags for capture */
#define VIDEO_CAPTURE_ODD 0 /* Temporal */
#define VIDEO_CAPTURE_EVEN 1
};
structvideo_buffer
{
void*base;
intheight,width;
intdepth;
intbytesperline;
};
structvideo_mmap
{
unsignedintframe;/* Frame (0 - n) for double buffer */
intheight,width;
unsignedintformat;/* should be VIDEO_PALETTE_* */
};
structvideo_key
{
__u8key[8];
__u32flags;
};
#define VIDEO_MAX_FRAME 32
structvideo_mbuf
{
intsize;/* Total memory to map */
intframes;/* Frames */
intoffsets[VIDEO_MAX_FRAME];
};
#define VIDEO_NO_UNIT (-1)
structvideo_unit
{
intvideo;/* Video minor */
intvbi;/* VBI minor */
intradio;/* Radio minor */
intaudio;/* Audio minor */
intteletext;/* Teletext minor */
};
structvbi_format{
__u32sampling_rate;/* in Hz */
__u32samples_per_line;
__u32sample_format;/* VIDEO_PALETTE_RAW only (1 byte) */
__s32start[2];/* starting line for each frame */
__u32count[2];/* count of lines for each frame */
__u32flags;
#define VBI_UNSYNC 1 /* can distingues between top/bottom field */
#define VBI_INTERLACED 2 /* lines are interlaced */
};
/* video_info is biased towards hardware mpeg encode/decode */
/* but it could apply generically to any hardware compressor/decompressor */
structvideo_info
{
__u32frame_count;/* frames output since decode/encode began */
__u32h_size;/* current unscaled horizontal size */
__u32v_size;/* current unscaled veritcal size */
__u32smpte_timecode;/* current SMPTE timecode (for current GOP) */
__u32picture_type;/* current picture type */
__u32temporal_reference;/* current temporal reference */
__u8user_data[256];/* user data last found in compressed stream */
/* user_data[0] contains user data flags, user_data[1] has count */
};
/* generic structure for setting playback modes */
structvideo_play_mode
{
intmode;
intp1;
intp2;
};
/* for loading microcode / fpga programming */
structvideo_code
{
charloadwhat[16];/* name or tag of file being passed */
intdatasize;
__u8*data;
};
#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */
#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */
#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */
#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */
#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */
#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */
#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */
#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */
#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Get the video overlay window */
#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */
#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */
#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */
#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */
#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */