On Fri, Dec 11, 2015 at 2:04 PM, Clément Bœsch <u...@pkh.me> wrote:
> On Fri, Dec 11, 2015 at 01:32:47PM +0100, Matthieu Bouron wrote: > [...] > > diff --git a/libavfilter/video.c b/libavfilter/video.c > > index 0274fc1..5b0b7f9 100644 > > --- a/libavfilter/video.c > > +++ b/libavfilter/video.c > > @@ -32,6 +32,8 @@ > > #include "internal.h" > > #include "video.h" > > > > +#define BUFFER_ALIGN 32 > > + > > AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h) > > { > > return ff_get_video_buffer(link->dst->outputs[0], w, h); > > @@ -42,21 +44,35 @@ AVFrame *ff_null_get_video_buffer(AVFilterLink > *link, int w, int h) > > * alloc & free cycle currently implemented. */ > > Pasting the whole comment for context: > /* TODO: set the buffer's priv member to a context structure for the > whole > * filter chain. This will allow for a buffer pool instead of the > constant > * alloc & free cycle currently implemented. */ > > Is this comment still relevant? > Nope, I removed it in the newer version of the patch. > > > AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h) > > { > > - AVFrame *frame = av_frame_alloc(); > > - int ret; > > + int pool_width = 0; > > + int pool_height = 0; > > + int pool_align = 0; > > + enum AVPixelFormat pool_format = AV_PIX_FMT_NONE; > > > > - if (!frame) > > - return NULL; > > + if (!link->video_frame_pool) { > > + link->video_frame_pool = > av_video_frame_pool_init(av_buffer_allocz, w, h, > > + link->format, > BUFFER_ALIGN); > > + if (!link->video_frame_pool) > > + return NULL; > > + } else { > > + if (av_video_frame_pool_get_config(link->video_frame_pool, > > + &pool_width, &pool_height, > > + &pool_format, &pool_align) < > 0) { > > + return NULL; > > + } > > > > - frame->width = w; > > - frame->height = h; > > - frame->format = link->format; > > > + if (pool_width != w || pool_height != h || > > + pool_format != link->format || pool_align != BUFFER_ALIGN) { > > If pool_align > BUFFER_ALIGN it can also work, no? > Yes. > > Same question if the pool_width and height are actually larger? Maybe you > want > to shrink the memory requirement in this case though. > This is something I will address with a future change in the API of the FFVideoFramePool if it's not a blocker. Matthieu [...] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel