[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec kmvc.c, NONE, 1.1 Makefile, 1.250, 1.251 allcodecs.c, 1.134, 1.135 avcodec.h, 1.461, 1.462

Kostya kostya.shishkov
Tue Apr 3 07:15:32 CEST 2007


On Mon, Apr 02, 2007 at 02:29:26AM +0200, Michael Niedermayer wrote:
> Hi
> 
> On Fri, Apr 07, 2006 at 07:00:00PM +0200, Konstantin Shishkov CVS wrote:
> > Update of /cvsroot/ffmpeg/ffmpeg/libavcodec
> > In directory mail:/var2/tmp/cvs-serv12938/libavcodec
> > 
> > Modified Files:
> > 	Makefile allcodecs.c avcodec.h 
> > Added Files:
> > 	kmvc.c 
> > Log Message:
> > KMVC (used in Worms games) decoder. Works fine with samples from MPHQ
> [...]
> > #define kmvc_init_getbits(bb, src)  bb.bits = 7; bb.bitbuf = *src++;
> > 
> > #define kmvc_getbit(bb, src, res) {\
> >     res = 0; \
> >     if (bb.bitbuf & (1 << bb.bits)) res = 1; \
> >     bb.bits--; \
> >     if(bb.bits == -1) { \
> >         bb.bitbuf = *src++; \
> >         bb.bits = 7; \
> >     } \
> > }
> 
> is there a special reason why this is a macro and no inline function or
> maybe even get_bits1() standard bitstream stuff ... ?

It cannot be get_bits1() as bits are grouped by 8 and are interwoven into
data stream so it may be like this:
 <pixel> <pixel> <bits> <pixel> <pixel> <pixel> <bits> <pixel> <bits>
Also there is no need to use bitstream as everything is read by bytes.

About macro vs. inline function - Is there any rule when to use which?
I prefer to use macros in such situations.
 
> 
> [...]
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Breaking DRM is a little like attempting to break through a door even
> though the window is wide open and the only thing in the house is a bunch
> of things you dont want and which you would get tomorrow for free anyway






More information about the ffmpeg-cvslog mailing list