[FFmpeg-devel] [PATCH] hwcontext_cuda: implement frames_get_constraints

wm4 nfxjfg at googlemail.com
Mon Jan 23 17:23:15 EET 2017


On Mon, 16 Jan 2017 10:01:41 -0800
Philip Langdale <philipl at overt.org> wrote:

> On Mon, 16 Jan 2017 18:56:09 +0100
> wm4 <nfxjfg at googlemail.com> wrote:
> 
> > On Mon, 16 Jan 2017 09:31:42 -0800
> > Philip Langdale <philipl at overt.org> wrote:
> >   
> > > On Mon, 16 Jan 2017 16:44:16 +0100
> > > wm4 <nfxjfg at googlemail.com> wrote:
> > >     
> > > > Copied and modified from hwcontext_qsv.c.
> > > > ---
> > > >  libavutil/hwcontext_cuda.c | 26 ++++++++++++++++++++++++++
> > > >  1 file changed, 26 insertions(+)
> > > > 
> > > > diff --git a/libavutil/hwcontext_cuda.c
> > > > b/libavutil/hwcontext_cuda.c index 5dd0d99272..ed595c3e0f 100644
> > > > --- a/libavutil/hwcontext_cuda.c
> > > > +++ b/libavutil/hwcontext_cuda.c
> > > > @@ -39,6 +39,31 @@ static const enum AVPixelFormat
> > > > supported_formats[] = { AV_PIX_FMT_P016,
> > > >  };
> > > >  
> > > > +static int cuda_frames_get_constraints(AVHWDeviceContext *ctx,
> > > > +                                       const void *hwconfig,
> > > > +                                       AVHWFramesConstraints
> > > > *constraints) +{
> > > > +    int i;
> > > > +
> > > > +    constraints->valid_sw_formats =
> > > > av_malloc_array(FF_ARRAY_ELEMS(supported_formats) + 1,
> > > > +
> > > > sizeof(*constraints->valid_sw_formats));
> > > > +    if (!constraints->valid_sw_formats)
> > > > +        return AVERROR(ENOMEM);
> > > > +
> > > > +    for (i = 0; i < FF_ARRAY_ELEMS(supported_formats); i++)
> > > > +        constraints->valid_sw_formats[i] = supported_formats[i];
> > > > +
> > > > constraints->valid_sw_formats[FF_ARRAY_ELEMS(supported_formats)]
> > > > = AV_PIX_FMT_NONE; +
> > > > +    constraints->valid_hw_formats = av_malloc_array(2,
> > > > sizeof(*constraints->valid_hw_formats));
> > > > +    if (!constraints->valid_hw_formats)
> > > > +        return AVERROR(ENOMEM);      
> > > 
> > > Is it weird if this fails and valid_sw_formats succeeds? I guess
> > > that's up to how the caller handles the error.    
> > 
> > It is, but the QSV code also did it this way.
> > 
> > And if we're completely honest, nobody really cares about tiny leaks
> > when tiny allocations fail (which in practice never ever happens
> > anyway).  
> 
> Yeah. The world is going to end if it ever happens.
> 
> Ship it.

Pushed, got tired of waiting for a response on the Libav ML.


More information about the ffmpeg-devel mailing list