VLGETFILLED(3dm)					      VLGETFILLED(3dm)
      vlGetFilled, vlGetFilledByNode, vlDMBufferGetFilledByNode - get the
     number of valid entries in	a VLBuffer or given path.
     #include <dmedia/vl.h>
     int vlGetFilled(VLServer server, VLPath path, VLBuffer buffer);
     int vlGetFilledByNode(VLServer server, VLPath path, VLNode	node);
     int vlDMBufferGetFilledByNode(VLServer server, VLPath path, VLNode	node);
     server    expects the VL server to	use
     path      expects the VLPath for which you	want a filled count
     node      expects the VL_MEM VLNode on the	path
     buffer    expects the VLBuffer on the VLPath for which
	       you want	a filled count
     vlGetFilled(3dm) only returns useful information for a path under the
     following circumstances: the path must have a VL_MEM node and a VLBuffer.
     The path must already be set up (see vlSetupPaths(3dm)).  The path's
     transfer must already have	begun (see vlBeginTransfer(3dm)).
     For a VLbuffer in a video to memory path, vlGetFilled(3dm)	returns	the
     number of entries in the VLBuffer which have been placed there by the
     device (using vlPutValid(3dm)) but	have not yet been claimed by the
     application (using	vlGetNextValid(3dm)).
     For a VLBuffer in a memory	to video path, vlGetFilled(3dm)	returns	the
     number of entries in the VLBuffer which have been placed there by the
     application (using	vlPutValid(3dm)) but have not yet been claimed by the
     device (using vlGetNextValid(3dm)).
     vlDMBufferGetFilledByNodevlGetFilled(3dm) for paths that	use DMbufferpools instead of
     VLBuffers.
     For a DMbufferpool	in a video to memory path, vlDMBufferGetFilled(3dm)
     returns the number	of entries in the DMbufferpool which have been placed
     there by the device (using	vlDMBufferPutValid(3dm)) but have not yet been
     claimed by	the application	(using vlDMBufferGetValid(3dm)).
     For a DMbufferpool	in a memory to video path, vlDMBufferGetFilled(3dm)
     returns the number	of entries in the DMbufferpool which have been placed
     there by the application (using vlDMBufferPutValid(3dm)) but have not yet
     been claimed by the device	(using vlDMBufferGetValid(3dm)).
     For a video to memory path, vlGetFilledByNode(3dm)	returns	the number of
     data events which the device has placed into the application's event
     queue but which have not yet been claimed by the application.
									Page 1
VLGETFILLED(3dm)					      VLGETFILLED(3dm)
     For a memory to video path, vlGetFilledByNode(3dm)	returns	the number of
     data events an application	has queued for output to the device using
     vlDMBufferSend(3dm) (multiple sends of the	same buffer count as different
     data events), but which the device	has not	yet claimed.
     vlGetFilledByNode(3dm) is obsolete	and works on O2	platforms only (see
     vlintro(3dm)).
     If	successful, vlGetFilled	and vlGetFilledByNode return a positive	count.
     A value of	-1 indicates an	error, and vlGetErrno(3dm) can be called to
     return the	error code.
     For paths using VLBuffers,	the vlGetLatestValid(3dm) function may call
     vlGetNextValid(3dm) several times,	so it may cause	the value returned by
     vlGetFilled(3dm) to decrease by more than one.
     For video to memory paths,	you can	use vlGetFilled(3dm) and
     vlGetFilledByNode(3dm) to determine how much new data is currently
     available to be received by the application.  This	provides a lower bound
     on	the number of times an application may receive data by calling
     routines such as vlGetNextValid(3dm).
     For memory	to video paths,	you can	not use	these functions	to determine
     how much space is currently available in an output	VLBuffer or
     DMbufferpool (which would give you	a lower	bound on the number of times
     you will successfully be able to call vlGetNextFree(3dm) or
     dmBufferAllocate(3dm) to reserve space).  If you are using	traditional
     VLBuffers,	there is currently no way to determine this except simply
     calling vlGetNextFree(3dm)	and seeing if it works.	 If you	are using
     DMbufferpools, you	can use	the dmBufferGetPoolState(3dm) call to
     determine the current amount of free space	in the buffer pool.
     Also note for memory to video paths:  the device may choose to claim
     pending output buffers or data events at any time between when the
     application sends them and	when they need to be output.  Therefore, on
     some devices, these functions may not be a	good indication	of the amount
     of	data buffered up for output.  The UST/MSC functions (see
     vlGetFrontierMSC(3dm)) provide a much better indication of	the current
     amount of buffering for both video	to memory and memory to	video paths.
     vlGetFrontierMSC(3dm), vlGetUSTPerMSC(3dm)
									PPPPaaaaggggeeee 2222 [ Back ]
 |