summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_out.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine/video_out.h')
-rw-r--r--src/xine-engine/video_out.h61
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 */
/*