Commit 98e422c7 authored by diego's avatar diego

Switch xvmc over to a CONFIG_ option.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16153 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 48fea49c
...@@ -242,6 +242,7 @@ OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o ...@@ -242,6 +242,7 @@ OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o
OBJS-$(CONFIG_XAN_WC4_DECODER) += xan.o OBJS-$(CONFIG_XAN_WC4_DECODER) += xan.o
OBJS-$(CONFIG_XL_DECODER) += xl.o OBJS-$(CONFIG_XL_DECODER) += xl.o
OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o
OBJS-$(CONFIG_XVMC) += xvmcvideo.o
OBJS-$(CONFIG_ZLIB_DECODER) += lcldec.o OBJS-$(CONFIG_ZLIB_DECODER) += lcldec.o
OBJS-$(CONFIG_ZLIB_ENCODER) += lclenc.o OBJS-$(CONFIG_ZLIB_ENCODER) += lclenc.o
OBJS-$(CONFIG_ZMBV_DECODER) += zmbv.o OBJS-$(CONFIG_ZMBV_DECODER) += zmbv.o
...@@ -389,8 +390,6 @@ OBJS-$(HAVE_OS2THREADS) += os2thread.o ...@@ -389,8 +390,6 @@ OBJS-$(HAVE_OS2THREADS) += os2thread.o
OBJS-$(HAVE_PTHREADS) += pthread.o OBJS-$(HAVE_PTHREADS) += pthread.o
OBJS-$(HAVE_W32THREADS) += w32thread.o OBJS-$(HAVE_W32THREADS) += w32thread.o
OBJS-$(HAVE_XVMC) += xvmcvideo.o
# processor-specific code # processor-specific code
MMX-OBJS-$(CONFIG_CAVS_DECODER) += i386/cavsdsp_mmx.o MMX-OBJS-$(CONFIG_CAVS_DECODER) += i386/cavsdsp_mmx.o
MMX-OBJS-$(CONFIG_ENCODERS) += i386/dsputilenc_mmx.o MMX-OBJS-$(CONFIG_ENCODERS) += i386/dsputilenc_mmx.o
......
...@@ -563,7 +563,7 @@ static int is_intra_more_likely(MpegEncContext *s){ ...@@ -563,7 +563,7 @@ static int is_intra_more_likely(MpegEncContext *s){
if(undamaged_count < 5) return 0; //almost all MBs damaged -> use temporal prediction if(undamaged_count < 5) return 0; //almost all MBs damaged -> use temporal prediction
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
//prevent dsp.sad() check, that requires access to the image //prevent dsp.sad() check, that requires access to the image
if(s->avctx->xvmc_acceleration && s->pict_type==FF_I_TYPE) return 1; if(s->avctx->xvmc_acceleration && s->pict_type==FF_I_TYPE) return 1;
#endif #endif
...@@ -934,7 +934,7 @@ void ff_er_frame_end(MpegEncContext *s){ ...@@ -934,7 +934,7 @@ void ff_er_frame_end(MpegEncContext *s){
}else }else
guess_mv(s); guess_mv(s);
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
/* the filters below are not XvMC compatible, skip them */ /* the filters below are not XvMC compatible, skip them */
if(s->avctx->xvmc_acceleration) goto ec_clean; if(s->avctx->xvmc_acceleration) goto ec_clean;
#endif #endif
...@@ -1023,7 +1023,7 @@ void ff_er_frame_end(MpegEncContext *s){ ...@@ -1023,7 +1023,7 @@ void ff_er_frame_end(MpegEncContext *s){
v_block_filter(s, s->current_picture.data[2], s->mb_width , s->mb_height , s->uvlinesize, 0); v_block_filter(s, s->current_picture.data[2], s->mb_width , s->mb_height , s->uvlinesize, 0);
} }
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
ec_clean: ec_clean:
#endif #endif
/* clean a few tables */ /* clean a few tables */
......
...@@ -303,7 +303,7 @@ static int mpeg_decode_mb(MpegEncContext *s, ...@@ -303,7 +303,7 @@ static int mpeg_decode_mb(MpegEncContext *s,
}else }else
memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */ memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */
s->mb_intra = 1; s->mb_intra = 1;
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
//if 1, we memcpy blocks in xvmcvideo //if 1, we memcpy blocks in xvmcvideo
if(s->avctx->xvmc_acceleration > 1){ if(s->avctx->xvmc_acceleration > 1){
XVMC_pack_pblocks(s,-1);//inter are always full blocks XVMC_pack_pblocks(s,-1);//inter are always full blocks
...@@ -516,7 +516,7 @@ static int mpeg_decode_mb(MpegEncContext *s, ...@@ -516,7 +516,7 @@ static int mpeg_decode_mb(MpegEncContext *s,
return -1; return -1;
} }
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
//if 1, we memcpy blocks in xvmcvideo //if 1, we memcpy blocks in xvmcvideo
if(s->avctx->xvmc_acceleration > 1){ if(s->avctx->xvmc_acceleration > 1){
XVMC_pack_pblocks(s,cbp); XVMC_pack_pblocks(s,cbp);
...@@ -1639,7 +1639,7 @@ static int mpeg_field_start(MpegEncContext *s){ ...@@ -1639,7 +1639,7 @@ static int mpeg_field_start(MpegEncContext *s){
} }
} }
} }
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
// MPV_frame_start will call this function too, // MPV_frame_start will call this function too,
// but we need to call it on every field // but we need to call it on every field
if(s->avctx->xvmc_acceleration) if(s->avctx->xvmc_acceleration)
...@@ -1730,7 +1730,7 @@ static int mpeg_decode_slice(Mpeg1Context *s1, int mb_y, ...@@ -1730,7 +1730,7 @@ static int mpeg_decode_slice(Mpeg1Context *s1, int mb_y,
} }
for(;;) { for(;;) {
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
//If 1, we memcpy blocks in xvmcvideo. //If 1, we memcpy blocks in xvmcvideo.
if(s->avctx->xvmc_acceleration > 1) if(s->avctx->xvmc_acceleration > 1)
XVMC_init_block(s);//set s->block XVMC_init_block(s);//set s->block
...@@ -1912,7 +1912,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame *pict) ...@@ -1912,7 +1912,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame *pict)
if (!s1->mpeg_enc_ctx_allocated || !s->current_picture_ptr) if (!s1->mpeg_enc_ctx_allocated || !s->current_picture_ptr)
return 0; return 0;
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
if(s->avctx->xvmc_acceleration) if(s->avctx->xvmc_acceleration)
XVMC_field_end(s); XVMC_field_end(s);
#endif #endif
...@@ -2472,7 +2472,7 @@ AVCodec mpegvideo_decoder = { ...@@ -2472,7 +2472,7 @@ AVCodec mpegvideo_decoder = {
.long_name= NULL_IF_CONFIG_SMALL("MPEG-1 video"), .long_name= NULL_IF_CONFIG_SMALL("MPEG-1 video"),
}; };
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx){ static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx){
Mpeg1Context *s; Mpeg1Context *s;
......
...@@ -939,7 +939,7 @@ alloc: ...@@ -939,7 +939,7 @@ alloc:
update_noise_reduction(s); update_noise_reduction(s);
} }
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
if(s->avctx->xvmc_acceleration) if(s->avctx->xvmc_acceleration)
return XVMC_field_start(s, avctx); return XVMC_field_start(s, avctx);
#endif #endif
...@@ -951,7 +951,7 @@ void MPV_frame_end(MpegEncContext *s) ...@@ -951,7 +951,7 @@ void MPV_frame_end(MpegEncContext *s)
{ {
int i; int i;
/* draw edge for correct motion prediction if outside */ /* draw edge for correct motion prediction if outside */
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
//just to make sure that all data is rendered. //just to make sure that all data is rendered.
if(s->avctx->xvmc_acceleration){ if(s->avctx->xvmc_acceleration){
XVMC_field_end(s); XVMC_field_end(s);
...@@ -1732,7 +1732,7 @@ void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM block[12][64], ...@@ -1732,7 +1732,7 @@ void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM block[12][64],
{ {
int mb_x, mb_y; int mb_x, mb_y;
const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; const int mb_xy = s->mb_y * s->mb_stride + s->mb_x;
#ifdef HAVE_XVMC #ifdef CONFIG_XVMC
if(s->avctx->xvmc_acceleration){ if(s->avctx->xvmc_acceleration){
XVMC_decode_mb(s);//xvmc uses pblocks XVMC_decode_mb(s);//xvmc uses pblocks
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment