]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - config/include/obsolete_videodev.h
linux-headers: use kernel 3.2.x headers.
[people/pmueller/ipfire-2.x.git] / config / include / obsolete_videodev.h
diff --git a/config/include/obsolete_videodev.h b/config/include/obsolete_videodev.h
new file mode 100644 (file)
index 0000000..c51a5f9
--- /dev/null
@@ -0,0 +1,320 @@
+/*
+ *     Video for Linux version 1 - OBSOLETE
+ *
+ *     Header file for v4l1 drivers and applications, for
+ *     Linux kernels 2.2.x or 2.4.x.
+ *
+ *     Provides header for legacy drivers and applications
+ *
+ *     See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/videodev2.h>
+
+
+#define VID_TYPE_CAPTURE       1       /* Can capture */
+#define VID_TYPE_TUNER         2       /* Can tune */
+#define VID_TYPE_TELETEXT      4       /* Does teletext */
+#define VID_TYPE_OVERLAY       8       /* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY     16      /* Overlay by chromakey */
+#define VID_TYPE_CLIPPING      32      /* Can clip */
+#define VID_TYPE_FRAMERAM      64      /* Uses the frame buffer memory */
+#define VID_TYPE_SCALES                128     /* Scalable */
+#define VID_TYPE_MONOCHROME    256     /* Monochrome only */
+#define VID_TYPE_SUBCAPTURE    512     /* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER  1024    /* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER  2048    /* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER 4096    /* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER 8192    /* Can encode MJPEG streams */
+
+struct video_capability
+{
+       char name[32];
+       int type;
+       int channels;   /* Num channels */
+       int audios;     /* Num audio devices */
+       int maxwidth;   /* Supported width */
+       int maxheight;  /* And height */
+       int minwidth;   /* Supported width */
+       int minheight;  /* And height */
+};
+
+
+struct video_channel
+{
+       int channel;
+       char name[32];
+       int tuners;
+       __u32  flags;
+#define VIDEO_VC_TUNER         1       /* Channel has a tuner */
+#define VIDEO_VC_AUDIO         2       /* Channel has audio */
+       __u16  type;
+#define VIDEO_TYPE_TV          1
+#define VIDEO_TYPE_CAMERA      2
+       __u16 norm;                     /* Norm set by channel */
+};
+
+struct video_tuner
+{
+       int tuner;
+       char name[32];
+       unsigned long rangelow, rangehigh;      /* Tuner range */
+       __u32 flags;
+#define VIDEO_TUNER_PAL                1
+#define VIDEO_TUNER_NTSC       2
+#define VIDEO_TUNER_SECAM      4
+#define VIDEO_TUNER_LOW                8       /* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM       16      /* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON  128     /* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
+       __u16 mode;                     /* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL         0
+#define VIDEO_MODE_NTSC                1
+#define VIDEO_MODE_SECAM       2
+#define VIDEO_MODE_AUTO                3
+       __u16 signal;                   /* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+       __u16   brightness;
+       __u16   hue;
+       __u16   colour;
+       __u16   contrast;
+       __u16   whiteness;      /* Black and white only */
+       __u16   depth;          /* Capture depth */
+       __u16   palette;        /* Palette in use */
+#define VIDEO_PALETTE_GREY     1       /* Linear greyscale */
+#define VIDEO_PALETTE_HI240    2       /* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565   3       /* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24    4       /* 24bit RGB */
+#define VIDEO_PALETTE_RGB32    5       /* 32bit RGB */
+#define VIDEO_PALETTE_RGB555   6       /* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422   7       /* YUV422 capture */
+#define VIDEO_PALETTE_YUYV     8
+#define VIDEO_PALETTE_UYVY     9       /* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420   10
+#define VIDEO_PALETTE_YUV411   11      /* YUV411 capture */
+#define VIDEO_PALETTE_RAW      12      /* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P  13      /* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P  14      /* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P  15      /* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P  16      /* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR   13      /* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7      /* start of component entries */
+};
+
+struct video_audio
+{
+       int     audio;          /* Audio channel */
+       __u16   volume;         /* If settable */
+       __u16   bass, treble;
+       __u32   flags;
+#define VIDEO_AUDIO_MUTE       1
+#define VIDEO_AUDIO_MUTABLE    2
+#define VIDEO_AUDIO_VOLUME     4
+#define VIDEO_AUDIO_BASS       8
+#define VIDEO_AUDIO_TREBLE     16
+#define VIDEO_AUDIO_BALANCE    32
+       char    name[16];
+#define VIDEO_SOUND_MONO       1
+#define VIDEO_SOUND_STEREO     2
+#define VIDEO_SOUND_LANG1      4
+#define VIDEO_SOUND_LANG2      8
+       __u16   mode;
+       __u16   balance;        /* Stereo balance */
+       __u16   step;           /* Step actual volume uses */
+};
+
+struct video_clip
+{
+       __s32   x,y;
+       __s32   width, height;
+       struct  video_clip *next;       /* For user use/driver use only */
+};
+
+struct video_window
+{
+       __u32   x,y;                    /* Position of window */
+       __u32   width,height;           /* Its size */
+       __u32   chromakey;
+       __u32   flags;
+       struct  video_clip *clips;      /* Set only */
+       int     clipcount;
+#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)
+};
+
+struct video_capture
+{
+       __u32   x,y;                    /* Offsets into image */
+       __u32   width, height;          /* Area to capture */
+       __u16   decimation;             /* Decimation divider */
+       __u16   flags;                  /* Flags for capture */
+#define VIDEO_CAPTURE_ODD              0       /* Temporal */
+#define VIDEO_CAPTURE_EVEN             1
+};
+
+struct video_buffer
+{
+       void    *base;
+       int     height,width;
+       int     depth;
+       int     bytesperline;
+};
+
+struct video_mmap
+{
+       unsigned        int frame;              /* Frame (0 - n) for double buffer */
+       int             height,width;
+       unsigned        int format;             /* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+       __u8    key[8];
+       __u32   flags;
+};
+
+struct video_mbuf
+{
+       int     size;           /* Total memory to map */
+       int     frames;         /* Frames */
+       int     offsets[VIDEO_MAX_FRAME];
+};
+
+#define        VIDEO_NO_UNIT   (-1)
+
+struct video_unit
+{
+       int     video;          /* Video minor */
+       int     vbi;            /* VBI minor */
+       int     radio;          /* Radio minor */
+       int     audio;          /* Audio minor */
+       int     teletext;       /* Teletext minor */
+};
+
+struct vbi_format {
+       __u32   sampling_rate;  /* in Hz */
+       __u32   samples_per_line;
+       __u32   sample_format;  /* VIDEO_PALETTE_RAW only (1 byte) */
+       __s32   start[2];       /* starting line for each frame */
+       __u32   count[2];       /* count of lines for each frame */
+       __u32   flags;
+#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 */
+struct video_info
+{
+       __u32   frame_count;    /* frames output since decode/encode began */
+       __u32   h_size;         /* current unscaled horizontal size */
+       __u32   v_size;         /* current unscaled veritcal size */
+       __u32   smpte_timecode; /* current SMPTE timecode (for current GOP) */
+       __u32   picture_type;   /* current picture type */
+       __u32   temporal_reference;     /* current temporal reference */
+       __u8    user_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 */
+struct video_play_mode
+{
+       int     mode;
+       int     p1;
+       int     p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+       char    loadwhat[16];   /* name or tag of file being passed */
+       int     datasize;
+       __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 */
+#define VIDIOCSAUDIO           _IOW('v',17, struct video_audio)        /* Audio source, mute etc */
+#define VIDIOCSYNC             _IOW('v',18, int)                       /* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE         _IOW('v',19, struct video_mmap)         /* Grab frames */
+#define VIDIOCGMBUF            _IOR('v',20, struct video_mbuf)         /* Memory map buffer info */
+#define VIDIOCGUNIT            _IOR('v',21, struct video_unit)         /* Get attached units */
+#define VIDIOCGCAPTURE         _IOR('v',22, struct video_capture)      /* Get subcapture */
+#define VIDIOCSCAPTURE         _IOW('v',23, struct video_capture)      /* Set subcapture */
+#define VIDIOCSPLAYMODE                _IOW('v',24, struct video_play_mode)    /* Set output video mode/feature */
+#define VIDIOCSWRITEMODE       _IOW('v',25, int)                       /* Set write mode */
+#define VIDIOCGPLAYINFO                _IOR('v',26, struct video_info)         /* Get current playback info from hardware */
+#define VIDIOCSMICROCODE       _IOW('v',27, struct video_code)         /* Load microcode into hardware */
+#define        VIDIOCGVBIFMT           _IOR('v',28, struct vbi_format)         /* Get VBI information */
+#define        VIDIOCSVBIFMT           _IOW('v',29, struct vbi_format)         /* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE     192             /* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD             0
+#define VID_WRITE_MPEG_VID             1
+#define VID_WRITE_OSD                  2
+#define VID_WRITE_TTX                  3
+#define VID_WRITE_CC                   4
+#define VID_WRITE_MJPEG                        5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE          0
+       /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK               1
+       /* p1: 0 = OFF, 1 = ON */
+       /* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL                        2
+#define VID_PLAY_PAUSE                 3
+#define VID_PLAY_SINGLE_FRAME          4
+#define VID_PLAY_FAST_FORWARD          5
+#define VID_PLAY_SLOW_MOTION           6
+#define VID_PLAY_IMMEDIATE_NORMAL      7
+#define VID_PLAY_SWITCH_CHANNELS       8
+#define VID_PLAY_FREEZE_FRAME          9
+#define VID_PLAY_STILL_MODE            10
+#define VID_PLAY_MASTER_MODE           11
+       /* p1: see below */
+#define                VID_PLAY_MASTER_NONE    1
+#define                VID_PLAY_MASTER_VIDEO   2
+#define                VID_PLAY_MASTER_AUDIO   3
+#define VID_PLAY_ACTIVE_SCANLINES      12
+       /* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET                 13
+#define VID_PLAY_END_MARK              14
+
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */