[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [OpenDivX] decore API feature requests

Hello Arpi,

> Hi,
> Just started to change MPlayer to use decore4linux, but I got some
> problems:
> - I want to get pointers and strides to YV12 planes, without any
>   conversion or extra memcpy. currently it isn't possible :(((
>   (in old versions, up to 0.48 there was a callback to convert_linux())
>   You should allow users to set up their own (and fast) YUV converter!!!
>   A possible and simlpe implementation is adding a special colorspace
>   format called DEC_USER, and then store pointers and strides into
>   a structure pointed by *bmp (insetad of storing image there).
>   Other way is using *bmp as a pointer to conversion callback function.


> - When will be MMX postprocessing code for linux available?
>   The C version is extermly sloooow and so unusable.
>   I suggest including my optimized version of postprocess.c until
>   it finished. Linux users also want fast postprocessing...

We plan to start significant rewrite of postproc code in a couple of
weeks. Nobody here seems to be eager to port postproc to Linux
until new algorithms are ready. Can you describe what your version of
postprocess.c does?

> - decore_init and decore_release are static, but declared non-static in .h


> - there are -D_LINUX in Makefile, but #ifdef references to LINUX (without
>   the underscore) -> occurs many symbol redefinition and other warnings


> - doc (Codec Core Interface.txt) is outdated, at least about memory
>   allocation...
>   btw it's somehow bad... at least for hte future. in current version
>   there is a stuct with fields for currently used memory blocks.
>   users have to allocate them and pass pointers back. but if you add
>   a new field for a new memory block, then old progs will segfault :(
>   I prefer a malloc callback here, or just using a single memory size
>   and memory pointer.

With current CVS version you can simply do a 'memset(&param.buffers, 0,
sizeof(DEC_BUFFERS))'. I will update the doc.

> - that bswapl asm instruction doesn't compiles under linux, at least
>   with binutils-2.9.1 (yes, this one can be compiler bug...)

With 'as' from the instruction is perfectly recognizable. Try
to rename it into bswap if it doesn't work for you.

> - and finally:
> Does it (current CVS version) work at all?
> Finally I get it compile and run, but:
> MMX version: segfaults...
> non-MMX: works, but buggy, motion vectors are bad.
> (I tried to play a file made with 0.47, isn't it compatible?)

It works with files from 0.48+ and should be compatible with 0.47 too,
though I didn't check that.

Best regards,
mailto:[email protected] or [email protected]

[Team GADGET]  [Team Two Divided By Zero]  [Team Hackzone.ruArpi [email protected]

OpenDivX mailing list
[email protected]

Reply To Poster

Local References / HOW-TO / FAQs