diff options
author | Reinhard Nißl <rnissl@gmx.de> | 2007-07-26 22:34:08 +0200 |
---|---|---|
committer | Reinhard Nißl <rnissl@gmx.de> | 2007-07-26 22:34:08 +0200 |
commit | cf3d7811754b01eca1aca617a6792417d4873a06 (patch) | |
tree | fd3d0a2b634e323045d5a9f5fbc65fea5a9d0787 | |
parent | a84b249d6d82bd9ba51c4827bd78f4836f32fb6d (diff) | |
download | xine-lib-cf3d7811754b01eca1aca617a6792417d4873a06.tar.gz xine-lib-cf3d7811754b01eca1aca617a6792417d4873a06.tar.bz2 |
provide a direct link to accelerated frame for postprocessing
Accelerated frames share data between decoder and video out driver.
When frames get intercepted for postprocessing the decoder will pass
intercepted frames to the video out driver, but the driver needs to
access it's native frame for accelerated decoding. Putting a pointer
to the native frame into acceleration data is an easy way to achieve
this. Some additional macros simplify accessing the native frame.
--HG--
extra : transplant_source : 0%FB%1B4A%D9%27%92z%A5E%C1%1F%81nB%00y%17%9E
-rw-r--r-- | src/xine-engine/accel_xvmc.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/xine-engine/accel_xvmc.h b/src/xine-engine/accel_xvmc.h index 46cbfba22..d60246c3e 100644 --- a/src/xine-engine/accel_xvmc.h +++ b/src/xine-engine/accel_xvmc.h @@ -67,6 +67,7 @@ typedef struct xine_vld_frame_s { typedef struct xine_xvmc_s { + vo_frame_t *vo_frame; xine_macroblocks_t *macroblocks; void (*proc_macro_block)(int x,int y,int mb_type, int motion_type,int (*mv_field_sel)[2], @@ -76,6 +77,9 @@ typedef struct xine_xvmc_s { int second_field,int (*f_mot_pmv)[2],int (*b_mot_pmv)[2]); } xine_xvmc_t ; +#define XVMC_DATA(frame_gen) ((frame_gen) ? (xine_xvmc_t *)(frame_gen)->accel_data : (xine_xvmc_t *)0) +#define XVMC_FRAME(frame_gen) ((frame_gen) ? (xvmc_frame_t *)XVMC_DATA(frame_gen)->vo_frame : (xvmc_frame_t *)0) + typedef struct xine_xxmc_s { /* @@ -110,6 +114,9 @@ typedef struct xine_xxmc_s { void (*proc_xxmc_unlock) (vo_driver_t *this_gen); } xine_xxmc_t; +#define XXMC_DATA(frame_gen) ((frame_gen) ? (xine_xxmc_t *)(frame_gen)->accel_data : (xine_xxmc_t *)0) +#define XXMC_FRAME(frame_gen) ((frame_gen) ? (xxmc_frame_t *)XXMC_DATA(frame_gen)->xvmc.vo_frame : (xxmc_frame_t *)0) + /* * Register XvMC stream types here. */ |