[Mplayer-cvslog] CVS: main/libmpcodecs vd_ffmpeg.c,1.107,1.108
Ivan Kalvachev CVS
iive at mplayerhq.hu
Sat Nov 8 02:56:35 CET 2003
Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var/tmp.root/cvs-serv11815
Modified Files:
vd_ffmpeg.c
Log Message:
aspect change does not flush buffers
Index: vd_ffmpeg.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vd_ffmpeg.c,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- vd_ffmpeg.c 3 Nov 2003 10:42:28 -0000 1.107
+++ vd_ffmpeg.c 8 Nov 2003 01:56:09 -0000 1.108
@@ -389,7 +389,9 @@
float aspect= avctx->aspect_ratio;
#endif
- if ( aspect != ctx->last_aspect ||
+ // it is possible another vo buffers to be used after vo config()
+ // lavc reset its buffers on width/heigh change but not on aspect change!!!
+ if (// aspect != ctx->last_aspect ||
avctx->width != sh->disp_w ||
avctx->height != sh->disp_h ||
!ctx->vo_inited)
@@ -833,6 +835,8 @@
pic->type= FF_BUFFER_TYPE_USER;
render=(xvmc_render_state_t*)mpi->priv;//same as data[2]
+ if(verbose > 4)
+ printf("vd_ffmpeg::mc_get_buffer (render=%p)\n",render);
assert(render != 0);
assert(render->magic == MP_XVMC_RENDER_MAGIC);
render->state |= MP_XVMC_STATE_PREDICTION;
@@ -858,11 +862,11 @@
//printf("R%X %X\n", pic->linesize[0], pic->data[0]);
//mark the surface as not requared for prediction
render=(xvmc_render_state_t*)pic->data[2];//same as mpi->priv
+ if(verbose > 4)
+ printf("vd_ffmpeg::mc_release_buffer (render=%p)\n",render);
assert(render!=NULL);
assert(render->magic==MP_XVMC_RENDER_MAGIC);
render->state&=~MP_XVMC_STATE_PREDICTION;
- if(verbose > 4)
- printf("vd_ffmpeg::mc_release buffer (render=%p)\n",render);
for(i=0; i<4; i++){
pic->data[i]= NULL;
}
More information about the MPlayer-cvslog
mailing list