initial support for ac3+wma spdif passthrough for pa_win_wmme. see flags in pa_win_wmme.h. flags currently work for OpenStream but are ignored for IsFormatSupported
This commit is contained in:
parent
6cff10c3f4
commit
1de1b421f9
5 changed files with 77 additions and 32 deletions
|
|
@ -1401,12 +1401,14 @@ static HRESULT InitInputBuffer( PaWinDsStream *stream, PaSampleFormat sampleForm
|
|||
|
||||
// first try WAVEFORMATEXTENSIBLE. if this fails, fall back to WAVEFORMATEX
|
||||
PaWin_InitializeWaveFormatExtensible( &waveFormat, nChannels,
|
||||
sampleFormat, nFrameRate, channelMask );
|
||||
sampleFormat, PaWin_SampleFormatToLinearWaveFormatTag( sampleFormat ),
|
||||
nFrameRate, channelMask );
|
||||
|
||||
if( IDirectSoundCapture_CreateCaptureBuffer( stream->pDirectSoundCapture,
|
||||
&captureDesc, &stream->pDirectSoundInputBuffer, NULL) != DS_OK )
|
||||
{
|
||||
PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat, nFrameRate );
|
||||
PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat,
|
||||
PaWin_SampleFormatToLinearWaveFormatTag( sampleFormat ), nFrameRate );
|
||||
|
||||
if ((result = IDirectSoundCapture_CreateCaptureBuffer( stream->pDirectSoundCapture,
|
||||
&captureDesc, &stream->pDirectSoundInputBuffer, NULL)) != DS_OK) return result;
|
||||
|
|
@ -1477,11 +1479,13 @@ static HRESULT InitOutputBuffer( PaWinDsStream *stream, PaSampleFormat sampleFor
|
|||
|
||||
// first try WAVEFORMATEXTENSIBLE. if this fails, fall back to WAVEFORMATEX
|
||||
PaWin_InitializeWaveFormatExtensible( &waveFormat, nChannels,
|
||||
sampleFormat, nFrameRate, channelMask );
|
||||
sampleFormat, PaWin_SampleFormatToLinearWaveFormatTag( sampleFormat ),
|
||||
nFrameRate, channelMask );
|
||||
|
||||
if( IDirectSoundBuffer_SetFormat( pPrimaryBuffer, (WAVEFORMATEX*)&waveFormat) != DS_OK )
|
||||
{
|
||||
PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat, nFrameRate );
|
||||
PaWin_InitializeWaveFormatEx( &waveFormat, nChannels, sampleFormat,
|
||||
PaWin_SampleFormatToLinearWaveFormatTag( sampleFormat ), nFrameRate );
|
||||
|
||||
if((result = IDirectSoundBuffer_SetFormat( pPrimaryBuffer, (WAVEFORMATEX*)&waveFormat)) != DS_OK) return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue