diff options
author | rfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-03-16 03:39:13 +0000 |
---|---|---|
committer | rfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-03-16 03:39:13 +0000 |
commit | 63962cda217ce5257a2fce08fd06f885eaabb211 (patch) | |
tree | b216340b67c9ca361ff9756e2cf3ee2e2f7c1b75 /libmpcodecs/pullup.c | |
parent | 7b285a420d5e6be686e27d133d200bf08c470acc (diff) | |
download | mpv-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/pullup.c')
-rw-r--r-- | libmpcodecs/pullup.c | 8 |
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; |