[MPlayer-cvslog] CVS: main/libmpcodecs vf_fspp.c,1.9,1.10

Jindrich Makovicka CVS syncmail at mplayerhq.hu
Sun Dec 18 19:11:28 CET 2005


CVS change done by Jindrich Makovicka CVS

Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var2/tmp/cvs-serv25426

Modified Files:
	vf_fspp.c 
Log Message:
negative quality values allow postproc regardless of input

Index: vf_fspp.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_fspp.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- vf_fspp.c	18 Dec 2005 13:35:48 -0000	1.9
+++ vf_fspp.c	18 Dec 2005 18:11:26 -0000	1.10
@@ -88,6 +88,9 @@
     { 42,  26,  38,  22,  41,  25,  37,  21, },
 };
 
+#define VF_FSPP_BFRAMES 1
+#define VF_FSPP_FORCE 2
+
 struct vf_priv_s { //align 16 !
     uint64_t threshold_mtx_noq[8*2];
     uint64_t threshold_mtx[8*2];//used in both C & MMX (& later SSE2) versions
@@ -99,7 +102,7 @@
     int prev_q;
     uint8_t *src;
     int16_t *temp;
-    int bframes;
+    int flags;
     char *non_b_qp;
 };
 
@@ -543,11 +546,12 @@
     }
     if(vf->priv->log2_count || !(mpi->flags&MP_IMGFLAG_DIRECT)){
 	char *qp_tab= vf->priv->non_b_qp;
-	if(vf->priv->bframes || !qp_tab)
+	if((vf->priv->flags & VF_FSPP_BFRAMES) || !qp_tab)
 	    qp_tab= mpi->qscale;
 
 	if((qp_tab || vf->priv->qp)
-	   && (mpi->qscale_type == FF_QSCALE_TYPE_MPEG1 || mpi->qscale_type == FF_QSCALE_TYPE_MPEG2)){
+	   && ((vf->priv->flags & VF_FSPP_FORCE)
+	       || mpi->qscale_type == FF_QSCALE_TYPE_MPEG1 || mpi->qscale_type == FF_QSCALE_TYPE_MPEG2)){
 	    filter(vf->priv, dmpi->planes[0], mpi->planes[0], dmpi->stride[0], mpi->stride[0],
 		   mpi->w, mpi->h, qp_tab, mpi->qstride, 1);
 	    filter(vf->priv, dmpi->planes[1], mpi->planes[1], dmpi->stride[1], mpi->stride[1],
@@ -643,6 +647,7 @@
     int i=0, bias;
     int custom_threshold_m[64];
     int log2c=-1;
+    int bframes;
     
     vf->config=config;
     vf->put_image=put_image;
@@ -658,11 +663,15 @@
     //dsputil_init(&vf->priv->dsp, vf->priv->avctx);
     
     vf->priv->log2_count= 4;
-    vf->priv->bframes = 0;
+    vf->priv->flags = 0;
     
-    if (args) sscanf(args, "%d:%d:%d:%d", &log2c, &vf->priv->qp, &i, &vf->priv->bframes);
+    if (args) sscanf(args, "%d:%d:%d:%d", &log2c, &vf->priv->qp, &i, &bframes);
+    vf->priv->flags |= bframes ? VF_FSPP_BFRAMES : 0;
 
-    if( log2c >=4 && log2c <=5 )
+    if( log2c >=-5 && log2c <=-4 ) {
+        vf->priv->log2_count = -log2c;
+	vf->priv->flags |= VF_FSPP_FORCE;
+    } else if( log2c >=4 && log2c <=5 )
         vf->priv->log2_count = log2c;
     else if( log2c >= 6 )
 	vf->priv->log2_count = 5;




More information about the MPlayer-cvslog mailing list