clCreateBuf man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



cl Create/Destroy Implicit Buffers(3dm)

NAME
     clCreateBuf, clDestroyBuf, clQueryBufferHdl, clQueryHandle - Create and
     destroy implicit buffers, and find related handles.

SYNOPSIS
     #include <dmedia/cl.h>

     CLbufferHdl clCreateBuf(CLhandle handle, int bufferType,
	 int blocks, int blockSize, void **bufferPtr1)
     int clDestroyBuf(CLbufferHdl bufferHdl)
     CLbufferHdl clQueryBufferHdl(CLhandle handle,
	 int bufferType, void **bufferPtr2)
     CLhandle clQueryHandle(CLbufferHdl bufferHdl)

ARGUMENTS
     handle	  A handle to the compressor or decompressor.

     bufferType	  The type of buffer, either CL_BUF_FRAME or
		  CL_BUF_COMPRESSED.

     blocks	  The number of blocks in the buffer.

     blockSize	  The size in bytes of each block.  This must be equal to the
		  frame size for CL_BUF_FRAME, and 1 for CL_BUF_COMPRESSED.

     bufferPtr1	  A pointer to a pointer to the buffer space. If bufferPtr1 is
		  NULL, clCreateBuf will allocate the blocks.  If bufferPtr1
		  is not NULL and *bufferPtr1 is NULL, clCreateBuf will
		  allocate the blocks and set *bufferPtr1 to point to the new
		  space.  Otherwise, the space at *bufferPtr1 will be managed
		  as the ring buffer.  See the NOTES section below for more
		  information.

     bufferHdl	  The handle to the buffer.

     bufferPtr2	  A pointer to a pointer to the buffer space.  If bufferPtr2
		  is not NULL, clQueryBufferHdl will set *bufferPtr2 to point
		  to the buffer space.

DESCRIPTION
     clCreateBuf is used to create a CL ring buffer.  These ring buffers are
     needed for the "Implicit Buffering" model of data processing, where
     buffers are not specified in the processing call.	Implicit buffering is
     invoked for clCompress and clDecompress by giving NULL as the frameBuffer
     or compressedBuffer.

     Compressors and decompressors have buffers of type CL_BUF_FRAME and
     CL_BUF_COMPRESSED.

     Buffer space may be allocated by either the application or the library.
     The former is useful if there already exists memory space that contains

									Page 1

cl Create/Destroy Implicit Buffers(3dm)

     data to be processed, or holds results to be read.	 In this case,
     creating the ring buffer directly from this memory saves on potential
     copies to or from the CL buffer.

     clDestroyBuf is used to deallocate the CL buffer.	clQueryBufferHdl is
     used to find the buffer handle from a compressor or decompressor handle.
     clQueryHandle is used to find the processing object handle from a buffer
     handle.

     An application may read from and write to these buffers using the
     additional calls clQueryFree, clUpdateHead, clQueryValid, clUpdateTail,
     and clDoneUpdatingHead.

NOTES
     Some schemes may have constraints on the alignment of their buffers.
     Specifying the bufferPtr1 argument to clCreateBuf as NULL and then using
     only the read/write functions will allow the application to work with
     every scheme.

RETURN VALUES
     clCreateBuf returns the buffer handle used in subsequent buffering calls,
     or NULL on failure.  clDestroyBuf returns SUCCESS, or a negative error
     code on failure.  clQueryBufferHdl returns the handle to the buffer, or
     NULL on failure.  clQueryHandle returns the handle to the processing
     object, or NULL on failure.

EXAMPLE
	  #include <dmedia/cl.h>
	  CLhandle  handle;
	  CLbufferHdl	 bufferHdl;
	  void		 *buffer;
	   ...
	  clOpenCompressor(CL_MVC1_SOFTWARE, &handle);
	   ...
	  /* Create a buffer of 10 blocks of size 10000 */
	  buffer = malloc(10*10000);
	  bufferHdl = clCreateBuf(handle, CL_BUF_FRAME, 10, 10000, &buffer);
	  bufferHdl = clQueryBufferHdl(handle, CL_BUF_FRAME, &buffer);
	  handle = clQueryHandle(bufferHdl);
	   ...
	  clDestroyBuf(bufferHdl);
	  clCloseCompressor(handle);

									Page 2

cl Create/Destroy Implicit Buffers(3dm)

SEE ALSO
     CLintro(3dm), clQueryFree(3dm), clUpdateHead(3dm), clQueryValid(3dm),
     clUpdateTail(3dm), clDoneUpdatingHead(3dm)

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net