Re: [RFCv2 PATCH 12/12] Remove audio.h, video.h and osd.h.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux