[vlc-commits] videotoolbox: rework >= 10bit output handling

Thomas Guillem git at videolan.org
Thu Oct 1 07:18:28 CEST 2020


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Tue Sep 29 10:24:05 2020 +0200| [ce943a7507eaddbd776ac636dcc033e9ea58726e] | committer: Felix Paul Kühne

videotoolbox: rework >= 10bit output handling

 - Force BGRA on macbooks not handling HEVC. This was done automatically
   before but it will likely change in the future like iOS.

 - Also force BGRA for 12 and 16bits since the openGL* implementation
   can't handle it.

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

 modules/codec/videotoolbox.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/modules/codec/videotoolbox.c b/modules/codec/videotoolbox.c
index 707ac04f9c..aae548504b 100644
--- a/modules/codec/videotoolbox.c
+++ b/modules/codec/videotoolbox.c
@@ -185,12 +185,19 @@ static void HXXXGetBestChroma(decoder_t *p_dec)
 #if !TARGET_OS_IPHONE
             if (deviceSupportsHEVC()) /* 42010bit went with HEVC on macOS */
                 p_sys->i_cvpx_format = kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange;
-#else
-            /* Force BGRA output (and let VT handle the tone mapping) on iOS
-             * since the apple openGLES implementation can't handle 16 bit
-             * textures. */
-            p_sys->i_cvpx_format = kCVPixelFormatType_32BGRA;
+            else
 #endif
+           /* Force BGRA output (and let VT handle the tone mapping) since the
+            * Apple openGL* implementation can't handle 16 bit textures. This
+            * is the case for iOS and some macOS devices (ones that are not
+            * handling HEVC). */
+            p_sys->i_cvpx_format = kCVPixelFormatType_32BGRA;
+        }
+        else if (i_depth_luma > 10 && i_depth_chroma > 10)
+        {
+            /* XXX: The apple openGL implementation doesn't support 12 or 16
+             * bit rendering */
+            p_sys->i_cvpx_format = kCVPixelFormatType_32BGRA;
         }
     }
 }



More information about the vlc-commits mailing list