diff options
author | Ivan Kalvachev <ikalvachev@gmail.com> | 2003-10-27 23:22:43 +0000 |
---|---|---|
committer | Ivan Kalvachev <ikalvachev@gmail.com> | 2003-10-27 23:22:43 +0000 |
commit | a579db0c4fe026d49c71d1ff64a2d1d07c152d68 (patch) | |
tree | 00c972c3f705b30ec93aef1e10eb798767808485 /libavcodec/mpegvideo.c | |
parent | 6b56c616d9954e1c64efc9d16a579622a06f962c (diff) | |
download | ffmpeg-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.c | 8 |
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 |