On Fri, 01 Jan 2016 20:54:36 +0100 Anton Khirnov <[email protected]> wrote:
> 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? Yes. > In which case It's not significantly simpler than the caller > getting the frame from the pool himself. > The API user wouldn't have to worry about allocating the exact frame size/format, but then I'm assuming the framepool would reconfigure itself if the format changes (or lazily inits itself on the first request). Maybe this is going too far and it always could be added later, so just ignore me. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
