[vlc-devel] [PATCH 1/3] video_output: don't use the private pool for the blend picture

Steve Lhomme robux4 at ycbcr.xyz
Thu Aug 13 14:13:05 CEST 2020


Create one on the fly each time. We don't need to preallocate some
pictures if we're never going to use them. Also we don't to know the target
format in advance.

It may cause issues if the format is opaque. But this is currently not handled
either.
---
 src/video_output/video_output.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index dacb6a669a7..6097b9df7f9 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1312,12 +1312,11 @@ static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool is_forced)
     picture_t *snap_pic = todisplay;
     if (do_early_spu && subpic) {
         if (sys->spu_blend) {
-            picture_t *blent = picture_pool_Get(sys->private.private_pool);
+            picture_t *blent = picture_NewFromFormat(&filtered->format);
             if (blent) {
-                video_format_CopyCropAr(&blent->format, &filtered->format);
                 picture_Copy(blent, filtered);
                 if (picture_BlendSubpicture(blent, sys->spu_blend, subpic)) {
-                    picture_Release(todisplay);
+                    picture_Release(filtered);
                     snap_pic = todisplay = blent;
                 } else
                 {
-- 
2.26.2



More information about the vlc-devel mailing list