mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 21:00:41 +08:00
swscale/ops_dispatch: add helper function to clean up SwsCompiledOp
Sponsored-by: Sovereign Tech Fund Signed-off-by: Niklas Haas <git@haasn.dev>
This commit is contained in:
@@ -95,15 +95,21 @@ int ff_sws_ops_compile(SwsContext *ctx, const SwsOpList *ops, SwsCompiledOp *out
|
||||
return AVERROR(ENOTSUP);
|
||||
}
|
||||
|
||||
void ff_sws_compiled_op_unref(SwsCompiledOp *comp)
|
||||
{
|
||||
if (comp->free)
|
||||
comp->free(comp->priv);
|
||||
|
||||
*comp = (SwsCompiledOp) {0};
|
||||
}
|
||||
|
||||
static void op_pass_free(void *ptr)
|
||||
{
|
||||
SwsOpPass *p = ptr;
|
||||
if (!p)
|
||||
return;
|
||||
|
||||
if (p->comp.free)
|
||||
p->comp.free(p->comp.priv);
|
||||
|
||||
ff_sws_compiled_op_unref(&p->comp);
|
||||
av_free(p);
|
||||
}
|
||||
|
||||
|
||||
@@ -100,4 +100,6 @@ typedef struct SwsCompiledOp {
|
||||
void (*free)(void *priv);
|
||||
} SwsCompiledOp;
|
||||
|
||||
void ff_sws_compiled_op_unref(SwsCompiledOp *comp);
|
||||
|
||||
#endif /* SWSCALE_OPS_DISPATCH_H */
|
||||
|
||||
@@ -241,10 +241,9 @@ static void check_ops(const char *report, const unsigned ranges[NB_PLANES],
|
||||
bench(comp_new.func, &exec, comp_new.priv, 0, 0, PIXELS / comp_new.block_size, LINES);
|
||||
}
|
||||
|
||||
if (comp_new.func != comp_ref.func && comp_new.free)
|
||||
comp_new.free(comp_new.priv);
|
||||
if (comp_ref.free)
|
||||
comp_ref.free(comp_ref.priv);
|
||||
if (comp_new.func != comp_ref.func)
|
||||
ff_sws_compiled_op_unref(&comp_new);
|
||||
ff_sws_compiled_op_unref(&comp_ref);
|
||||
sws_free_context(&ctx);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user