On Mon, 16 Jan 2017 09:31:42 -0800
Philip Langdale <phil...@overt.org> wrote:

> On Mon, 16 Jan 2017 16:44:16 +0100
> wm4 <nfx...@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).
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to