changeset 7697:a3c57c0c4ae2

don't honor stride hints if the next filter(chain) doesn't support stride
author arpi
date Thu, 10 Oct 2002 01:09:23 +0000
parents a818bbab1525
children c8d2c444d278
files libmpcodecs/vf.c
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vf.c	Thu Oct 10 00:51:41 2002 +0000
+++ b/libmpcodecs/vf.c	Thu Oct 10 01:09:23 2002 +0000
@@ -187,8 +187,17 @@
 	      int align=(mpi->flags&MP_IMGFLAG_PLANAR &&
 	                 mpi->flags&MP_IMGFLAG_YUV) ?
 			 (8<<mpi->chroma_x_shift)-1 : 15; // -- maybe FIXME
-	      mpi->width=w2=((w+align)&(~align));
-	      mpi->chroma_width=w2>>mpi->chroma_x_shift;
+	      w2=((w+align)&(~align));
+	      if(mpi->width!=w2){
+	          // we have to change width... check if we CAN co it:
+		  int flags=vf->query_format(vf,outfmt); // should not fail
+		  if(!(flags&3)) mp_msg(MSGT_DECVIDEO,MSGL_WARN,"??? vf_get_image{vf->query_format(outfmt)} failed!\n");
+//		  printf("query -> 0x%X    \n",flags);
+		  if(flags&VFCAP_ACCEPT_STRIDE){
+	              mpi->width=w2;
+		      mpi->chroma_width=w2>>mpi->chroma_x_shift;
+		  }
+	      }
 	  }
 	  
 	  // IF09 - allocate space for 4. plane delta info - unused