dmACGetMinOutputSize man page on IRIX

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



dmACGetMinInputSize(3dm)			      dmACGetMinInputSize(3dm)

NAME
     dmACGetMinInputSize, dmACGetMinOutputSize - auxiliary routines for
     querying input and output buffer sizes for dmACConvert.

SYNOPSIS
     #include <dmedia/dm_audioconvert.h>

     DMstatus dmACGetMinInputSize(
		  DMaudioconverter converter,
		  int outputSize,
		  int *minInputSize)

     DMstatus dmACGetMinOutputSize(
		  DMaudioconverter converter,
		  int inputSize,
		  int *minOutputSize)

PARAMETERS
     converter	     is a DMaudioconverter handle created by a previous call
		     to the creation method dmACCreate(3dm).

     outputSize	     is a integer set to the requested output buffer size.
		     The units will be bytes if compressing, otherwise frames.

     minInputSize    is a pointer to integer which will be set to the minimum
		     allowable input buffer size for the given outputSize.
		     The units will be bytes if decompressing, otherwise
		     frames.

     inputSize	     is a integer set to the requested input buffer size.  The
		     units will be bytes if decompressing, otherwise frames.

     minOutputSize   is a pointer to integer which will be set to the minimum
		     allowable output buffer size for the given inputSize.
		     The units will be bytes if compressing, otherwise frames.

RETURNED VALUE
     Returns DM_SUCCESS if the operation succeeds.  If DM_FAILURE is returned,
     the error number and/or message can be retrieved via dmGetError(3dm).

DESCRIPTION
     The handle passed to these routines is declared as follows:

     typedef struct _DMaudioconverter *DMaudioconverter;

     dmACGetMinInputSize and dmACGetMinOutputSize are a faster way to query
     the value of the two audio conversion parameters DM_AUDIO_MIN_INPUT_LEN
     and DM_AUDIO_MIN_OUTPUT_LEN.  These values may also be retrieved via
     dmACGetParams(3dm) after a call to dmACSetParams(3dm) with the parameter
     DM_AUDIO_MAX_REQUEST_LEN set to either the input or output size,
     depending on the conversion mode.

									Page 1

dmACGetMinInputSize(3dm)			      dmACGetMinInputSize(3dm)

NOTE
     Only one of these two routines will be valid for any given configuration
     of the audio converter handle -- more specifically, dependent on the
     value of DM_AUDIO_PROCESS_MODE.  A fixed input size indicates the
     converter is running in DM_AUDIO_PROCESS_PUSH mode;  a fixed output size
     similarly indicates DM_AUDIO_PROCESS_PULL mode.  A call to the opposite
     routine will return DM_FAILURE, and the error value will be set to
     DM_AUDIO_BAD_REQUEST.

     Typically, buffer sizes only need be set and queried if the audio data is
     being compressed, decompressed, or rate-converted. In all other cases,
     the output buffer length (in frames) will and must equal the input
     length.

EXAMPLE
     If an application wishes to compress blocks of data to be written to a
     file or a device, the sequence might look like this (error checking has
     been omitted for brevity):

	 #include <dmedia/dm_params.h>
	 #include <dmedia/dm_audioconvert.h>

	 DMaudioconverter converter;
	 DMparams *inputParams, *outputParams;

	 /* create the parameter lists and the converter */
	 dmParamsCreate(&inputParams);
	 dmParamsCreate(&outputParams);
	 dmACCreate(&converter);

	 /* set up input params for 16bit, mono, 44.1K */
	 dmSetAudioDefaults(inputParams, 16, 44100, 1);

	 /* set up output params for GSM compression */
	 dmSetAudioDefaults(outputParams, 16, 44100, 1);
	 dmParamsSetString(params, DM_AUDIO_COMPRESSION, DM_AUDIO_GSM);

	 /* configure the converter */
	 dmACSetParams(converter, inputParams, outputParams);

	 /* loop forever, compressing data from some buffer */
	 while(1) {
	  int inputFrames; /* app sets this */
	  int outputBytes; /* and queries for this */
	  void *inBuffer = getInputBuffer(&inputFrames);
	  void *outBuffer;

	  /* do the query */
	  dmACGetMinOutputSize(converter, inputFrames, &outputBytes);

	  /* then perhaps the output buffer will be dynamically alloc'd */
	  outBuffer = getLargeEnoughOutBuffer(outputBytes);

									Page 2

dmACGetMinInputSize(3dm)			      dmACGetMinInputSize(3dm)

	  /* now we can compress our data into that buffer safely */
	  dmACConvert(converter, inBuffer, outBuffer,
		   &inputFrames, &outputBytes);
	  ...
	 }

SEE ALSO
     dmACCreate(3dm), dmACSetParams(3dm), dmACGetParams(3dm),
     dmACConvert(3dm), dmACReset(3dm), dmACDestroy(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