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? > 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? Same question if the pool_width and height are actually larger? Maybe you want to shrink the memory requirement in this case though. [...] -- Clément B.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel