Quoting wm4 (2016-01-01 20:23:25)
> On Fri, 01 Jan 2016 16:35:28 +0100
> Anton Khirnov <[email protected]> wrote:
> 
> > Quoting wm4 (2015-12-27 14:29:11)
> > > On Sun, 20 Dec 2015 20:59:27 +0100
> > > Anton Khirnov <[email protected]> wrote:  
> > > > +static int retrieve_data_alloc(AVFrame *dst, const AVFrame *src)
> > > > +{
> > > > +    AVFrame *frame_tmp;
> > > > +    int ret = 0;
> > > > +
> > > > +    frame_tmp = av_frame_alloc();
> > > > +    if (!frame_tmp)
> > > > +        return AVERROR(ENOMEM);
> > > > +
> > > > +    /* if the format is set, use that
> > > > +     * otherwise pick the first supported one */
> > > > +    if (dst->format >= 0) {
> > > > +        frame_tmp->format = dst->format;
> > > > +    } else {
> > > > +        enum AVPixelFormat *formats;
> > > > +
> > > > +        ret = av_hwframe_get_target_formats(src, &formats);
> > > > +        if (ret < 0)
> > > > +            goto fail;
> > > > +        frame_tmp->format = formats[0];
> > > > +        av_freep(&formats);
> > > > +    }
> > > > +    frame_tmp->width  = src->width;
> > > > +    frame_tmp->height = src->height;
> > > > +
> > > > +    ret = av_frame_get_buffer(frame_tmp, 32);
> > > > +    if (ret < 0)
> > > > +        goto fail;  
> > > 
> > > Would be nice if this function could get its frames from a memory pool.
> > > (Or maybe a function like av_hwframe_retrieve_data(), which
> > > creates/recreates a pool as needed?)
> > >   
> > 
> > What would be the point of that? You can already allocate the target
> > frame yourself in any way you want, this is just a convenience shortcut
> > for lazy people. Adding support for pools would have to make the API
> > more complex, thus eliminating the point.
> > 
> 
> I don't see how it'd make it much more complex. I don't see any point
> in adding bad implementations for "lazy" people if with slightly more
> effort they could be better.

I'm getting the feeling I don't see what exactly it is you're proposing.
Are you saying this function should take a frame pool as an optional
parameters? In which case It's not significantly simpler than the caller
getting the frame from the pool himself.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to