vsrc_buffer: release the buffer on uninit.
authorAnton Khirnov <anton@khirnov.net>
Fri, 30 Dec 2011 19:56:06 +0000 (20:56 +0100)
committerAnton Khirnov <anton@khirnov.net>
Thu, 12 Jan 2012 07:59:00 +0000 (08:59 +0100)
libavfilter/vsrc_buffer.c

index 178b3e6..e5b96a6 100644 (file)
@@ -114,6 +114,14 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
     return 0;
 }
 
+static av_cold void uninit(AVFilterContext *ctx)
+{
+    BufferSourceContext *s = ctx->priv;
+    if (s->buf)
+        avfilter_unref_buffer(s->buf);
+    s->buf = NULL;
+}
+
 static int query_formats(AVFilterContext *ctx)
 {
     BufferSourceContext *c = ctx->priv;
@@ -167,6 +175,7 @@ AVFilter avfilter_vsrc_buffer = {
     .query_formats = query_formats,
 
     .init      = init,
+    .uninit    = uninit,
 
     .inputs    = (AVFilterPad[]) {{ .name = NULL }},
     .outputs   = (AVFilterPad[]) {{ .name            = "default",