Ignore:
Timestamp:
May 22, 2006 10:47:33 AM (18 years ago)
Author:
bennylp
Message:

Fixed crash bug in DSound closing procedure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/dsound.c

    r469 r470  
    883883    pjmedia_snd_stream_stop(stream); 
    884884 
    885     if (stream->play_strm.ds.play.lpDsBuffer) { 
    886         IDirectSoundBuffer_Release( stream->play_strm.ds.play.lpDsBuffer ); 
    887         stream->play_strm.ds.play.lpDsBuffer = NULL; 
    888     } 
    889  
    890     if (stream->play_strm.ds.play.lpDs) { 
    891         IDirectSound_Release( stream->play_strm.ds.play.lpDs ); 
    892         stream->play_strm.ds.play.lpDs = NULL; 
    893     } 
    894  
    895     if (stream->play_strm.lpDsNotify) { 
    896         //No need? 
    897         //IDirectSoundNotify_Release( stream->play_strm.lpDsNotify ); 
    898         stream->play_strm.lpDsNotify = NULL; 
    899     } 
    900      
    901     if (stream->play_strm.hEvent) { 
    902         CloseHandle(stream->play_strm.hEvent); 
    903         stream->play_strm.hEvent = NULL; 
    904     } 
    905  
    906  
    907     if (stream->rec_strm.ds.capture.lpDsBuffer) { 
    908         IDirectSoundCaptureBuffer_Release( stream->rec_strm.ds.capture.lpDsBuffer ); 
    909         stream->rec_strm.ds.capture.lpDsBuffer = NULL; 
    910     } 
    911  
    912     if (stream->rec_strm.ds.capture.lpDs) { 
    913         IDirectSoundCapture_Release( stream->rec_strm.ds.capture.lpDs ); 
    914         stream->rec_strm.ds.capture.lpDs = NULL; 
    915     } 
    916  
    917     if (stream->rec_strm.lpDsNotify) { 
    918         //No need? 
    919         //IDirectSoundNotify_Release( stream->rec_strm.lpDsNotify ); 
    920         stream->rec_strm.lpDsNotify = NULL; 
    921     } 
    922      
    923     if (stream->rec_strm.hEvent) { 
    924         CloseHandle(stream->rec_strm.hEvent); 
    925         stream->rec_strm.hEvent = NULL; 
    926     } 
    927  
    928885    if (stream->thread) { 
    929886        stream->thread_quit_flag = 1; 
     
    933890    } 
    934891 
     892    if (stream->play_strm.lpDsNotify) { 
     893        IDirectSoundNotify_Release( stream->play_strm.lpDsNotify ); 
     894        stream->play_strm.lpDsNotify = NULL; 
     895    } 
     896     
     897    if (stream->play_strm.hEvent) { 
     898        CloseHandle(stream->play_strm.hEvent); 
     899        stream->play_strm.hEvent = NULL; 
     900    } 
     901 
     902    if (stream->play_strm.ds.play.lpDsBuffer) { 
     903        IDirectSoundBuffer_Release( stream->play_strm.ds.play.lpDsBuffer ); 
     904        stream->play_strm.ds.play.lpDsBuffer = NULL; 
     905    } 
     906 
     907    if (stream->play_strm.ds.play.lpDs) { 
     908        IDirectSound_Release( stream->play_strm.ds.play.lpDs ); 
     909        stream->play_strm.ds.play.lpDs = NULL; 
     910    } 
     911 
     912    if (stream->rec_strm.lpDsNotify) { 
     913        IDirectSoundNotify_Release( stream->rec_strm.lpDsNotify ); 
     914        stream->rec_strm.lpDsNotify = NULL; 
     915    } 
     916     
     917    if (stream->rec_strm.hEvent) { 
     918        CloseHandle(stream->rec_strm.hEvent); 
     919        stream->rec_strm.hEvent = NULL; 
     920    } 
     921 
     922    if (stream->rec_strm.ds.capture.lpDsBuffer) { 
     923        IDirectSoundCaptureBuffer_Release( stream->rec_strm.ds.capture.lpDsBuffer ); 
     924        stream->rec_strm.ds.capture.lpDsBuffer = NULL; 
     925    } 
     926 
     927    if (stream->rec_strm.ds.capture.lpDs) { 
     928        IDirectSoundCapture_Release( stream->rec_strm.ds.capture.lpDs ); 
     929        stream->rec_strm.ds.capture.lpDs = NULL; 
     930    } 
     931 
     932 
    935933    pj_pool_release(stream->pool); 
    936934 
Note: See TracChangeset for help on using the changeset viewer.