[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