diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-09-28 18:49:38 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-09-28 18:49:38 +0000 |
commit | fe2a390351727cb5ae264588293f8bd7d6d5198e (patch) | |
tree | 20c91e59d361585dd0d8d45440a96c807ea7dddb /src/xine-engine/video_out.h | |
parent | f42eccd3e7c5a717f668f0b832ace09f161dbfbc (diff) | |
download | xine-lib-fe2a390351727cb5ae264588293f8bd7d6d5198e.tar.gz xine-lib-fe2a390351727cb5ae264588293f8bd7d6d5198e.tar.bz2 |
xxmc patch by Thomas Hellstrom (with some changes)
there is still some work to do, please report any breakages.
note: new xxmc driver tested with both nvidia and via libraries.
CVS patchset: 7007
CVS date: 2004/09/28 18:49:38
Diffstat (limited to 'src/xine-engine/video_out.h')
-rw-r--r-- | src/xine-engine/video_out.h | 61 |
1 files changed, 9 insertions, 52 deletions
diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index c96307471..ba35e2e2a 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.h,v 1.110 2004/09/26 22:54:52 valtri Exp $ + * $Id: video_out.h,v 1.111 2004/09/28 18:49:40 miguelfreitas Exp $ * * * xine version of video_out.h @@ -60,13 +60,6 @@ typedef struct video_driver_class_s video_driver_class_t; typedef struct vo_overlay_s vo_overlay_t; typedef struct video_overlay_manager_s video_overlay_manager_t; -typedef struct xine_macroblock_s { - short *blockptr; /* pointer to current dct block */ - short *blockbaseptr; /* pointer to base of dct block array in blocks */ - short xvmc_accel; /* type of acceleration supported */ -} xine_macroblocks_t; - - /* public part, video drivers may add private fields * * Remember that adding new functions to this structure requires @@ -78,6 +71,11 @@ struct vo_frame_s { * member functions */ + /* Duplicate picture data and acceleration specific data of a frame. */ + /* if the image format isn't already known by Xine. Currently this is needed */ + /* For all image formats except XINE_IMGFMT_YV12 and XINE_IMGFMT_YUY2 */ + void (*proc_duplicate_frame_data) (vo_frame_t *vo_img, vo_frame_t *src); + /* tell video driver to copy/convert the whole of this frame, may be NULL */ /* at least one of proc_frame() and proc_slice() MUST set the variable proc_called to 1 */ void (*proc_frame) (vo_frame_t *vo_img); @@ -86,23 +84,6 @@ struct vo_frame_s { /* at least one of proc_frame() and proc_slice() MUST set the variable proc_called to 1 */ void (*proc_slice) (vo_frame_t *vo_img, uint8_t **src); - /* XvMC routine for rendering macroblocks, may be NULL */ - void (*proc_macro_block)(int x, - int y, - int mb_type, - int motion_type, - int (*mv_field_sel)[2], - int *dmvector, - int cbp, - int dct_type, - vo_frame_t *current_frame, - vo_frame_t *forward_ref_frame, - vo_frame_t *backward_ref_frame, - int picture_structure, - int second_field, - int (*f_mot_pmv)[2], - int (*b_mot_pmv)[2]); - /* tell video driver that the decoder starts a new field */ void (*field) (vo_frame_t *vo_img, int which_field); @@ -161,8 +142,8 @@ struct vo_frame_s { int flags; /* remember the frame flags */ int proc_called; /* track use of proc_*() methods */ - /* used to carry macroblocks information for XvMC acceleration */ - xine_macroblocks_t *macroblocks; + /* Used to carry private data for accelerated plugins.*/ + void *accel_data; /* "backward" references to where this frame originates from */ xine_video_port_t *port; @@ -292,31 +273,7 @@ struct xine_video_port_s { #define VO_CAP_XVMC_IDCT 0x00000008 /* driver can use XvMC idct acceleration */ #define VO_CAP_UNSCALED_OVERLAY 0x00000010 /* driver can blend overlay at output resolution */ #define VO_CAP_CROP 0x00000020 /* driver can crop */ - -/* macroblock modes */ -#define XINE_MACROBLOCK_INTRA 1 -#define XINE_MACROBLOCK_PATTERN 2 -#define XINE_MACROBLOCK_MOTION_BACKWARD 4 -#define XINE_MACROBLOCK_MOTION_FORWARD 8 -#define XINE_MACROBLOCK_QUANT 16 -#define XINE_MACROBLOCK_DCT_TYPE_INTERLACED 32 - -/* motion types */ -#define XINE_MC_FIELD 1 -#define XINE_MC_FRAME 2 -#define XINE_MC_16X8 2 -#define XINE_MC_DMV 3 - -/* picture coding type */ -#define XINE_PICT_I_TYPE 1 -#define XINE_PICT_P_TYPE 2 -#define XINE_PICT_B_TYPE 3 -#define XINE_PICT_D_TYPE 4 - -/* xvmc acceleration types */ -#define XINE_VO_MOTION_ACCEL 1 -#define XINE_VO_IDCT_ACCEL 2 -#define XINE_VO_SIGNED_INTRA 4 +#define VO_CAP_XXMC 0x00000040 /* driver can use extended XvMC */ /* |