LDicomWaveformGroup::SaveAudio

#include "Ltdic.h"

L_UINT16 LDicomWaveformGroup::SaveAudio(pszFilename, uFlags = 0)

L_CHAR* pszFilename;

/* file name */

L_UINT16 uFlags;

/* reserved for future use */

Creates an audio (wave) file from the channels in the waveform group.

Parameter

Description

pszFilename

Name of the audio file to be created.

uFlags

Reserved for future use. Pass 0.

Returns

0

The function was successful.

> 0

An error occurred. Refer to Return Codes.

Comments

This function is very useful for extracting audio (wave) data from a DICOM object of type "Basic Voice Audio" (1.2.840.10008.5.1.4.1.1.9.4.1), which is typically used for report dictation.

The resulting wave file has the following characteristics:

1.

Number of channels: will either be 1 or 2, based on the value of the number of channels for this multiplex group. You can call LDicomWaveformGroup::GetNumberOfChannels to get the number of channels in a multiplex group.

2.

Bits per sample (sample size) will always be 8.

3.

Samples per second (sampling rate): This will be the same as the sampling frequency for the waveform group, call LDicomWaveformGroup::GetSamplingFrequency to get this value.

4.

Format category: PCM, mu-Law or a-Law, based on the value of the waveform sample interpretation which can be retrieved by calling LDicomWaveformGroup::GetSampleInterpretation.

Required DLLs and Libraries

LTDIC

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application

See Also

Functions:

Class Members, LDicomWaveformGroup::LoadAudio

Topics:

Working with DICOM Waveforms

Example

// This sample shows how to extract a 
// wave stream from a dataset
BOOL GetWaveFileFromDataset(LDicomDS &InputDS, L_CHAR * pszResultingWaveFileName) 
{
   LDicomWaveformGroup AudioWaveformGroup; 

   // Do we have any waveforms in the dataset? 
   if(InputDS.GetWaveformGroupCount() <1) 
   {
      return FALSE;   
   }

   // Extract the first waveform group
   if(InputDS.GetWaveformGroup(0,&AudioWaveformGroup) != DICOM_SUCCESS) 
   {
      return FALSE;   
   }

   // Extract the wave stream from the waveform group and save it to disk
   if(AudioWaveformGroup.SaveAudio(pszResultingWaveFileName,0) != DICOM_SUCCESS) 
   {
      return FALSE;      
   }
   return TRUE; 
}