[XviD-devel] [CVS commit] dev-api-4 -- xvid_decraw ported + small fixes to xvid_encraw

suxen_drol suxen_drol at hotmail.com
Thu Mar 13 22:56:59 CET 2003


On Wed, 12 Mar 2003 00:42:42 +0100 Edouard Gomez <ed.gomez at free.fr> wrote:

> Ok, men, we have working programs to start hacking things on this
> branch... including my RC framework, there're still some plans for
> plugin interface so I'll wait a bit before rushing on RC.
> 
> 2003-03-11 23:37:06 GMT	Edouard Gomez <ed.gomez at free.fr>	patch-9
> 
>     Summary:
>       Changed xvid_decraw option handling for -d/-m.
>     Revision:
>       xvidcore--devapi4--1.0--patch-9
> 
>     -d and -m options were boolean so option values were not needed.
> 
>     modified files:
>      examples/xvid_decraw.c
> 
> 
> 2003-03-11 23:30:16 GMT	Edouard Gomez <ed.gomez at free.fr>	patch-8
> 
>     Summary:
>       Fixed frame counting in xvid_encraw.
>     Revision:
>       xvidcore--devapi4--1.0--patch-8
> 
>     We were branching before incrementing  the frame counter when core was
>     buffering frames.  This was resulting  in wrong frame  counting during
>     the buffering phase.
> 
>     modified files:
>      examples/xvid_encraw.c
> 
> 
> 2003-03-11 23:07:01 GMT	Edouard Gomez <ed.gomez at free.fr>	patch-7
> 
>     Summary:
>       Ported xvid_decraw to new API.
>     Revision:
>       xvidcore--devapi4--1.0--patch-7
> 
>     xvid_decraw  has been  ported to  new  API. It  basically works  fine,
>     however i'm not completly staisfied. If I do a step by step run then i
>     can see  that second frame  is reported as  a VOL decoding  though the
>     first IFrame has been consumed. This makes xvid_decraw does not report
>     correctly frames' length.
>     
>     Except  that, xvid_decraw  works well  enough  to activate  it in  the
>     makefile.
> 
>     modified files:
>      examples/Makefile examples/xvid_decraw.c
> 

ed. i have commited the new plugin architecture, and made some changes
to xvid_encraw: struct memset, improved bitstream vs. frame printf
output, packed -p support.

about xvid plugins:
a plugin is a function. the encoding applications passes encore an array
of plugin descriptors via xvid_enc_create_t . each descriptor consists
of a plugin function pointer, and pointer to some plugic-specific data.

plugins are instance based. libxvidcore calls the plugins with
XVID_PLG_CREATE/DESTROY in the same fashion as applications call
xvid_encore or decore.

during encoding, libxvidcore will call the plugin before and after the
each frame is encoded. this gives the plugin access to the current frame
image, and reference image, before and after encoding. and lets the
plugin control quantizers, frametypes, vol/vop parameters, the dquant
table (and anything else we can think of).

plugins should (hopefully) make extending xvid easier, whilst keeping
the encoder.c internals simpler.

some uses:
* rate control intergration
* adaptive quantization
* image filtering, though this is already available in avisynth/transcode
* analysis calcaulations (psnr, sse, etc).
* real-time output displays. ie. plotting frame size, type in an xwindow
whilst we encode.

cya.
-- pete




More information about the XviD-devel mailing list