[Ffmpeg-devel] Motion estimation related refactoring (was: Native H.264 encoder)

Michael Niedermayer michaelni
Thu Jan 18 18:17:09 CET 2007


Hi

On Thu, Jan 18, 2007 at 04:59:19PM +0100, Panagiotis Issaris wrote:
[...]
> > > Or should a new indepent context be created, that is not specific to
> > > mpeg (and related codecs) encoding but contains enough info to allow
> > > motion estimation? But, ... I'd guess the result would be nearly the
> > > same as moving all the needed stuff to MotionEstContext, right?
> > 
> > thats an option too, but one very important thing is that the context
> > can be accessed without an additional pointer dereference (like AVFrame)
> > what i mean is that the common variables like width/height/... could
> > be in a common context which is at the begin of MotionEstContext and
> > MotionEstContext is part of MpegEncContext and SnowContext
> Hmm... I am not sure I understand the above correctly. Are you
> suggesting something like this?
> 
> struct SomeNewContext {
> int width;
> ...
> };
> 
> struct MotionEstContext { 
>   SomeNewContext sn;
>   ... 
>   
> };
> 
> struct MpegEncContext { MotionEstContext me; ... };
> struct SnowContext { MotionEstContext me; ... };
> 
> 
> Or do imply moving all the fields needed for motion estimation out of
> MpegEncContext into MotionEstContext (at the top)?
> 
> struct MotionEstContext { 
> /* new MotionEstContext fields */
> int width;
> ... 
> /* older MotionEstContext fields */
> ...
> };
> 
> struct MpegEncContext { MotionEstContext me; ... };
> struct SnowContext { MotionEstContext me; ... };


i meant something like:
#define ME_FIELDS\
int width;\
int height;\
...

struct MotionEstContext { 
ME_FIELDS
}

struct SnowContext {
ME_FIELDS

...
}

struct MpegEncContext {
ME_FIELDS

...
}

but the more i think about it the less i like it ...

the problem with your suggestion above is that it would result in code like
s.me.width instead of s.width which is a big problem readability wise ...


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070118/08d0e882/attachment.pgp>



More information about the ffmpeg-devel mailing list