[vlc-commits] auhal: select the right stream as the current one, fix crash when changing stream format
David Fuhrmann
git at videolan.org
Sun Sep 25 11:28:07 CEST 2011
vlc/vlc-1.1 | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Sat Sep 24 20:12:43 2011 +0200| [bed38cfc2123df1cd6150ba9427c839dc928a2a7] | committer: Felix Paul Kühne
auhal: select the right stream as the current one, fix crash when changing stream format
Signed-off-by: Felix Paul Kühne <fkuehne at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=bed38cfc2123df1cd6150ba9427c839dc928a2a7
---
modules/audio_output/auhal.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index 3457663..27585f1 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -728,9 +728,10 @@ static int OpenSPDIF( aout_instance_t * p_aout )
if( !p_sys->b_revert )
{
+ AudioObjectPropertyAddress currentPhysicalFormatAddress = { kAudioStreamPropertyPhysicalFormat, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
/* Retrieve the original format of this stream first if not done so already */
i_param_size = sizeof( p_sys->sfmt_revert );
- err = AudioObjectGetPropertyData( p_sys->i_stream_id, &physicalFormatsAddress, 0, NULL, &i_param_size, &p_sys->sfmt_revert );
+ err = AudioObjectGetPropertyData( p_sys->i_stream_id, ¤tPhysicalFormatAddress, 0, NULL, &i_param_size, &p_sys->sfmt_revert );
if( err != noErr )
{
msg_Err( p_aout, "could not retrieve the original streamformat: [%4.4s]", (char *)&err );
@@ -1232,7 +1233,7 @@ static int AudioStreamChangeFormat( aout_instance_t *p_aout, AudioStreamID i_str
}
/* Removing the property listener */
- err = AudioObjectRemovePropertyListener( i_stream_id, &physicalFormatAddress, StreamListener, NULL );
+ err = AudioObjectRemovePropertyListener( i_stream_id, &physicalFormatAddress, StreamListener, (void *)&w );
if( err != noErr )
{
msg_Err( p_aout, "AudioStreamRemovePropertyListener failed: [%4.4s]", (char *)&err );
@@ -1438,6 +1439,7 @@ static OSStatus StreamListener( AudioObjectID inObjectID, UInt32 inNumberAddres
vlc_mutex_lock( &w->lock );
vlc_cond_signal( &w->cond );
vlc_mutex_unlock( &w->lock );
+ break;
}
}
return( err );
More information about the vlc-commits
mailing list