changeset 13267:8d4a16cb1e97

pullup docs + new feature for slow cpus :)
author rfelker
date Mon, 06 Sep 2004 21:25:59 +0000
parents 914749a92b28
children 125f1b58a325
files DOCS/man/en/mplayer.1 libmpcodecs/vf_pullup.c
diffstat 2 files changed, 15 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1	Mon Sep 06 20:11:37 2004 +0000
+++ b/DOCS/man/en/mplayer.1	Mon Sep 06 21:25:59 2004 +0000
@@ -3922,7 +3922,7 @@
 filters appear to be much more accurate.
 .
 .TP
-.B pullup[=jl:jr:jt:jb:sb]\ 
+.B pullup[=jl:jr:jt:jb:sb:mp]\ 
 Third-generation pulldown reversal (inverse telecine) filter,
 capable of handling mixed hard-telecine, 24 fps progressive, and 30
 fps progressive content.
@@ -3941,6 +3941,18 @@
 pullup generating an occasional mismatched frame, but it may also
 cause an excessive number of frames to be dropped during high motion
 sequences.
+Conversely, setting it to -1 will make pullup match fields more
+easily.
+This may help processing of video where there is slight blurring
+between the fields, but may also cause there to be interlaced frames
+in the output.
+The mp (metric plane) option may be set to 1 or 2 to use a chroma
+plane instead of the luma plane for doing pullup's computations.
+This may improve accuracy on very clean source material, but more
+likely will decrease accuracy, especially if there is chroma noise
+(rainbow effect) or any grayscale video.
+The main purpose of setting mp to a chroma plane is to reduce cpu load
+and make pullup usable in realtime on slow machines.
 .br
 .I NOTE:
 Always follow pullup with the softskip filter when encoding to ensure
--- a/libmpcodecs/vf_pullup.c	Mon Sep 06 20:11:37 2004 +0000
+++ b/libmpcodecs/vf_pullup.c	Mon Sep 06 21:25:59 2004 +0000
@@ -77,7 +77,6 @@
 		c->stride[1] = c->stride[2] = mpi->chroma_width;
 		c->stride[3] = c->w[3];
 		c->background[1] = c->background[2] = 128;
-		c->metric_plane = 0;
 	}
 
 	if (gCpuCaps.hasMMX) c->cpu |= PULLUP_CPU_MMX;
@@ -324,8 +323,9 @@
 	c->junk_left = c->junk_right = 1;
 	c->junk_top = c->junk_bottom = 4;
 	c->strict_breaks = 0;
+	c->metric_plane = 0;
 	if (args) {
-		sscanf(args, "%d:%d:%d:%d:%d", &c->junk_left, &c->junk_right, &c->junk_top, &c->junk_bottom, &c->strict_breaks);
+		sscanf(args, "%d:%d:%d:%d:%d:%d", &c->junk_left, &c->junk_right, &c->junk_top, &c->junk_bottom, &c->strict_breaks, &c->metric_plane);
 	}
 	return 1;
 }