Commit 936279b5 authored by Steve Lhomme's avatar Steve Lhomme Committed by Jean-Baptiste Kempf

directsound: fix TimeGet returning a positive value on error

Fixes #14186

a positive HRESULT means it succeeded.
Signed-off-by: Jean-Baptiste Kempf's avatarJean-Baptiste Kempf <jb@videolan.org>
parent f069d5ec
......@@ -148,8 +148,10 @@ static HRESULT TimeGet( aout_stream_sys_t *sys, mtime_t *delay )
mtime_t size;
hr = IDirectSoundBuffer_GetStatus( sys->p_dsbuffer, &status );
if(hr != DS_OK || !(status & DSBSTATUS_PLAYING))
return 1;
if( hr != DS_OK )
return hr;
if( !(status & DSBSTATUS_PLAYING) )
return DSERR_INVALIDCALL ;
hr = IDirectSoundBuffer_GetCurrentPosition( sys->p_dsbuffer, &read, NULL );
if( hr != DS_OK )
......@@ -160,7 +162,7 @@ static HRESULT TimeGet( aout_stream_sys_t *sys, mtime_t *delay )
/* GetCurrentPosition cannot be trusted if the return doesn't change
* Just return an error */
if( size == 0 )
return 1;
return DSERR_GENERIC ;
else if( size < 0 )
size += DS_BUF_SIZE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment