From 1028e44b958a7c1533e237c0f076d5adf9598b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20Ni=C3=9Fl?= Date: Thu, 26 Jul 2007 22:51:15 +0200 Subject: access native frame where an intercepted can be passed When postprocessing is activated, the decoder will pass intercepted frames to the video driver. The driver must nolonger assume that a native frame will be passed from the decoder -- it's necessary to use the supplied macros which give access to the native frame even when an intercepted frame gets passed. --HG-- extra : transplant_source : %19%E7%83q1%F6%FEJ%12%A4%1D%AC%CF%7F%2Cn%5BJ%92Y --- src/video_out/video_out_xvmc.c | 6 +++--- src/video_out/video_out_xxmc.c | 14 +++++++------- src/video_out/xvmc_mocomp.c | 6 +++--- src/video_out/xvmc_vld.c | 8 ++++---- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/video_out/video_out_xvmc.c b/src/video_out/video_out_xvmc.c index 0b9e995fe..77016dc81 100644 --- a/src/video_out/video_out_xvmc.c +++ b/src/video_out/video_out_xvmc.c @@ -481,9 +481,9 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image, int second_field, xvmc_macroblocks_t *macroblocks) { xvmc_driver_t *this = (xvmc_driver_t *) current_image->driver; - xvmc_frame_t *current_frame = (xvmc_frame_t *) current_image; - xvmc_frame_t *forward_frame = (xvmc_frame_t *) forward_ref_image; - xvmc_frame_t *backward_frame = (xvmc_frame_t *) backward_ref_image; + xvmc_frame_t *current_frame = XVMC_FRAME(current_image); + xvmc_frame_t *forward_frame = XVMC_FRAME(forward_ref_image); + xvmc_frame_t *backward_frame = XVMC_FRAME(backward_ref_image); int flags; lprintf ("xvmc_render_macro_blocks\n"); diff --git a/src/video_out/video_out_xxmc.c b/src/video_out/video_out_xxmc.c index 4ef695462..748d207ab 100644 --- a/src/video_out/video_out_xxmc.c +++ b/src/video_out/video_out_xxmc.c @@ -367,15 +367,15 @@ static int xxmc_lock_and_validate_surfaces(vo_frame_t *cur_frame, switch(pc_type) { case XINE_PICT_B_TYPE: - frame = (xxmc_frame_t *) bw_frame; + frame = XXMC_FRAME(bw_frame); if (!xxmc_xvmc_surface_valid( driver, frame->xvmc_surf)) break; /* fall through */ case XINE_PICT_P_TYPE: - frame = (xxmc_frame_t *) fw_frame; + frame = XXMC_FRAME(fw_frame); if (!xxmc_xvmc_surface_valid( driver, frame->xvmc_surf)) break; /* fall through */ default: - frame = (xxmc_frame_t *) cur_frame; + frame = XXMC_FRAME(cur_frame); if (!xxmc_xvmc_surface_valid( driver, frame->xvmc_surf)) break; return 0; } @@ -406,7 +406,7 @@ static void xvmc_flush(vo_frame_t *this_gen) { xxmc_frame_t - *frame = (xxmc_frame_t *) this_gen; + *frame = XXMC_FRAME(this_gen); xxmc_driver_t *driver = (xxmc_driver_t *) this_gen->driver; @@ -1226,7 +1226,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen, double ratio, int format, int flags) { xxmc_driver_t *this = (xxmc_driver_t *) this_gen; - xxmc_frame_t *frame = (xxmc_frame_t *) frame_gen; + xxmc_frame_t *frame = XXMC_FRAME(frame_gen); if ( XINE_IMGFMT_XXMC == format ) { xine_xxmc_t *xxmc = &frame->xxmc_data; @@ -1245,7 +1245,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen, if (this->contextActive) xxmc_frame_updates(this, frame, 1); - xxmc_do_update_frame_xv(this_gen, frame_gen, width, height, ratio, + xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio, xxmc->fallback_format, flags); if (!this->contextActive) { @@ -1266,7 +1266,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen, xxmc_xvmc_update_context(this, frame, width, height, 0); } frame->vo_frame.proc_duplicate_frame_data = NULL; - xxmc_do_update_frame_xv(this_gen, frame_gen, width, height, ratio, + xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio, format, flags); } } diff --git a/src/video_out/xvmc_mocomp.c b/src/video_out/xvmc_mocomp.c index 970c243dd..bf05a79d3 100644 --- a/src/video_out/xvmc_mocomp.c +++ b/src/video_out/xvmc_mocomp.c @@ -72,9 +72,9 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image, int second_field, xvmc_macroblocks_t *macroblocks) { xxmc_driver_t *this = (xxmc_driver_t *) current_image->driver; - xxmc_frame_t *current_frame = (xxmc_frame_t *) current_image; - xxmc_frame_t *forward_frame = (xxmc_frame_t *) forward_ref_image; - xxmc_frame_t *backward_frame = (xxmc_frame_t *) backward_ref_image; + xxmc_frame_t *current_frame = XXMC_FRAME(current_image); + xxmc_frame_t *forward_frame = XXMC_FRAME(forward_ref_image); + xxmc_frame_t *backward_frame = XXMC_FRAME(backward_ref_image); int flags; lprintf ("xvmc_render_macro_blocks\n"); diff --git a/src/video_out/xvmc_vld.c b/src/video_out/xvmc_vld.c index 953b65563..ce1c82742 100644 --- a/src/video_out/xvmc_vld.c +++ b/src/video_out/xvmc_vld.c @@ -34,12 +34,12 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen) { vo_frame_t *this = (vo_frame_t *) this_gen; xxmc_frame_t - *cf = (xxmc_frame_t *) this; + *cf = XXMC_FRAME(this); xine_vld_frame_t *vft = &(cf->xxmc_data.vld_frame); xxmc_frame_t - *ff = (xxmc_frame_t *) vft->forward_reference_frame, - *bf = (xxmc_frame_t *) vft->backward_reference_frame; + *ff = XXMC_FRAME(vft->forward_reference_frame), + *bf = XXMC_FRAME(vft->backward_reference_frame); XvMCMpegControl ctl; xxmc_driver_t *driver = (xxmc_driver_t *) cf->vo_frame.driver; @@ -106,7 +106,7 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen) void xvmc_vld_slice(vo_frame_t *this_gen) { xxmc_frame_t - *cf = (xxmc_frame_t *) this_gen; + *cf = XXMC_FRAME(this_gen); xxmc_driver_t *driver = (xxmc_driver_t *) cf->vo_frame.driver; -- cgit v1.2.3