[MPlayer-dev-eng] [PATCH] Fix osd flickering with expand

Ivan Kalvachev ikalvachev at gmail.com
Thu Mar 16 22:57:41 CET 2006


2006/3/16, Alban Bedel <albeu at free.fr>:
>
> Hi,
>
> To test just run 'mplayer mymovie -vf expand=osd=1 -dr' osd will flicker
> a bit, -double doesn't help. The pb seems to be with the slices. In
> start slice expand get a TEMP buffer, the attached fix make it get what
> the previous filter wanted. That seems logical to me it but i'm not sure
> if it's the right fix.

There is something wrong. You are actually getting another buffer just
like the one you had just allocated.

Let say that get_image() allocates src_mpi. Then start_slice must
allocate the dst_image. It must be the same as the one that would be
allocated when put_image receves src_mpi and tries to allocate and
pass dst_mpi to the next filter.

In other words it must the same as the one allocated in
vf_expand.c::put_image::347

Well giving that expand also draws subtitles, I guess TEMP is the right choice.
How about the posibility to have 2 different TEMP mpi allocated at
once( like the static (READABLE)  in IP/B model)

> BTW regarding the whole slice buisness, wouldn't it be much simpler to
> ditch start_slice, handle that in get image and pass the mpi to
> draw_slice() ? That would be simpler (the code in get image would need
> very few modification) and we would get rid of that vf->dmpi hack.

It is enough messy at the moment.
I think it would be better if start_slice is called by put_image to
allocate buffer and in non-slice case.




More information about the MPlayer-dev-eng mailing list