diff options
-rw-r--r-- | libvo/video_out.h | 54 | ||||
-rw-r--r-- | libvo/video_out_internal.h | 4 | ||||
-rw-r--r-- | libvo/vo_3dfx.c | 9 | ||||
-rw-r--r-- | libvo/vo_aa.c | 9 | ||||
-rw-r--r-- | libvo/vo_dga.c | 14 | ||||
-rw-r--r-- | libvo/vo_directfb.c | 9 | ||||
-rw-r--r-- | libvo/vo_dxr3.c | 10 | ||||
-rw-r--r-- | libvo/vo_fbdev.c | 9 | ||||
-rw-r--r-- | libvo/vo_fsdga.c | 12 | ||||
-rw-r--r-- | libvo/vo_ggi.c | 10 | ||||
-rw-r--r-- | libvo/vo_gl.c | 10 | ||||
-rw-r--r-- | libvo/vo_gl2.c | 10 | ||||
-rw-r--r-- | libvo/vo_md5.c | 8 | ||||
-rw-r--r-- | libvo/vo_mga.c | 9 | ||||
-rw-r--r-- | libvo/vo_mpegpes.c | 9 | ||||
-rw-r--r-- | libvo/vo_null.c | 9 | ||||
-rw-r--r-- | libvo/vo_odivx.c | 10 | ||||
-rw-r--r-- | libvo/vo_pgm.c | 9 | ||||
-rw-r--r-- | libvo/vo_png.c | 10 | ||||
-rw-r--r-- | libvo/vo_sdl.c | 10 | ||||
-rw-r--r-- | libvo/vo_svga.c | 10 | ||||
-rw-r--r-- | libvo/vo_syncfb.c | 9 | ||||
-rw-r--r-- | libvo/vo_tdfxfb.c | 8 | ||||
-rw-r--r-- | libvo/vo_vesa.c | 10 | ||||
-rw-r--r-- | libvo/vo_x11.c | 9 | ||||
-rw-r--r-- | libvo/vo_xmga.c | 10 | ||||
-rw-r--r-- | libvo/vo_xv.c | 9 | ||||
-rw-r--r-- | libvo/vo_xvidix.c | 10 | ||||
-rw-r--r-- | libvo/vo_zr.c | 10 | ||||
-rw-r--r-- | libvo/vosub_vidix.h | 3 |
30 files changed, 306 insertions, 16 deletions
diff --git a/libvo/video_out.h b/libvo/video_out.h index 250837b4e6..dce60223c1 100644 --- a/libvo/video_out.h +++ b/libvo/video_out.h @@ -10,6 +10,7 @@ #include "font_load.h" #include "img_format.h" +#include "../vidix/vidix.h" #define VO_EVENT_EXPOSE 1 #define VO_EVENT_RESIZE 2 @@ -27,10 +28,53 @@ typedef struct vo_info_s const char *comment; } vo_info_t; +/* Direct access to BES */ +typedef struct bes_da_s +{ + vidix_rect_t dest; /* This field should be filled by x,y,w,h + from vidix:src but pitches from + vidix:dest */ + int flags; /* Probably will work only when flag == 0 */ + /* memory model */ + unsigned frame_size; /* destinition frame size */ + unsigned num_frames; /* number available frames */ + unsigned offsets[VID_PLAY_MAXFRAMES]; /* relative offset of each frame from begin of video memory */ + vidix_yuv_t offset; /* relative offsets within frame for yuv planes */ + void* dga_addr; /* linear address of BES */ +}bes_da_t; + +/* + Video Accelearted Architecture. + Every field of this structure can be set to NULL that means that + features is not supported +*/ +typedef struct vo_vaa_s +{ + uint32_t flags; /* currently undefined */ + /* + * Query Direct Access to BES + * info - information to be filled + * returns: 0 on success errno on error. + */ + int (*query_bes_da)(bes_da_t *info); + int (*get_video_eq)(vidix_video_eq_t *info); + int (*set_video_eq)(const vidix_video_eq_t *info); + int (*get_num_fx)(unsigned *info); + int (*get_oem_fx)(vidix_oem_fx_t *info); + int (*set_oem_fx)(const vidix_oem_fx_t *info); + int (*set_deint)(const vidix_deinterlace_t *info); +}vo_vaa_t; + typedef struct vo_functions_s { + /* + * Preinitializes driver (real INITIALIZATION) + * arg - currently it's vo_subdevice + * returns: zero on successful initialization, non-zero on error. + */ + uint32_t (*preinit)(const char *arg); /* - * Initialize the display driver. + * Initialize (means CONFIGURE) the display driver. * params: * width,height: image source size * d_width,d_height: size of the requested window size, just a hint @@ -93,6 +137,14 @@ typedef struct vo_functions_s */ void (*uninit)(void); + /* + * Query Video Accelerated Architecture information. + * params: + * vaa: address of struct to be filled. + * (Note: driver should memset it to ZERO if it doesn't support vaa.) + */ + void (*query_vaa)(vo_vaa_t *vaa); + } vo_functions_t; char *vo_format_name(int format); diff --git a/libvo/video_out_internal.h b/libvo/video_out_internal.h index 1cf94f2ad7..fbf51b478d 100644 --- a/libvo/video_out_internal.h +++ b/libvo/video_out_internal.h @@ -30,9 +30,12 @@ static void flip_page(void); static void check_events(void); static void uninit(void); static uint32_t query_format(uint32_t format); +static uint32_t preinit(const char *); +static void query_vaa(vo_vaa_t *); #define LIBVO_EXTERN(x) vo_functions_t video_out_##x =\ {\ + preinit,\ init,\ query_format,\ get_info,\ @@ -42,6 +45,7 @@ static uint32_t query_format(uint32_t format); flip_page,\ check_events,\ uninit,\ + query_vaa\ }; #include "osd.h" diff --git a/libvo/vo_3dfx.c b/libvo/vo_3dfx.c index 3a74510b64..541e716f80 100644 --- a/libvo/vo_3dfx.c +++ b/libvo/vo_3dfx.c @@ -488,4 +488,13 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_aa.c b/libvo/vo_aa.c index c385664727..61c773457f 100644 --- a/libvo/vo_aa.c +++ b/libvo/vo_aa.c @@ -752,3 +752,12 @@ vo_aa_revertoption(config_t* opt,char* param) { aaopt_subcolor= AA_SPECIAL; } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_dga.c b/libvo/vo_dga.c index 4de95ffc1d..cec4d0e327 100644 --- a/libvo/vo_dga.c +++ b/libvo/vo_dga.c @@ -23,8 +23,8 @@ * - works only on x86 architectures * * $Log$ - * Revision 1.36 2002/01/08 20:58:53 atmos4 - * SwScaler support for vo_png by Kim Minh, SwScale w/aspecz for vo_dga by me + * Revision 1.37 2002/01/26 16:01:26 nick + * Extensions for video accelerated architecture * * Revision 1.35 2001/12/28 20:52:54 alex * use XF86VidMode later in init (at line 1031) only if we've got support (if have_vm==1) @@ -1175,6 +1175,16 @@ static uint32_t init( uint32_t width, uint32_t height, return 0; } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} + //--------------------------------------------------------- // deleted the old vo_dga_query_event() routine 'cause it is obsolete diff --git a/libvo/vo_directfb.c b/libvo/vo_directfb.c index 6e495c41bd..be605c8bb4 100644 --- a/libvo/vo_directfb.c +++ b/libvo/vo_directfb.c @@ -888,3 +888,12 @@ static void uninit(void) } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_dxr3.c b/libvo/vo_dxr3.c index ba812006b4..d9a338cc40 100644 --- a/libvo/vo_dxr3.c +++ b/libvo/vo_dxr3.c @@ -551,3 +551,13 @@ static void uninit(void) static void check_events(void) { } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_fbdev.c b/libvo/vo_fbdev.c index d34ee73da1..ad798fc146 100644 --- a/libvo/vo_fbdev.c +++ b/libvo/vo_fbdev.c @@ -1338,3 +1338,12 @@ static void uninit(void) #endif } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_fsdga.c b/libvo/vo_fsdga.c index ea78e7a656..c1ab3ffdfe 100644 --- a/libvo/vo_fsdga.c +++ b/libvo/vo_fsdga.c @@ -463,8 +463,12 @@ int vo_dga_query_event(void){ } #endif +static uint32_t preinit(const char *arg) +{ + return 0; +} - - - - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_ggi.c b/libvo/vo_ggi.c index 382cff14e5..9fc475c476 100644 --- a/libvo/vo_ggi.c +++ b/libvo/vo_ggi.c @@ -765,3 +765,13 @@ static void check_events(void) } return; } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c index b19779a93b..502e8b8a98 100644 --- a/libvo/vo_gl.c +++ b/libvo/vo_gl.c @@ -477,3 +477,13 @@ uninit(void) saver_on(mDisplay); // screen saver back on XDestroyWindow( mDisplay,mywindow ); } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c index 424d20bc1d..2f76022065 100644 --- a/libvo/vo_gl2.c +++ b/libvo/vo_gl2.c @@ -1103,3 +1103,13 @@ uninit(void) saver_on(mDisplay); // screen saver back on XDestroyWindow( mDisplay,mywindow ); } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_md5.c b/libvo/vo_md5.c index cc904c051d..42346d9043 100644 --- a/libvo/vo_md5.c +++ b/libvo/vo_md5.c @@ -103,4 +103,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_mga.c b/libvo/vo_mga.c index a278ae7c08..8d0fa440ab 100644 --- a/libvo/vo_mga.c +++ b/libvo/vo_mga.c @@ -146,5 +146,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_mpegpes.c b/libvo/vo_mpegpes.c index 8e480c54f4..f1e52bee1e 100644 --- a/libvo/vo_mpegpes.c +++ b/libvo/vo_mpegpes.c @@ -511,3 +511,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_null.c b/libvo/vo_null.c index b1d2e9a522..ca4fdb1b57 100644 --- a/libvo/vo_null.c +++ b/libvo/vo_null.c @@ -90,5 +90,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_odivx.c b/libvo/vo_odivx.c index 8e2201e939..73d8023596 100644 --- a/libvo/vo_odivx.c +++ b/libvo/vo_odivx.c @@ -261,10 +261,16 @@ uninit(void) { } - - static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_pgm.c b/libvo/vo_pgm.c index 20caa410ee..11640a9e2f 100644 --- a/libvo/vo_pgm.c +++ b/libvo/vo_pgm.c @@ -135,5 +135,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_png.c b/libvo/vo_png.c index 321475885e..117b3705b1 100644 --- a/libvo/vo_png.c +++ b/libvo/vo_png.c @@ -309,3 +309,13 @@ uninit(void) static void check_events(void) { } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_sdl.c b/libvo/vo_sdl.c index 1e108c34dd..d389bbed43 100644 --- a/libvo/vo_sdl.c +++ b/libvo/vo_sdl.c @@ -1263,3 +1263,13 @@ uninit(void) #endif sdl_close(); } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_svga.c b/libvo/vo_svga.c index 8677b0e088..ec70d1481a 100644 --- a/libvo/vo_svga.c +++ b/libvo/vo_svga.c @@ -569,3 +569,13 @@ static void uninit(void) { free(list); } } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_syncfb.c b/libvo/vo_syncfb.c index d4f209de66..ffb8c066e7 100644 --- a/libvo/vo_syncfb.c +++ b/libvo/vo_syncfb.c @@ -448,3 +448,12 @@ static void check_events(void) { } +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_tdfxfb.c b/libvo/vo_tdfxfb.c index aa0ea4111f..d14e0cc6d5 100644 --- a/libvo/vo_tdfxfb.c +++ b/libvo/vo_tdfxfb.c @@ -823,4 +823,12 @@ static void my_draw_alpha_accel(int x0, int y0, int w, int h, unsigned char *src } #endif /* ! HWACCEL_OSD_M2 */ +static uint32_t preinit(const char *arg) +{ + return 0; +} +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_vesa.c b/libvo/vo_vesa.c index 33a71afe25..0e42febb39 100644 --- a/libvo/vo_vesa.c +++ b/libvo/vo_vesa.c @@ -988,3 +988,13 @@ static void check_events(void) printf("vo_vesa: check_events was called\n"); /* Nothing to do */ } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c index 5048321283..d424f19c3d 100644 --- a/libvo/vo_x11.c +++ b/libvo/vo_x11.c @@ -614,5 +614,12 @@ uninit(void) printf("vo: uninit!\n"); } +static uint32_t preinit(const char *arg) +{ + return 0; +} - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c index 78529832c4..ab3c82018d 100644 --- a/libvo/vo_xmga.c +++ b/libvo/vo_xmga.c @@ -391,3 +391,13 @@ uninit(void) mga_uninit(); printf("vo: uninit!\n"); } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c index 60a0cd2889..0714cf2186 100644 --- a/libvo/vo_xv.c +++ b/libvo/vo_xv.c @@ -611,5 +611,12 @@ static void uninit(void) for( i=0;i<num_buffers;i++ ) deallocate_xvimage( i ); } +static uint32_t preinit(const char *arg) +{ + return 0; +} - +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_xvidix.c b/libvo/vo_xvidix.c index 3dd405b7a9..119aef75e4 100644 --- a/libvo/vo_xvidix.c +++ b/libvo/vo_xvidix.c @@ -490,3 +490,13 @@ static void Terminate_Display_Process(void) return; } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vo_zr.c b/libvo/vo_zr.c index b115602d4e..40809a011f 100644 --- a/libvo/vo_zr.c +++ b/libvo/vo_zr.c @@ -604,3 +604,13 @@ void vo_zr_revertoption(config_t* opt,char* param) { norm = VIDEO_MODE_AUTO; } + +static uint32_t preinit(const char *arg) +{ + return 0; +} + +static void query_vaa(vo_vaa_t *vaa) +{ + memset(vaa,0,sizeof(vo_vaa_t)); +} diff --git a/libvo/vosub_vidix.h b/libvo/vosub_vidix.h index 3b39ccb715..7a68bcfe0c 100644 --- a/libvo/vosub_vidix.h +++ b/libvo/vosub_vidix.h @@ -13,8 +13,7 @@ #define __VOSUB_VIDIX_INCLUDED /* drvname can be NULL */ -int vidix_preinit( -const char *drvname,void *server); +int vidix_preinit(const char *drvname,void *server); int vidix_init(unsigned src_width,unsigned src_height, unsigned dest_x,unsigned dest_y,unsigned dst_width, unsigned dst_height,unsigned format,unsigned dest_bpp, |