[MPlayer-dev-eng] mp-g2 pre14

Arpi arpi at thot.banki.hu
Mon Apr 21 21:09:35 CEST 2003


Hi,

> On the other hand, is full automatic filter insertion really needed?

yes

> Perhaps "vf_vd" could just wrap the codecs, and call swscaler itself
> rather than inserting a filter if it's needed...

it's not only needed between codec and filters. it may be inserted anywhere,
between filters or between last filter and vo. see vf_next_config()

also, swscale is not the only converter, there is aplette, expand (stride
conversions for export->limited stride buffer case) and may be others.
don't limit it...

> Or yet another idea... Just have a dummy format conversion filter
> that's always inserted at the beginning and end of the chain, but have
> it just pass the mpi through unmodified when no conversion is needed.

it could be probably done, by modifying swscale (and all other conversion
filters) to do nothing by default, just passthru data.
but it still doesn't solve the above problems...

> Which do you like better? The dummy filter sounds sort of silly, but I
> don't really like the extra complication (at least conceptually) that
> your solution adds to filter implementation. A filter should ideally
> be able to call the previous filter and get an image returned, without
> having to setup state and then wait for another function call to a
> different entry point to actually get the image back...

agree...
also it doesn't solve an other problem in vf_vo2 we didn't talked before,
but the pulling method would help there.

what abuot a mix of the 2 methods?
let's see:
- we want to allow filters to get more than 1 frames easily
- we want to stop filters returing more than 1 frame at a call
- we want to allow filters to return more than 1 frames in total
- we want to stop filters calling their parent directly, via stack

So, what about changing put_frame -> process_frame, returning mp_image,
as we wanted, but the chain would be handled by a vf core function, instead
of the filters. So keep the mpi parameter of process_image (was put_image),
but allow it to be null. null means 'do you have more frames you generated?'


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu



More information about the MPlayer-dev-eng mailing list