[vlc-commits] decoder: don't set IsEmpty while draining

Thomas Guillem git at videolan.org
Mon Mar 20 16:54:57 CET 2017


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Mar 16 13:09:13 2017 +0100| [77f084b94050a9660f4dd636670f81db96c5274c] | committer: Thomas Guillem

decoder: don't set IsEmpty while draining

If the decoder is draining, more pictures or blocks can be outputted, so wait
the drain to finish before querying outputs.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=77f084b94050a9660f4dd636670f81db96c5274c
---

 src/input/decoder.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/input/decoder.c b/src/input/decoder.c
index 8a223da..95f431f 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -1985,8 +1985,13 @@ bool input_DecoderIsEmpty( decoder_t * p_dec )
 
     assert( !p_owner->b_waiting );
 
-    if( block_FifoCount( p_dec->p_owner->p_fifo ) > 0 )
+    vlc_fifo_Lock( p_owner->p_fifo );
+    if( !vlc_fifo_IsEmpty( p_dec->p_owner->p_fifo ) || p_owner->b_draining )
+    {
+        vlc_fifo_Unlock( p_owner->p_fifo );
         return false;
+    }
+    vlc_fifo_Unlock( p_owner->p_fifo );
 
     bool b_empty;
 



More information about the vlc-commits mailing list