* [FFmpeg-devel] [PATCH] avfilter/af_lv2: call lilv_instance_activate before lilv_instance_run
@ 2026-02-26 13:55 Karl Mogensen via ffmpeg-devel
0 siblings, 0 replies; only message in thread
From: Karl Mogensen via ffmpeg-devel @ 2026-02-26 13:55 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Karl Mogensen
Why: the change is done to comply with lilv expectations of hosts.
Added call lilv_instance_activate in the config_output function to abide by lilv documentation that states it must be called before lilv_instance_run:
"This MUST be called before calling lilv_instance_run()" - documentation source (https://github.com/lv2/lilv/blob/main/include/lilv/lilv.h)
Added call lilv_instance_deactivate in the uninit function to abide by lv2 documentation:
"If a host calls activate(), it MUST call deactivate() at some point in the future" - documentation source (https://gitlab.com/lv2/lv2/-/blob/main/include/lv2/core/lv2.h)
Added instance_activated integer to LV2Context struct to track if instance was activated and only do lilv_instance_deactivate if was activated to abide by lv2 documentation:
"Hosts MUST NOT call deactivate() unless activate() was previously called." - documentation source (https://gitlab.com/lv2/lv2/-/blob/main/include/lv2/core/lv2.h)
Regarding the patcheck warning (possibly constant :instance_activated):
This is a false positive since the struct member is zero-initialized.
Fixes: trac issue #11661 (https://trac.ffmpeg.org/ticket/11661)
Reported-by: Dave Flater
Signed-off-by: Karl Mogensen <karlmogensen0@gmail.com>
---
libavfilter/af_lv2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libavfilter/af_lv2.c b/libavfilter/af_lv2.c
index e7f3f9c588..df935601d4 100644
--- a/libavfilter/af_lv2.c
+++ b/libavfilter/af_lv2.c
@@ -74,6 +74,7 @@ typedef struct LV2Context {
float *controls;
LilvInstance *instance;
+ int instance_activated;
LilvNode *atom_AtomPort;
LilvNode *atom_Sequence;
@@ -387,6 +388,9 @@ static int config_output(AVFilterLink *outlink)
inlink->min_samples = inlink->max_samples = 4096;
}
+ lilv_instance_activate(s->instance);
+ s->instance_activated = 1;
+
return 0;
}
@@ -574,6 +578,8 @@ static av_cold void uninit(AVFilterContext *ctx)
lilv_node_free(s->lv2_OutputPort);
lilv_node_free(s->lv2_InputPort);
uri_table_destroy(&s->uri_table);
+ if (s->instance_activated)
+ lilv_instance_deactivate(s->instance);
lilv_instance_free(s->instance);
lilv_world_free(s->world);
av_freep(&s->mins);
--
2.52.0
_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-02-26 13:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-26 13:55 [FFmpeg-devel] [PATCH] avfilter/af_lv2: call lilv_instance_activate before lilv_instance_run Karl Mogensen via ffmpeg-devel
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git