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