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

Marvin Scholz epirat07 at gmail.com
Wed Sep 30 10:37:02 CEST 2020



On 30 Sep 2020, at 10:30, Thomas Guillem wrote:

> On Tue, Sep 29, 2020, at 22:52, Marvin Scholz wrote:
>> LGTM, little nitpick below
>>
>> On 29 Sep 2020, at 10:24, Thomas Guillem wrote:
>>
>>>  - 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.
>>> ---
>>>  modules/codec/videotoolbox.c | 16 +++++++++++-----
>>>  1 file changed, 11 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/modules/codec/videotoolbox.c
>>> b/modules/codec/videotoolbox.c
>>> index 707ac04f9c8..cda49c6c020 100644
>>> --- a/modules/codec/videotoolbox.c
>>> +++ b/modules/codec/videotoolbox.c
>>> @@ -185,12 +185,18 @@ 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 mac book not handled HEVC). 
>>> */
>>
>> This comment is really hard to understand, how does OpenGL relates to
>> HEVC?
>> And you say iOS and mac book, not sure what you mean by that.
>
> Is it better ?
>
>             /* 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). */
>

Thats better, thanks!

>>
>>> +            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;
>>>          }
>>>      }
>>>  }
>>> -- 
>>> 2.28.0
>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list