diff options
author | Thomas Hellström <totte67@users.sourceforge.net> | 2005-02-22 18:31:33 +0000 |
---|---|---|
committer | Thomas Hellström <totte67@users.sourceforge.net> | 2005-02-22 18:31:33 +0000 |
commit | 081ee8763663ffb98145ea232cad0260bb93aef2 (patch) | |
tree | 832625e851f76e0e9c661130c0ade972f784009c /src/video_out/xvmc_mocomp.c | |
parent | 1a73f221fdf055c093e7b9c74d49795c6007b06e (diff) | |
download | xine-lib-081ee8763663ffb98145ea232cad0260bb93aef2.tar.gz xine-lib-081ee8763663ffb98145ea232cad0260bb93aef2.tar.bz2 |
XvMC update largely courtesy of Kendall Bennet, Scitechsoft:
* Fix surface flushing and syncing (xxmc / xvmc)
* Fix clearing of macro block lists (xxmc / xvmc)
* Remove floating point operations from mpeg demuxer. Degrades
performance on non-fp capable hardware.
* Remove unnecessary software MC step
* Fix Quantization matrix ordering which caused bad picture quality
(KB/TH)
* Minor optimizations in the libmpeg2 code
* Fix VLD flushing at video discontinuity (TH)
CVS patchset: 7424
CVS date: 2005/02/22 18:31:33
Diffstat (limited to 'src/video_out/xvmc_mocomp.c')
-rw-r--r-- | src/video_out/xvmc_mocomp.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/video_out/xvmc_mocomp.c b/src/video_out/xvmc_mocomp.c index ca6873ccb..75a1aa4d9 100644 --- a/src/video_out/xvmc_mocomp.c +++ b/src/video_out/xvmc_mocomp.c @@ -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: xvmc_mocomp.c,v 1.2 2004/10/03 12:36:15 totte67 Exp $ + * $Id: xvmc_mocomp.c,v 1.3 2005/02/22 18:31:59 totte67 Exp $ * * XvMC image support by Jack Kelliher */ @@ -75,19 +75,22 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image, 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; + int flags; lprintf ("xvmc_render_macro_blocks\n"); lprintf ("slices %d 0x%08lx 0x%08lx 0x%08lx\n", macroblocks->slices, (long) current_frame, (long) backward_frame, (long) forward_frame); - + + flags = second_field; + XVMCLOCKDISPLAY( this->display); XvMCRenderSurface(this->display, &this->context, picture_structure, current_frame->xvmc_surf, forward_frame ? forward_frame->xvmc_surf : NULL, backward_frame ? backward_frame->xvmc_surf : NULL, - second_field, + flags, macroblocks->slices, 0, ¯oblocks->macro_blocks, ¯oblocks->blocks); XVMCUNLOCKDISPLAY( this->display); @@ -185,7 +188,7 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type, mbs->macroblockptr->index = ((unsigned long)mbs->xine_mc.blockptr - (unsigned long)mbs->xine_mc.blockbaseptr) >> 7; - + mbs->macroblockptr->dct_type = dct_type; mbs->macroblockptr->coded_block_pattern = cbp; |