summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinhard Nißl <rnissl@gmx.de>2007-07-26 22:51:15 +0200
committerReinhard Nißl <rnissl@gmx.de>2007-07-26 22:51:15 +0200
commit1028e44b958a7c1533e237c0f076d5adf9598b94 (patch)
treefb66dfaf8cbae415059951d927c815cceea2ac10
parentf904331c23d4457f53263711c7d6cefb429b8696 (diff)
downloadxine-lib-1028e44b958a7c1533e237c0f076d5adf9598b94.tar.gz
xine-lib-1028e44b958a7c1533e237c0f076d5adf9598b94.tar.bz2
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
-rw-r--r--src/video_out/video_out_xvmc.c6
-rw-r--r--src/video_out/video_out_xxmc.c14
-rw-r--r--src/video_out/xvmc_mocomp.c6
-rw-r--r--src/video_out/xvmc_vld.c8
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;