summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-16 03:39:13 +0000
committerrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-16 03:39:13 +0000
commit63962cda217ce5257a2fce08fd06f885eaabb211 (patch)
treeb216340b67c9ca361ff9756e2cf3ee2e2f7c1b75 /libmpcodecs
parent7b285a420d5e6be686e27d133d200bf08c470acc (diff)
downloadmpv-63962cda217ce5257a2fce08fd06f885eaabb211.tar.bz2
mpv-63962cda217ce5257a2fce08fd06f885eaabb211.tar.xz
improve handling of soft-telecined input (faster, fewer mistakes)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14952 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/pullup.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmpcodecs/pullup.c b/libmpcodecs/pullup.c
index 712c1b1eb6..ce4a4b0ec0 100644
--- a/libmpcodecs/pullup.c
+++ b/libmpcodecs/pullup.c
@@ -455,6 +455,14 @@ static void compute_affinity(struct pullup_context *c, struct pullup_field *f)
int max_l=0, max_r=0, l;
if (f->flags & F_HAVE_AFFINITY) return;
f->flags |= F_HAVE_AFFINITY;
+ if (f->buffer == f->next->next->buffer) {
+ f->affinity = 1;
+ f->next->affinity = 0;
+ f->next->next->affinity = -1;
+ f->next->flags |= F_HAVE_AFFINITY;
+ f->next->next->flags |= F_HAVE_AFFINITY;
+ return;
+ }
for (i = 0; i < c->metric_len; i++) {
l = f->comb[i] - f->next->comb[i];
if (l > max_l) max_l = l;