96khz 24bit .wav playback
John Stirling <[email protected]>
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Message-ID | <[email protected]> |
We've made some changes to enabled 24bit 96khz .wav playback and are having a few issues getting audio to play. Everything looks ok until it gets to audio services - the correct data is getting submitted but it's wrong by the time it gets to the audio device. Before we debug in detail can someone confirm if the following sounds correct . to accommodate 24 bit samples - need to undefine HELIX_FEATURE_16BIT_MIXENGINE so that tAudioSample is defined as - INT32 tAudioSample . mixengine.h - need to add cvt24 to handle the copy from the packed input data to the mixengine buffers . hxaudses.cpp->PlayAudio - this calls hxaudstr_new.cpp->MixIntoBuffer which calls mixengine->MixIntoBuffer which calls hxaudstr_new.cpp->ConvertIntoBuffer. This should then result in an audio buffer with 24 bit samples stored as INT32, with the least significant byte to be ignored . this buffer is then written to the audio device via hxaudev.cpp->Write. The audio device will need to strip out the extra byte (or extra 2 bytes if audio data is 16 bit) Note we don't need any resampling or processing on the audio data - it just needs to go straight through to the audio device. John