[vlc-commits] video_output: explicitly use the displayed.XXX pictures as filter chain inputs

Steve Lhomme git at videolan.org
Tue Oct 20 11:03:06 CEST 2020


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Fri Oct 16 13:36:04 2020 +0200| [362e272c9997cf3b571ad38f2d6aa43761ebacec] | committer: Steve Lhomme

video_output: explicitly use the displayed.XXX pictures as filter chain inputs

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

 src/video_output/video_output.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 1008ef83c1..8db148c0bd 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1140,7 +1140,7 @@ static picture_t *ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reus
         sys->displayed.timestamp     = decoded->date;
         sys->displayed.is_interlaced = !decoded->b_progressive;
 
-        picture = filter_chain_VideoFilter(sys->filter.chain_static, decoded);
+        picture = filter_chain_VideoFilter(sys->filter.chain_static, sys->displayed.decoded);
     }
 
     vlc_mutex_unlock(&sys->filter.lock);
@@ -1216,12 +1216,13 @@ static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool is_forced)
 {
     vout_thread_sys_t *sys = vout;
 
-    picture_t *torender = picture_Hold(sys->displayed.current);
+    // hold it as the filter chain will release it or return it and we release it
+    picture_Hold(sys->displayed.current);
 
     vout_chrono_Start(&sys->render);
 
     vlc_mutex_lock(&sys->filter.lock);
-    picture_t *filtered = filter_chain_VideoFilter(sys->filter.chain_interactive, torender);
+    picture_t *filtered = filter_chain_VideoFilter(sys->filter.chain_interactive, sys->displayed.current);
     vlc_mutex_unlock(&sys->filter.lock);
 
     if (!filtered)



More information about the vlc-commits mailing list