The thread can be canceled when owning a block_t, so we must push a way to clean it up.
if( p_buffer == NULL )
goto error;
if( p_buffer == NULL )
goto error;
+ block_cleanup_push( p_buffer );
for (;;)
{
int n = snd_pcm_poll_descriptors_count(p_pcm);
for (;;)
{
int n = snd_pcm_poll_descriptors_count(p_pcm);
msg_Err( p_aout, "cannot write: %s", snd_strerror( i_snd_rc ) );
vlc_restorecancel(canc);
msg_Err( p_aout, "cannot write: %s", snd_strerror( i_snd_rc ) );
vlc_restorecancel(canc);
- block_Release( p_buffer );