Hi, no matter what that workshop discussed: *** It is not acceptable to change the DVB kernel <-> user-space API! *** Introduce whatever you want for V4L but do not touch the DVB drivers! The av7110 driver is working for years and still in use. I hereby NACK any attempt to remove dvb/*.h. Nacked-by: Oliver Endriss <o.endriss@xxxxxx> CU Oliver On Thursday 24 November 2011 14:39:09 Hans Verkuil wrote: > From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > --- > fs/compat_ioctl.c | 41 +------- > include/linux/dvb/Kbuild | 3 - > include/linux/dvb/audio.h | 135 ---------------------- > include/linux/dvb/osd.h | 144 ----------------------- > include/linux/dvb/video.h | 276 --------------------------------------------- > 5 files changed, 1 insertions(+), 598 deletions(-) > delete mode 100644 include/linux/dvb/audio.h > delete mode 100644 include/linux/dvb/osd.h > delete mode 100644 include/linux/dvb/video.h > > diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c > index 51352de..71adea1 100644 > --- a/fs/compat_ioctl.c > +++ b/fs/compat_ioctl.c > @@ -105,10 +105,9 @@ > > #include <linux/hiddev.h> > > -#include <linux/dvb/audio.h> > +#include <linux/av7110.h> > #include <linux/dvb/dmx.h> > #include <linux/dvb/frontend.h> > -#include <linux/dvb/video.h> > > #include <linux/sort.h> > > @@ -196,32 +195,6 @@ static int do_video_stillpicture(unsigned int fd, unsigned int cmd, > return err; > } > > -struct compat_video_spu_palette { > - int length; > - compat_uptr_t palette; > -}; > - > -static int do_video_set_spu_palette(unsigned int fd, unsigned int cmd, > - struct compat_video_spu_palette __user *up) > -{ > - struct video_spu_palette __user *up_native; > - compat_uptr_t palp; > - int length, err; > - > - err = get_user(palp, &up->palette); > - err |= get_user(length, &up->length); > - > - up_native = compat_alloc_user_space(sizeof(struct video_spu_palette)); > - err = put_user(compat_ptr(palp), &up_native->palette); > - err |= put_user(length, &up_native->length); > - if (err) > - return -EFAULT; > - > - err = sys_ioctl(fd, cmd, (unsigned long) up_native); > - > - return err; > -} > - > #ifdef CONFIG_BLOCK > typedef struct sg_io_hdr32 { > compat_int_t interface_id; /* [i] 'S' for SCSI generic (required) */ > @@ -1317,9 +1290,6 @@ COMPATIBLE_IOCTL(AUDIO_CLEAR_BUFFER) > COMPATIBLE_IOCTL(AUDIO_SET_ID) > COMPATIBLE_IOCTL(AUDIO_SET_MIXER) > COMPATIBLE_IOCTL(AUDIO_SET_STREAMTYPE) > -COMPATIBLE_IOCTL(AUDIO_SET_EXT_ID) > -COMPATIBLE_IOCTL(AUDIO_SET_ATTRIBUTES) > -COMPATIBLE_IOCTL(AUDIO_SET_KARAOKE) > COMPATIBLE_IOCTL(DMX_START) > COMPATIBLE_IOCTL(DMX_STOP) > COMPATIBLE_IOCTL(DMX_SET_FILTER) > @@ -1358,16 +1328,9 @@ COMPATIBLE_IOCTL(VIDEO_FAST_FORWARD) > COMPATIBLE_IOCTL(VIDEO_SLOWMOTION) > COMPATIBLE_IOCTL(VIDEO_GET_CAPABILITIES) > COMPATIBLE_IOCTL(VIDEO_CLEAR_BUFFER) > -COMPATIBLE_IOCTL(VIDEO_SET_ID) > COMPATIBLE_IOCTL(VIDEO_SET_STREAMTYPE) > COMPATIBLE_IOCTL(VIDEO_SET_FORMAT) > -COMPATIBLE_IOCTL(VIDEO_SET_SYSTEM) > -COMPATIBLE_IOCTL(VIDEO_SET_HIGHLIGHT) > -COMPATIBLE_IOCTL(VIDEO_SET_SPU) > -COMPATIBLE_IOCTL(VIDEO_GET_NAVI) > -COMPATIBLE_IOCTL(VIDEO_SET_ATTRIBUTES) > COMPATIBLE_IOCTL(VIDEO_GET_SIZE) > -COMPATIBLE_IOCTL(VIDEO_GET_FRAME_RATE) > > /* joystick */ > COMPATIBLE_IOCTL(JSIOCGVERSION) > @@ -1468,8 +1431,6 @@ static long do_ioctl_trans(int fd, unsigned int cmd, > return do_video_get_event(fd, cmd, argp); > case VIDEO_STILLPICTURE: > return do_video_stillpicture(fd, cmd, argp); > - case VIDEO_SET_SPU_PALETTE: > - return do_video_set_spu_palette(fd, cmd, argp); > } > > /* > diff --git a/include/linux/dvb/Kbuild b/include/linux/dvb/Kbuild > index f4dba86..f5aa137 100644 > --- a/include/linux/dvb/Kbuild > +++ b/include/linux/dvb/Kbuild > @@ -1,8 +1,5 @@ > -header-y += audio.h > header-y += ca.h > header-y += dmx.h > header-y += frontend.h > header-y += net.h > -header-y += osd.h > header-y += version.h > -header-y += video.h > diff --git a/include/linux/dvb/audio.h b/include/linux/dvb/audio.h > deleted file mode 100644 > index d47bccd..0000000 > --- a/include/linux/dvb/audio.h > +++ /dev/null > @@ -1,135 +0,0 @@ > -/* > - * audio.h > - * > - * Copyright (C) 2000 Ralph Metzler <ralph@xxxxxxxxxxxxxx> > - * & Marcus Metzler <marcus@xxxxxxxxxxxxxx> > - * for convergence integrated media GmbH > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Lesser Public License > - * as published by the Free Software Foundation; either version 2.1 > - * of the License, or (at your option) any later version. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public License > - * along with this program; if not, write to the Free Software > - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > - * > - */ > - > -#ifndef _DVBAUDIO_H_ > -#define _DVBAUDIO_H_ > - > -#include <linux/types.h> > - > -typedef enum { > - AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ > - AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ > -} audio_stream_source_t; > - > - > -typedef enum { > - AUDIO_STOPPED, /* Device is stopped */ > - AUDIO_PLAYING, /* Device is currently playing */ > - AUDIO_PAUSED /* Device is paused */ > -} audio_play_state_t; > - > - > -typedef enum { > - AUDIO_STEREO, > - AUDIO_MONO_LEFT, > - AUDIO_MONO_RIGHT, > - AUDIO_MONO, > - AUDIO_STEREO_SWAPPED > -} audio_channel_select_t; > - > - > -typedef struct audio_mixer { > - unsigned int volume_left; > - unsigned int volume_right; > - // what else do we need? bass, pass-through, ... > -} audio_mixer_t; > - > - > -typedef struct audio_status { > - int AV_sync_state; /* sync audio and video? */ > - int mute_state; /* audio is muted */ > - audio_play_state_t play_state; /* current playback state */ > - audio_stream_source_t stream_source; /* current stream source */ > - audio_channel_select_t channel_select; /* currently selected channel */ > - int bypass_mode; /* pass on audio data to */ > - audio_mixer_t mixer_state; /* current mixer state */ > -} audio_status_t; /* separate decoder hardware */ > - > - > -typedef > -struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ > - int vocal1; /* into left and right t at 70% each */ > - int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ > - int melody; /* mixed into the left channel and */ > - /* Vocal2 into the right channel at 100% each. */ > - /* if Melody is non-zero, the melody channel gets mixed*/ > -} audio_karaoke_t; /* into left and right */ > - > - > -typedef __u16 audio_attributes_t; > -/* bits: descr. */ > -/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */ > -/* 12 multichannel extension */ > -/* 11-10 audio type (0=not spec, 1=language included) */ > -/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */ > -/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ > -/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ > -/* 2- 0 number of audio channels (n+1 channels) */ > - > - > -/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ > -#define AUDIO_CAP_DTS 1 > -#define AUDIO_CAP_LPCM 2 > -#define AUDIO_CAP_MP1 4 > -#define AUDIO_CAP_MP2 8 > -#define AUDIO_CAP_MP3 16 > -#define AUDIO_CAP_AAC 32 > -#define AUDIO_CAP_OGG 64 > -#define AUDIO_CAP_SDDS 128 > -#define AUDIO_CAP_AC3 256 > - > -#define AUDIO_STOP _IO('o', 1) > -#define AUDIO_PLAY _IO('o', 2) > -#define AUDIO_PAUSE _IO('o', 3) > -#define AUDIO_CONTINUE _IO('o', 4) > -#define AUDIO_SELECT_SOURCE _IO('o', 5) > -#define AUDIO_SET_MUTE _IO('o', 6) > -#define AUDIO_SET_AV_SYNC _IO('o', 7) > -#define AUDIO_SET_BYPASS_MODE _IO('o', 8) > -#define AUDIO_CHANNEL_SELECT _IO('o', 9) > -#define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t) > - > -#define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int) > -#define AUDIO_CLEAR_BUFFER _IO('o', 12) > -#define AUDIO_SET_ID _IO('o', 13) > -#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) > -#define AUDIO_SET_STREAMTYPE _IO('o', 15) > -#define AUDIO_SET_EXT_ID _IO('o', 16) > -#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) > -#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) > - > -/** > - * AUDIO_GET_PTS > - * > - * Read the 33 bit presentation time stamp as defined > - * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. > - * > - * The PTS should belong to the currently played > - * frame if possible, but may also be a value close to it > - * like the PTS of the last decoded frame or the last PTS > - * extracted by the PES parser. > - */ > -#define AUDIO_GET_PTS _IOR('o', 19, __u64) > -#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) > - > -#endif /* _DVBAUDIO_H_ */ > diff --git a/include/linux/dvb/osd.h b/include/linux/dvb/osd.h > deleted file mode 100644 > index 880e684..0000000 > --- a/include/linux/dvb/osd.h > +++ /dev/null > @@ -1,144 +0,0 @@ > -/* > - * osd.h > - * > - * Copyright (C) 2001 Ralph Metzler <ralph@xxxxxxxxxxxxxx> > - * & Marcus Metzler <marcus@xxxxxxxxxxxxxx> > - * for convergence integrated media GmbH > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Lesser Public License > - * as published by the Free Software Foundation; either version 2.1 > - * of the License, or (at your option) any later version. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public License > - * along with this program; if not, write to the Free Software > - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > - * > - */ > - > -#ifndef _DVBOSD_H_ > -#define _DVBOSD_H_ > - > -#include <linux/compiler.h> > - > -typedef enum { > - // All functions return -2 on "not open" > - OSD_Close=1, // () > - // Disables OSD and releases the buffers > - // returns 0 on success > - OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) > - // Opens OSD with this size and bit depth > - // returns 0 on success, -1 on DRAM allocation error, -2 on "already open" > - OSD_Show, // () > - // enables OSD mode > - // returns 0 on success > - OSD_Hide, // () > - // disables OSD mode > - // returns 0 on success > - OSD_Clear, // () > - // Sets all pixel to color 0 > - // returns 0 on success > - OSD_Fill, // (color) > - // Sets all pixel to color <col> > - // returns 0 on success > - OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1}) > - // set palette entry <num> to <r,g,b>, <mix> and <trans> apply > - // R,G,B: 0..255 > - // R=Red, G=Green, B=Blue > - // opacity=0: pixel opacity 0% (only video pixel shows) > - // opacity=1..254: pixel opacity as specified in header > - // opacity=255: pixel opacity 100% (only OSD pixel shows) > - // returns 0 on success, -1 on error > - OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data) > - // Set a number of entries in the palette > - // sets the entries "firstcolor" through "lastcolor" from the array "data" > - // data has 4 byte for each color: > - // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel > - OSD_SetTrans, // (transparency{color}) > - // Sets transparency of mixed pixel (0..15) > - // returns 0 on success > - OSD_SetPixel, // (x0,y0,color) > - // sets pixel <x>,<y> to color number <col> > - // returns 0 on success, -1 on error > - OSD_GetPixel, // (x0,y0) > - // returns color number of pixel <x>,<y>, or -1 > - OSD_SetRow, // (x0,y0,x1,data) > - // fills pixels x0,y through x1,y with the content of data[] > - // returns 0 on success, -1 on clipping all pixel (no pixel drawn) > - OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data) > - // fills pixels x0,y0 through x1,y1 with the content of data[] > - // inc contains the width of one line in the data block, > - // inc<=0 uses blockwidth as linewidth > - // returns 0 on success, -1 on clipping all pixel > - OSD_FillRow, // (x0,y0,x1,color) > - // fills pixels x0,y through x1,y with the color <col> > - // returns 0 on success, -1 on clipping all pixel > - OSD_FillBlock, // (x0,y0,x1,y1,color) > - // fills pixels x0,y0 through x1,y1 with the color <col> > - // returns 0 on success, -1 on clipping all pixel > - OSD_Line, // (x0,y0,x1,y1,color) > - // draw a line from x0,y0 to x1,y1 with the color <col> > - // returns 0 on success > - OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11 > - // fills parameters with the picture dimensions and the pixel aspect ratio > - // returns 0 on success > - OSD_Test, // () > - // draws a test picture. for debugging purposes only > - // returns 0 on success > -// TODO: remove "test" in final version > - OSD_Text, // (x0,y0,size,color,text) > - OSD_SetWindow, // (x0) set window with number 0<x0<8 as current > - OSD_MoveWindow, // move current window to (x0, y0) > - OSD_OpenRaw, // Open other types of OSD windows > -} OSD_Command; > - > -typedef struct osd_cmd_s { > - OSD_Command cmd; > - int x0; > - int y0; > - int x1; > - int y1; > - int color; > - void __user *data; > -} osd_cmd_t; > - > -/* OSD_OpenRaw: set 'color' to desired window type */ > -typedef enum { > - OSD_BITMAP1, /* 1 bit bitmap */ > - OSD_BITMAP2, /* 2 bit bitmap */ > - OSD_BITMAP4, /* 4 bit bitmap */ > - OSD_BITMAP8, /* 8 bit bitmap */ > - OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ > - OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ > - OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ > - OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ > - OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ > - OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ > - OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ > - OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ > - OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ > - OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ > - OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ > - OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ > - OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ > - OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ > - OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ > - OSD_CURSOR /* Cursor */ > -} osd_raw_window_t; > - > -typedef struct osd_cap_s { > - int cmd; > -#define OSD_CAP_MEMSIZE 1 /* memory size */ > - long val; > -} osd_cap_t; > - > - > -#define OSD_SEND_CMD _IOW('o', 160, osd_cmd_t) > -#define OSD_GET_CAPABILITY _IOR('o', 161, osd_cap_t) > - > -#endif > diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h > deleted file mode 100644 > index 1d750c0..0000000 > --- a/include/linux/dvb/video.h > +++ /dev/null > @@ -1,276 +0,0 @@ > -/* > - * video.h > - * > - * Copyright (C) 2000 Marcus Metzler <marcus@xxxxxxxxxxxxxx> > - * & Ralph Metzler <ralph@xxxxxxxxxxxxxx> > - * for convergence integrated media GmbH > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU Lesser General Public License > - * as published by the Free Software Foundation; either version 2.1 > - * of the License, or (at your option) any later version. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public License > - * along with this program; if not, write to the Free Software > - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > - * > - */ > - > -#ifndef _DVBVIDEO_H_ > -#define _DVBVIDEO_H_ > - > -#include <linux/types.h> > -#ifdef __KERNEL__ > -#include <linux/compiler.h> > -#else > -#include <stdint.h> > -#include <time.h> > -#endif > - > -typedef enum { > - VIDEO_FORMAT_4_3, /* Select 4:3 format */ > - VIDEO_FORMAT_16_9, /* Select 16:9 format. */ > - VIDEO_FORMAT_221_1 /* 2.21:1 */ > -} video_format_t; > - > - > -typedef enum { > - VIDEO_SYSTEM_PAL, > - VIDEO_SYSTEM_NTSC, > - VIDEO_SYSTEM_PALN, > - VIDEO_SYSTEM_PALNc, > - VIDEO_SYSTEM_PALM, > - VIDEO_SYSTEM_NTSC60, > - VIDEO_SYSTEM_PAL60, > - VIDEO_SYSTEM_PALM60 > -} video_system_t; > - > - > -typedef enum { > - VIDEO_PAN_SCAN, /* use pan and scan format */ > - VIDEO_LETTER_BOX, /* use letterbox format */ > - VIDEO_CENTER_CUT_OUT /* use center cut out format */ > -} video_displayformat_t; > - > -typedef struct { > - int w; > - int h; > - video_format_t aspect_ratio; > -} video_size_t; > - > -typedef enum { > - VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ > - VIDEO_SOURCE_MEMORY /* If this source is selected, the stream > - comes from the user through the write > - system call */ > -} video_stream_source_t; > - > - > -typedef enum { > - VIDEO_STOPPED, /* Video is stopped */ > - VIDEO_PLAYING, /* Video is currently playing */ > - VIDEO_FREEZED /* Video is freezed */ > -} video_play_state_t; > - > - > -/* Decoder commands */ > -#define VIDEO_CMD_PLAY (0) > -#define VIDEO_CMD_STOP (1) > -#define VIDEO_CMD_FREEZE (2) > -#define VIDEO_CMD_CONTINUE (3) > - > -/* Flags for VIDEO_CMD_FREEZE */ > -#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) > - > -/* Flags for VIDEO_CMD_STOP */ > -#define VIDEO_CMD_STOP_TO_BLACK (1 << 0) > -#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) > - > -/* Play input formats: */ > -/* The decoder has no special format requirements */ > -#define VIDEO_PLAY_FMT_NONE (0) > -/* The decoder requires full GOPs */ > -#define VIDEO_PLAY_FMT_GOP (1) > - > -/* The structure must be zeroed before use by the application > - This ensures it can be extended safely in the future. */ > -struct video_command { > - __u32 cmd; > - __u32 flags; > - union { > - struct { > - __u64 pts; > - } stop; > - > - struct { > - /* 0 or 1000 specifies normal speed, > - 1 specifies forward single stepping, > - -1 specifies backward single stepping, > - >1: playback at speed/1000 of the normal speed, > - <-1: reverse playback at (-speed/1000) of the normal speed. */ > - __s32 speed; > - __u32 format; > - } play; > - > - struct { > - __u32 data[16]; > - } raw; > - }; > -}; > - > -/* FIELD_UNKNOWN can be used if the hardware does not know whether > - the Vsync is for an odd, even or progressive (i.e. non-interlaced) > - field. */ > -#define VIDEO_VSYNC_FIELD_UNKNOWN (0) > -#define VIDEO_VSYNC_FIELD_ODD (1) > -#define VIDEO_VSYNC_FIELD_EVEN (2) > -#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) > - > -struct video_event { > - __s32 type; > -#define VIDEO_EVENT_SIZE_CHANGED 1 > -#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 > -#define VIDEO_EVENT_DECODER_STOPPED 3 > -#define VIDEO_EVENT_VSYNC 4 > - __kernel_time_t timestamp; > - union { > - video_size_t size; > - unsigned int frame_rate; /* in frames per 1000sec */ > - unsigned char vsync_field; /* unknown/odd/even/progressive */ > - } u; > -}; > - > - > -struct video_status { > - int video_blank; /* blank video on freeze? */ > - video_play_state_t play_state; /* current state of playback */ > - video_stream_source_t stream_source; /* current source (demux/memory) */ > - video_format_t video_format; /* current aspect ratio of stream*/ > - video_displayformat_t display_format;/* selected cropping mode */ > -}; > - > - > -struct video_still_picture { > - char __user *iFrame; /* pointer to a single iframe in memory */ > - __s32 size; > -}; > - > - > -typedef > -struct video_highlight { > - int active; /* 1=show highlight, 0=hide highlight */ > - __u8 contrast1; /* 7- 4 Pattern pixel contrast */ > - /* 3- 0 Background pixel contrast */ > - __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */ > - /* 3- 0 Emphasis pixel-1 contrast */ > - __u8 color1; /* 7- 4 Pattern pixel color */ > - /* 3- 0 Background pixel color */ > - __u8 color2; /* 7- 4 Emphasis pixel-2 color */ > - /* 3- 0 Emphasis pixel-1 color */ > - __u32 ypos; /* 23-22 auto action mode */ > - /* 21-12 start y */ > - /* 9- 0 end y */ > - __u32 xpos; /* 23-22 button color number */ > - /* 21-12 start x */ > - /* 9- 0 end x */ > -} video_highlight_t; > - > - > -typedef struct video_spu { > - int active; > - int stream_id; > -} video_spu_t; > - > - > -typedef struct video_spu_palette { /* SPU Palette information */ > - int length; > - __u8 __user *palette; > -} video_spu_palette_t; > - > - > -typedef struct video_navi_pack { > - int length; /* 0 ... 1024 */ > - __u8 data[1024]; > -} video_navi_pack_t; > - > - > -typedef __u16 video_attributes_t; > -/* bits: descr. */ > -/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ > -/* 13-12 TV system (0=525/60, 1=625/50) */ > -/* 11-10 Aspect ratio (0=4:3, 3=16:9) */ > -/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */ > -/* 7 line 21-1 data present in GOP (1=yes, 0=no) */ > -/* 6 line 21-2 data present in GOP (1=yes, 0=no) */ > -/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */ > -/* 2 source letterboxed (1=yes, 0=no) */ > -/* 0 film/camera mode (0=camera, 1=film (625/50 only)) */ > - > - > -/* bit definitions for capabilities: */ > -/* can the hardware decode MPEG1 and/or MPEG2? */ > -#define VIDEO_CAP_MPEG1 1 > -#define VIDEO_CAP_MPEG2 2 > -/* can you send a system and/or program stream to video device? > - (you still have to open the video and the audio device but only > - send the stream to the video device) */ > -#define VIDEO_CAP_SYS 4 > -#define VIDEO_CAP_PROG 8 > -/* can the driver also handle SPU, NAVI and CSS encoded data? > - (CSS API is not present yet) */ > -#define VIDEO_CAP_SPU 16 > -#define VIDEO_CAP_NAVI 32 > -#define VIDEO_CAP_CSS 64 > - > - > -#define VIDEO_STOP _IO('o', 21) > -#define VIDEO_PLAY _IO('o', 22) > -#define VIDEO_FREEZE _IO('o', 23) > -#define VIDEO_CONTINUE _IO('o', 24) > -#define VIDEO_SELECT_SOURCE _IO('o', 25) > -#define VIDEO_SET_BLANK _IO('o', 26) > -#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status) > -#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event) > -#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29) > -#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture) > -#define VIDEO_FAST_FORWARD _IO('o', 31) > -#define VIDEO_SLOWMOTION _IO('o', 32) > -#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) > -#define VIDEO_CLEAR_BUFFER _IO('o', 34) > -#define VIDEO_SET_ID _IO('o', 35) > -#define VIDEO_SET_STREAMTYPE _IO('o', 36) > -#define VIDEO_SET_FORMAT _IO('o', 37) > -#define VIDEO_SET_SYSTEM _IO('o', 38) > -#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) > -#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) > -#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) > -#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) > -#define VIDEO_SET_ATTRIBUTES _IO('o', 53) > -#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) > -#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) > - > -/** > - * VIDEO_GET_PTS > - * > - * Read the 33 bit presentation time stamp as defined > - * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. > - * > - * The PTS should belong to the currently played > - * frame if possible, but may also be a value close to it > - * like the PTS of the last decoded frame or the last PTS > - * extracted by the PES parser. > - */ > -#define VIDEO_GET_PTS _IOR('o', 57, __u64) > - > -/* Read the number of displayed frames since the decoder was started */ > -#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) > - > -#define VIDEO_COMMAND _IOWR('o', 59, struct video_command) > -#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) > - > -#endif /*_DVBVIDEO_H_*/ -- ---------------------------------------------------------------- VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/ 4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/ Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/ ---------------------------------------------------------------- -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html