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

Alexandre Janniaux ajanni at videolabs.io
Tue Jan 26 12:59:32 UTC 2021


Hi,

Ok, will set this.

On Tue, Jan 26, 2021 at 11:28:23AM +0100, Thomas Guillem wrote:
>
> 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 ^^

I'm not really sure but I could try. This is not documented elsewhere
AFAIK.

> >
> > 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
> _______________________________________________
> 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