[vlc-commits] vout_wrapper: use separate private pool if formats don't match

Steve Lhomme git at videolan.org
Mon Nov 4 10:27:39 CET 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Oct 28 14:32:38 2019 +0100| [0580e472856db8eb59fef692b2dbc9b157707df5] | committer: Steve Lhomme

vout_wrapper: use separate private pool if formats don't match

Partially reverts 857aa22f2c3e9624b1dd680f73bedd00244aa11d

Partially fixes #23031

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

 src/video_output/vout_wrapper.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/video_output/vout_wrapper.c b/src/video_output/vout_wrapper.c
index 5d841163f9..9e5b14a56b 100644
--- a/src/video_output/vout_wrapper.c
+++ b/src/video_output/vout_wrapper.c
@@ -98,8 +98,17 @@ vout_display_t *vout_OpenWrapper(vout_thread_t *vout,
                  reserved_picture, picture_pool_GetSize(display_pool));
 #endif
 
-    sys->private_pool = picture_pool_Reserve(display_pool, private_picture);
+    if (!vout_IsDisplayFiltered(vd) &&
+        picture_pool_GetSize(display_pool) >= reserved_picture) {
+        sys->private_pool = picture_pool_Reserve(display_pool, private_picture);
+    } else {
+        sys->private_pool =
+            picture_pool_NewFromFormat(&vd->source,
+                                       __MAX(VOUT_MAX_PICTURES,
+                                             reserved_picture - DISPLAY_PICTURE_COUNT));
+    }
     if (sys->private_pool == NULL) {
+        picture_pool_Release(display_pool);
         goto error;
     }
     sys->display_pool = display_pool;



More information about the vlc-commits mailing list