[vlc-commits] transcode: clear video eos and remove filters after drain

Ilkka Ollakka git at videolan.org
Fri Nov 1 16:13:41 CET 2019


vlc | branch: master | Ilkka Ollakka <ileoo at videolan.org> | Fri Nov  1 13:54:57 2019 +0200| [f0baa57160da84e97843abe7a5ec2d8fa676ad08] | committer: Ilkka Ollakka

transcode: clear video eos and remove filters after drain

Without removing the filters we hit assert on next look about filters being present.

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

 modules/stream_out/transcode/video.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
index 04f749a990..ae615351d5 100644
--- a/modules/stream_out/transcode/video.c
+++ b/modules/stream_out/transcode/video.c
@@ -491,7 +491,7 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
 {
     *out = NULL;
 
-    const bool b_eos = in && (in->i_flags & BLOCK_FLAG_END_OF_SEQUENCE);
+    bool b_eos = in && (in->i_flags & BLOCK_FLAG_END_OF_SEQUENCE);
 
     int ret = id->p_decoder->pf_decode( id->p_decoder, in );
     if( ret != VLCDEC_SUCCESS )
@@ -644,8 +644,14 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
             if( transcode_encoder_drain( id->encoder, out ) != VLC_SUCCESS )
                 goto error;
             transcode_encoder_close( id->encoder );
-            if( b_eos )
-                tag_last_block_with_flag( out, BLOCK_FLAG_END_OF_SEQUENCE );
+            /* Close filters */
+            transcode_remove_filters( &id->p_f_chain );
+            transcode_remove_filters( &id->p_conv_nonstatic );
+            transcode_remove_filters( &id->p_conv_static );
+            transcode_remove_filters( &id->p_uf_chain );
+            transcode_remove_filters( &id->p_final_conv_static );
+            tag_last_block_with_flag( out, BLOCK_FLAG_END_OF_SEQUENCE );
+            b_eos = false;
         }
 
         continue;



More information about the vlc-commits mailing list