On 16.08.2015 04:53, Michael Niedermayer wrote: > On Sat, Aug 08, 2015 at 01:33:14PM +0200, Andreas Cadhalpun wrote: >> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> >> --- >> libavfilter/buffersink.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) > > should be ok, if sizeof(type)is preferred over sizeof(somevar)
Well, it was sizeof(type) before... But looking at bit more at that code I think that it would be better to #define this value to a reasonable name, similar to FIFO_INIT_SIZE. Attached patch does this. Do you agree that this is better? Best regards, Andreas
>From 135e02a8765d0a0c4c0dd3d2d78e62498a863225 Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> Date: Sun, 16 Aug 2015 17:57:36 +0200 Subject: [PATCH] buffersink: introduce FIFO_INIT_ELEMENT_SIZE to complement FIFO_INIT_SIZE Use sizeof(void *) as its value, because AVFilterBufferRef is deprecated. Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> --- libavfilter/buffersink.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index b145e35..36b9e42 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -62,6 +62,8 @@ typedef struct BufferSinkContext { } BufferSinkContext; #define NB_ITEMS(list) (list ## _size / sizeof(*list)) +#define FIFO_INIT_SIZE 8 +#define FIFO_INIT_ELEMENT_SIZE sizeof(void *) static av_cold void uninit(AVFilterContext *ctx) { @@ -72,7 +74,7 @@ static av_cold void uninit(AVFilterContext *ctx) av_audio_fifo_free(sink->audio_fifo); if (sink->fifo) { - while (av_fifo_size(sink->fifo) >= sizeof(AVFilterBufferRef *)) { + while (av_fifo_size(sink->fifo) >= FIFO_INIT_ELEMENT_SIZE) { av_fifo_generic_read(sink->fifo, &frame, sizeof(frame), NULL); av_frame_free(&frame); } @@ -84,7 +86,7 @@ static int add_buffer_ref(AVFilterContext *ctx, AVFrame *ref) { BufferSinkContext *buf = ctx->priv; - if (av_fifo_space(buf->fifo) < sizeof(AVFilterBufferRef *)) { + if (av_fifo_space(buf->fifo) < FIFO_INIT_ELEMENT_SIZE) { /* realloc fifo size */ if (av_fifo_realloc2(buf->fifo, av_fifo_size(buf->fifo) * 2) < 0) { av_log(ctx, AV_LOG_ERROR, @@ -95,7 +97,7 @@ static int add_buffer_ref(AVFilterContext *ctx, AVFrame *ref) } /* cache frame */ - av_fifo_generic_write(buf->fifo, &ref, sizeof(AVFilterBufferRef *), NULL); + av_fifo_generic_write(buf->fifo, &ref, FIFO_INIT_ELEMENT_SIZE, NULL); return 0; } @@ -108,7 +110,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame) if ((ret = add_buffer_ref(ctx, frame)) < 0) return ret; if (buf->warning_limit && - av_fifo_size(buf->fifo) / sizeof(AVFilterBufferRef *) >= buf->warning_limit) { + av_fifo_size(buf->fifo) / FIFO_INIT_ELEMENT_SIZE >= buf->warning_limit) { av_log(ctx, AV_LOG_WARNING, "%d buffers queued in %s, something may be wrong.\n", buf->warning_limit, @@ -242,13 +244,11 @@ AVABufferSinkParams *av_abuffersink_params_alloc(void) return params; } -#define FIFO_INIT_SIZE 8 - static av_cold int common_init(AVFilterContext *ctx) { BufferSinkContext *buf = ctx->priv; - buf->fifo = av_fifo_alloc_array(FIFO_INIT_SIZE, sizeof(AVFilterBufferRef *)); + buf->fifo = av_fifo_alloc_array(FIFO_INIT_SIZE, FIFO_INIT_ELEMENT_SIZE); if (!buf->fifo) { av_log(ctx, AV_LOG_ERROR, "Failed to allocate fifo\n"); return AVERROR(ENOMEM); @@ -373,7 +373,7 @@ int attribute_align_arg av_buffersink_poll_frame(AVFilterContext *ctx) || !strcmp(ctx->filter->name, "ffbuffersink") || !strcmp(ctx->filter->name, "ffabuffersink")); - return av_fifo_size(buf->fifo)/sizeof(AVFilterBufferRef *) + ff_poll_frame(inlink); + return av_fifo_size(buf->fifo)/FIFO_INIT_ELEMENT_SIZE + ff_poll_frame(inlink); } static av_cold int vsink_init(AVFilterContext *ctx, void *opaque) -- 2.5.0
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel