[vlc-devel] commit: Correctly unpause the vout for reuse. (Laurent Aimar )
git version control
git at videolan.org
Sun Jan 25 18:01:19 CET 2009
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sun Jan 25 17:45:06 2009 +0100| [1af6b527cbd63a7dabd664f9651a6fca90657d2b] | committer: Laurent Aimar
Correctly unpause the vout for reuse.
It fixes an assert in vout code when a stream was stopped while paused.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1af6b527cbd63a7dabd664f9651a6fca90657d2b
---
src/input/decoder.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/input/decoder.c b/src/input/decoder.c
index 21f0733..a5860a5 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -339,6 +339,7 @@ void input_DecoderDelete( decoder_t *p_dec )
/* Make sure we aren't paused/buffering/waiting anymore */
vlc_mutex_lock( &p_owner->lock );
+ const b_was_paused = p_owner->b_paused;
p_owner->b_paused = false;
p_owner->b_buffering = false;
p_owner->b_flushing = true;
@@ -346,6 +347,8 @@ void input_DecoderDelete( decoder_t *p_dec )
vlc_mutex_unlock( &p_owner->lock );
vlc_thread_join( p_dec );
+ p_owner->b_paused = b_was_paused;
+
module_unneed( p_dec, p_dec->p_module );
/* */
@@ -2020,8 +2023,11 @@ static void DeleteDecoder( decoder_t * p_dec )
}
if( p_owner->p_vout )
{
- /* Hack to make sure all the the pictures are freed by the decoder */
+ /* Hack to make sure all the the pictures are freed by the decoder
+ * and that the vout is not paused anymore */
vout_FixLeaks( p_owner->p_vout, true );
+ if( p_owner->b_paused )
+ vout_ChangePause( p_owner->p_vout, false, mdate() );
/* */
input_ressource_RequestVout( p_owner->p_input->p->p_ressource, p_owner->p_vout, NULL );
More information about the vlc-devel
mailing list