[vlc-commits] decoder: abort packetizer loop in case of error

Thomas Guillem git at videolan.org
Thu Jul 28 09:04:35 CEST 2016


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Jul  7 09:52:23 2016 +0200| [d98d72c18155eb999fc87c6c3d0e57c46afc1efb] | committer: Thomas Guillem

decoder: abort packetizer loop in case of error

If a decoder module set an error, pf_decode shouldn't be called again.

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

 src/input/decoder.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/input/decoder.c b/src/input/decoder.c
index 43a05da..cbc68e9 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -1025,6 +1025,11 @@ static void DecoderProcessVideo( decoder_t *p_dec, block_t *p_block )
                 p_packetized_block->p_next = NULL;
 
                 DecoderDecodeVideo( p_dec, p_packetized_block );
+                if( p_dec->b_error )
+                {
+                    block_ChainRelease( p_next );
+                    return;
+                }
 
                 p_packetized_block = p_next;
             }
@@ -1200,6 +1205,11 @@ static void DecoderProcessAudio( decoder_t *p_dec, block_t *p_block )
                 p_packetized_block->p_next = NULL;
 
                 DecoderDecodeAudio( p_dec, p_packetized_block );
+                if( p_dec->b_error )
+                {
+                    block_ChainRelease( p_next );
+                    return;
+                }
 
                 p_packetized_block = p_next;
             }



More information about the vlc-commits mailing list