From 21a928d07c25c552765fcdbe320c1adeadbef5b8 Mon Sep 17 00:00:00 2001 From: Ramiro Polla <ramiro.polla@gmail.com> Date: Fri, 30 Sep 2011 17:49:43 -0300 Subject: [PATCH] dshow: release filter reference obtained from enumeration Signed-off-by: Michael Niedermayer <michaelni@gmx.at> --- libavdevice/dshow.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 4f641e72118..0191d510622 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -121,10 +121,12 @@ dshow_read_close(AVFormatContext *s) if (r == S_OK) { IBaseFilter *f; IEnumFilters_Reset(fenum); - while (IEnumFilters_Next(fenum, 1, &f, NULL) == S_OK) + while (IEnumFilters_Next(fenum, 1, &f, NULL) == S_OK) { if (IGraphBuilder_RemoveFilter(ctx->graph, f) == S_OK) IEnumFilters_Reset(fenum); /* When a filter is removed, * the list must be reset. */ + IBaseFilter_Release(f); + } IEnumFilters_Release(fenum); } IGraphBuilder_Release(ctx->graph); -- GitLab