On Wed, 25 Jul 2012, Loren Merritt wrote:

> --- a/libavfilter/vf_hqdn3d.c
> +++ b/libavfilter/vf_hqdn3d.c
> @@ -294,6 +294,23 @@ static int config_input(AVFilterLink *inlink)
>      return 0;
>  }
>
> +static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
> +{
> +    AVFilterLink *outlink = inlink->dst->outputs[0];
> +    AVFilterBufferRef *outpicref;
> +
> +    if (inpicref->perms & AV_PERM_PRESERVE) {
> +        outpicref = ff_get_video_buffer(outlink, AV_PERM_WRITE, outlink->w, 
> outlink->h);
> +        avfilter_copy_buffer_ref_props(outpicref, inpicref);
> +        outpicref->video->w = outlink->w;
> +        outpicref->video->h = outlink->h;
> +    } else
> +        outpicref = inpicref;
> +
> +    outlink->out_buf = outpicref;
> +    ff_start_frame(outlink, avfilter_ref_buffer(outpicref, ~0));
> +}

This seems like the sort of thing a bunch of filters should use, and 3 of
them do. How to factor it out? It doesn't quite fit in AV_PERM_*, since
it's a property of a filter, not of a particular frame buffer. I suppose I
could just move this version of start_frame somewhere common.

--Loren Merritt

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

Reply via email to