On Sat, Mar 8, 2008 at 11:59 PM,  <[EMAIL PROTECTED]> wrote:
>
>  We need to introduce a change in the stm module API and in the filters
>  management: the memory should be allocated by the caller and should be
>  possible to apply a filter using repeated calls. As in:
>
>   /* create a stm and install filters for read... */
>   /* allocate a 10k buffer... */
>   /* read 10k and check for eof... */
>   /* allocate 10k... */
>   /* read 10k and check for eof... */
>   ...
>

I don't understand this scheme - a stream tells you how long its input
data segment is.   In the case of an ASCII85 or ASCIIHEX stream, you
only need to read 5 and 2 bytes at a time to decode; the operating
system will handle the file buffering.  For the decoded stream,
ASCII85 and ASCIIHEX have predictable sizes; in fact you always know
the length of the decoded ASCIIHEX and you can predict the ASCII85
result to within 4 characters.   Except for very large streams such as
audio and video, I don't see a point in piecemeal memory allocation;
that will only result in poor performance and a horribly fragmented
memory table.  I also don't understand why the caller should  allocate
memory when in principle the caller should be ignorant of the details
of the filter behavior.  I would not expect any module except for the
filter itself to be able to guess and successfully allocate memory in
a sensible way.

- Cirilo


Reply via email to