[MPlayer-dev-eng] New inverse-telecine filter
Zoltan Hidvegi
mplayer at hzoli.2y.net
Sun Dec 7 21:59:09 CET 2003
> > --- libmpcodecs/vf_pullup2.c-save2 Sat Dec 6 18:11:27 2003
> > +++ libmpcodecs/vf_pullup2.c Sat Dec 6 18:17:27 2003
> > @@ -896,7 +896,7 @@
> > if (!p->planes[0][0]) init(p, mpi);
> >
> > if (mpi->type == MP_IMGTYPE_TEMP ||
> > - (mpi->type == MP_IMGTYPE_IPB && (mpi->flags & MP_IMGFLAG_READABLE)))
> > + (mpi->type == MP_IMGTYPE_IPB && !(mpi->flags & MP_IMGFLAG_READABLE)))
>
> This was the first thing I tried. No help. It just switches which pair
> of buffers get used for I/P and which get used for B.
>
> > - dmpi = vf_get_image(vf->next,mpi->imgfmt,MP_IMGTYPE_EXPORT,0,p->w, p->h);
> > + dmpi = vf_get_image(vf->next, mpi->imgfmt, MP_IMGTYPE_EXPORT,
> > + MP_IMGFLAG_PRESERVE|MP_IMGFLAG_READABLE,
> > + p->w, p->h);
>
> Readable and preserve flags are meaningless with export-type image.
> Anyway I just tried this to make sure, and it doesn't help either...
Can you try -vf filmdint=diff_thres=9999/comb_thres=9999/sad_thres=9999/io=1:1
This should be a pass-through EXPORT filter, it does not change
anything, and does the same kind of allocation as vf.c, I do not see
how could this ever fail? If you still see any artifacts, I may
suspect compiler or some other weird bug. I use gcc-3.3.2. If this
does not show artifacts, and -vo md5 compares to the unfiltered
output, then the problem is in the deinterlace code. And the
artifacts you had does not seem to propagate via motion-compensation,
which also suggests that it may be happening in the dint code. Does
it still happen with dint_thres=256 (with the other thresholds at
default, not at 9999)? Does it happen with unoptimized code?
Also, your pullup filter does not work with ffmpeg MPEG-4, which
assumes that the IP frames alternate (probably does partial update).
Zoli
More information about the MPlayer-dev-eng
mailing list