aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/mpegvideo.c
diff options
context:
space:
mode:
authorIvan Kalvachev <ikalvachev@gmail.com>2003-10-27 23:22:43 +0000
committerIvan Kalvachev <ikalvachev@gmail.com>2003-10-27 23:22:43 +0000
commita579db0c4fe026d49c71d1ff64a2d1d07c152d68 (patch)
tree00c972c3f705b30ec93aef1e10eb798767808485 /libavcodec/mpegvideo.c
parent6b56c616d9954e1c64efc9d16a579622a06f962c (diff)
downloadffmpeg-a579db0c4fe026d49c71d1ff64a2d1d07c152d68.tar.gz
XvMC speedup by removing one memcpy and doing MB packing
Originally committed as revision 2442 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r--libavcodec/mpegvideo.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index b65aec5b35..5a121a178c 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -56,7 +56,7 @@ static int sse_mb(MpegEncContext *s);
#ifdef HAVE_XVMC
extern int XVMC_field_start(MpegEncContext*s, AVCodecContext *avctx);
extern void XVMC_field_end(MpegEncContext *s);
-extern void XVMC_decode_mb(MpegEncContext *s, DCTELEM block[6][64]);
+extern void XVMC_decode_mb(MpegEncContext *s);
#endif
void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w)= draw_edges_c;
@@ -519,6 +519,10 @@ int MPV_common_init(MpegEncContext *s)
s->block= s->blocks[0];
+ for(i=0;i<12;i++){
+ s->pblocks[i] = (short *)(&s->block[i]);
+ }
+
s->parse_context.state= -1;
s->context_initialized = 1;
@@ -2485,7 +2489,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
const int mb_xy = s->mb_y * s->mb_stride + s->mb_x;
#ifdef HAVE_XVMC
if(s->avctx->xvmc_acceleration){
- XVMC_decode_mb(s,block);
+ XVMC_decode_mb(s);//xvmc uses pblocks
return;
}
#endif