[vlc-devel] [PATCH v2] videotoolbox: set iosurface property

Thomas Guillem thomas at gllm.fr
Tue Jan 26 10:28:23 UTC 2021


On Tue, Jan 26, 2021, at 11:15, Alexandre Janniaux wrote:
> Hi,
> 
> The link is quite precise on why this is needed in the general
> way. It doesn't seem to be needed currently for VT but this is
> not documented as-is.

I would prefer having a reason before clicking on an external link, specially that you can't know how long this link will stay valid.

Just add that it is needed for accessing video data in OpenGL ES.

But then I wonder, 

#if !TARGET_OS_IPHONE
    CFDictionarySetValue(destinationPixelBufferAttributes,
                         kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey,
                         kCFBooleanTrue);
#else
    CFDictionarySetValue(destinationPixelBufferAttributes,
                         kCVPixelBufferOpenGLESCompatibilityKey,
                         kCFBooleanTrue);
#endif


Is it doing the same thing? Maybe this part could be now removed ^^

> 
> Should I add more precision from the link to the commit message
> to ensure that the information is always in the commit?
> 
> Regards,
> --
> Alexandre Janniaux
> Videolabs
> 
> On Tue, Jan 26, 2021 at 10:53:39AM +0100, Thomas Guillem wrote:
> > kCVPixelBufferIOSurfacePropertiesKey is already used for cvpx pool creation (used by filters and not the vt decoder).
> >
> > You should explain why it is needed now (in the commit log).
> >
> > On Tue, Jan 26, 2021, at 09:29, Alexandre Janniaux wrote:
> > > The kCVPixelBufferIOSSurfaceProperties is supposed to be mandatory for
> > > baking the buffer with an iosurface.
> > >
> > > See https://developer.apple.com/library/archive/qa/qa1781/_index.html
> > > ---
> > >  modules/codec/videotoolbox.c | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > >
> > > diff --git a/modules/codec/videotoolbox.c b/modules/codec/videotoolbox.c
> > > index 9224989cb7..de1a3483b6 100644
> > > --- a/modules/codec/videotoolbox.c
> > > +++ b/modules/codec/videotoolbox.c
> > > @@ -1205,6 +1205,16 @@ static int StartVideoToolbox(decoder_t *p_dec)
> > >                           kCVPixelBufferOpenGLESCompatibilityKey,
> > >                           kCFBooleanTrue);
> > >  #endif
> > > +    CFMutableDictionaryRef iosurfaceProperties = cfdict_create(0);
> > > +    if (iosurfaceProperties == NULL)
> > > +    {
> > > +        CFRelease(destinationPixelBufferAttributes);
> > > +        CFRelease(decoderConfiguration);
> > > +        return VLC_ENOMEM;
> > > +    }
> > > +    CFDictionarySetValue(destinationPixelBufferAttributes,
> > > +                         kCVPixelBufferIOSurfacePropertiesKey,
> > > +                         iosurfaceProperties);
> > >
> > >      cfdict_set_int32(destinationPixelBufferAttributes,
> > >                       kCVPixelBufferWidthKey,
> > > p_dec->fmt_out.video.i_visible_width);
> > > @@ -1235,6 +1245,7 @@ static int StartVideoToolbox(decoder_t *p_dec)
> > >                                            decoderConfiguration,
> > >
> > > destinationPixelBufferAttributes,
> > >                                            &decoderCallbackRecord,
> > > &p_sys->session);
> > > +    CFRelease(iosurfaceProperties);
> > >      CFRelease(decoderConfiguration);
> > >      CFRelease(destinationPixelBufferAttributes);
> > >
> > > --
> > > 2.30.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