accepts input from a JVConverter and decompresses it into its own buffer pool. These are immutable. If you want different parameters, close this one and open a new one
INTERFACE-- statistics --JVDecomp ; IMPORT Atom, JVBuffer, JVConverter, Jvs, OSError, Point, Thread, Tick; VAR decompError: Atom.T; (* error has come from this module *) TYPE T <: Public; Public = JVConverter.T OBJECT METHODS init ( in : JVConverter.T; READONLY dparams : Jvs.DcmpParams; READONLY cmap : Jvs.ColormapInfo; maxBuffers: CARDINAL := 2; factory : JVBuffer.Factory := NIL; server : Jvs.T := NIL ): T RAISES {OSError.E, Thread.Alerted}; (* initial setup of T. "in" provides the frames to decompress. The parameters specify the type of frames to be returned. "maxBuffers" specifies the maximum number of buffers allowed in the output buffer pool. "factory" is used for creating new buffers. If it is NIL, then a new one will be created; if "server" is non-NIL, then that will be used, otherwise a new one will be created. If "factory" is non-NIL, then "server" must be the same one used in "factory" *) outSize (): Point.T; (* A Jvs.T can only decompress to certain sizes, so call outSize to find out what size the buffers really are. If the converter is dead, or not yet ready, returns Point.Origin *) getInput (): JVConverter.T; (* returns input converter associated with the T *) END;
TYPE Statistics = JVConverter.Statistics OBJECT cumLatency: Tick.T; (* accumulation of difference between when the last pipeline stage finished with a buffer and this stage received it *) END; END JVDecomp.