changeset 17225:ec9888363742

reverse the H264 hack
author henry
date Mon, 19 Dec 2005 18:04:37 +0000
parents 0a4f5b86f152
children 255b14c0bc36
files DOCS/man/en/mplayer.1 libmpcodecs/vf_fspp.c
diffstat 2 files changed, 11 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1	Sun Dec 18 18:13:09 2005 +0000
+++ b/DOCS/man/en/mplayer.1	Mon Dec 19 18:04:37 2005 +0000
@@ -4925,10 +4925,7 @@
 .
 .TP
 .B fspp[=quality[:qp[:strength[:bframes]]]]
-Faster version of the simple postprocessing filter. Turned off by
-default for H264 content as this filter only causes excessive blur
-with it. You can force filtering even with H264 using negative values
-for quality parameter.
+faster version of the simple postprocessing filter
 .RSs
 .IPs <quality>
 4\-5 (equivalent to spp; default: 4)
--- a/libmpcodecs/vf_fspp.c	Sun Dec 18 18:13:09 2005 +0000
+++ b/libmpcodecs/vf_fspp.c	Mon Dec 19 18:04:37 2005 +0000
@@ -88,9 +88,6 @@
     { 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
@@ -98,11 +95,11 @@
     int log2_count;
     int temp_stride;
     int qp;
-    int qscale_type;
+    int mpeg2;
     int prev_q;
     uint8_t *src;
     int16_t *temp;
-    int flags;
+    int bframes;
     char *non_b_qp;
 };
 
@@ -461,7 +458,7 @@
 		    t=x+x0-2; //correct t=x+x0-2-(y&1), but its the same 
 		    if (t<0) t=0;//t always < width-2
 		    t=qp_store[qy+(t>>qps)];
-		    if(p->qscale_type == FF_QSCALE_TYPE_MPEG2) t>>=1; //copy p->mpeg2,prev_q to locals?
+		    if(p->mpeg2) t>>=1; //copy p->mpeg2,prev_q to locals?
 		    if (t!=p->prev_q) p->prev_q=t, mul_thrmat_s(p, t);
 		    column_fidct_s((int16_t*)(&p->threshold_mtx[0]), block+x*8, block3+x*8, 8); //yes, this is a HOTSPOT
 		}
@@ -538,7 +535,7 @@
 	dmpi=vf->dmpi;
     }
 
-    vf->priv->qscale_type= mpi->qscale_type;
+    vf->priv->mpeg2= mpi->qscale_type;
     if(mpi->pict_type != 3 && mpi->qscale && !vf->priv->qp){
 	if(!vf->priv->non_b_qp)
 	    vf->priv->non_b_qp= malloc(mpi->qstride * mpi->h);
@@ -546,12 +543,10 @@
     }
     if(vf->priv->log2_count || !(mpi->flags&MP_IMGFLAG_DIRECT)){
 	char *qp_tab= vf->priv->non_b_qp;
-	if((vf->priv->flags & VF_FSPP_BFRAMES) || !qp_tab)
+	if(vf->priv->bframes || !qp_tab)
 	    qp_tab= mpi->qscale;
 
-	if((qp_tab || vf->priv->qp)
-	   && ((vf->priv->flags & VF_FSPP_FORCE)
-	       || mpi->qscale_type == FF_QSCALE_TYPE_MPEG1 || mpi->qscale_type == FF_QSCALE_TYPE_MPEG2)){
+	if(qp_tab || vf->priv->qp){
 	    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],
@@ -647,7 +642,6 @@
     int i=0, bias;
     int custom_threshold_m[64];
     int log2c=-1;
-    int bframes;
     
     vf->config=config;
     vf->put_image=put_image;
@@ -663,15 +657,11 @@
     //dsputil_init(&vf->priv->dsp, vf->priv->avctx);
     
     vf->priv->log2_count= 4;
-    vf->priv->flags = 0;
+    vf->priv->bframes = 0;
     
-    if (args) sscanf(args, "%d:%d:%d:%d", &log2c, &vf->priv->qp, &i, &bframes);
-    vf->priv->flags |= bframes ? VF_FSPP_BFRAMES : 0;
-
-    if( log2c >=-5 && log2c <=-4 ) {
-        vf->priv->log2_count = -log2c;
-	vf->priv->flags |= VF_FSPP_FORCE;
-    } else if( log2c >=4 && log2c <=5 )
+    if (args) sscanf(args, "%d:%d:%d:%d", &log2c, &vf->priv->qp, &i, &vf->priv->bframes);
+
+    if( log2c >=4 && log2c <=5 )
         vf->priv->log2_count = log2c;
     else if( log2c >= 6 )
 	vf->priv->log2_count = 5;